|
|
@ -28,20 +28,10 @@ MYSQL_DB = 'rezo_admin' |
|
|
BAN_DURATION = 30. * 60. |
|
|
BAN_DURATION = 30. * 60. |
|
|
|
|
|
|
|
|
IMMUNITY_FILE = '/var/roulette/immunity' |
|
|
IMMUNITY_FILE = '/var/roulette/immunity' |
|
|
ASSHOLES_FILE = '/var/www/roulette/assholes' |
|
|
ASSHOLES_FILE = '/var/roulette/assholes' |
|
|
|
|
|
STATE_FILE = '/var/roulette/state' |
|
|
|
|
|
|
|
|
IMMUNITY = [ |
|
|
STATE = 'precampagne' |
|
|
'Lazare Olivry', |
|
|
|
|
|
'Brieuc Lacroix', |
|
|
|
|
|
'Elliot Butty', |
|
|
|
|
|
'Jean-Christophe Carli', |
|
|
|
|
|
'Juliette Tibayrenc', |
|
|
|
|
|
'Elise Laurent', |
|
|
|
|
|
'Goulven Kermarec', |
|
|
|
|
|
'Siqi Liu', |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
ASSHOLES = [] |
|
|
|
|
|
|
|
|
|
|
|
app = Flask(__name__) |
|
|
app = Flask(__name__) |
|
|
app.config.from_object(__name__) |
|
|
app.config.from_object(__name__) |
|
|
@ -313,6 +303,9 @@ def banned(): |
|
|
|
|
|
|
|
|
@app.route('/banned_ip') |
|
|
@app.route('/banned_ip') |
|
|
def banned_ip(): |
|
|
def banned_ip(): |
|
|
|
|
|
#Actualisation de l'etat de la roulette |
|
|
|
|
|
with open(STATE_FILE, 'r') as f: |
|
|
|
|
|
STATE = f.read() |
|
|
# Liste des ip pour récupération par babel et plop |
|
|
# Liste des ip pour récupération par babel et plop |
|
|
if not DEBUG: |
|
|
if not DEBUG: |
|
|
if get_ip() not in ['10.7.0.254']: |
|
|
if get_ip() not in ['10.7.0.254']: |
|
|
@ -334,74 +327,79 @@ def banned_ip(): |
|
|
@playable_required |
|
|
@playable_required |
|
|
def home(): |
|
|
def home(): |
|
|
player = get_player_from_ip(get_ip()) |
|
|
player = get_player_from_ip(get_ip()) |
|
|
|
|
|
if STATE == "down": |
|
|
#if ip not in ['10.69.8.5', '10.69.8.202']: |
|
|
return render_template('down.html', user=player) |
|
|
# abort(403) |
|
|
elif STATE == "launched": |
|
|
|
|
|
if DEBUG: |
|
|
if DEBUG: |
|
|
print(player, 'arrived') |
|
|
print(player, 'arrived') |
|
|
|
|
|
|
|
|
bans = sorted(get_bans(player['id']), \ |
|
|
bans = sorted(get_bans(player['id']), \ |
|
|
key=lambda ban: ban['time'], \ |
|
|
key=lambda ban: ban['time'], \ |
|
|
reverse=True) |
|
|
reverse=True) |
|
|
|
|
|
|
|
|
bans_hist = [] |
|
|
bans_hist = [] |
|
|
for ban in bans: |
|
|
for ban in bans: |
|
|
date = strftime('%Hh%M (%A)', localtime(ban['time'])) |
|
|
date = strftime('%Hh%M (%A)', localtime(ban['time'])) |
|
|
source = get_player(ban['player_id']) |
|
|
source = get_player(ban['player_id']) |
|
|
target = get_player(ban['target_id']) |
|
|
target = get_player(ban['target_id']) |
|
|
|
|
|
|
|
|
if target['id'] == player['id']: |
|
|
if target['id'] == player['id']: |
|
|
if ban['success']: |
|
|
if ban['success']: |
|
|
entry = ('ban', u'%s : %s %s a réussi à t\'avoir.' \ |
|
|
entry = ('ban', u'%s : %s %s a réussi à t\'avoir.' \ |
|
|
% (date, source['firstname'], source['name'])) |
|
|
% (date, source['firstname'], source['name'])) |
|
|
else: |
|
|
else: |
|
|
entry = ('warn', u'%s : %s %s a essayé de te trancher, en vain.' \ |
|
|
entry = ('warn', u'%s : %s %s a essayé de te trancher, en vain.' \ |
|
|
% (date, source['firstname'], source['name'])) |
|
|
% (date, source['firstname'], source['name'])) |
|
|
|
|
|
else: |
|
|
|
|
|
if ban['success']: |
|
|
|
|
|
entry = ('ok', u'%s : Tu as tranché %s %s avec succès.' \ |
|
|
|
|
|
% (date, target['firstname'], target['name'])) |
|
|
|
|
|
else: |
|
|
else: |
|
|
entry = ('ban', u'%s : Tu as échoué en voulant trancher %s %s.' \ |
|
|
if ban['success']: |
|
|
% (date, target['firstname'], target['name'])) |
|
|
entry = ('ok', u'%s : Tu as tranché %s %s avec succès.' \ |
|
|
|
|
|
% (date, target['firstname'], target['name'])) |
|
|
|
|
|
else: |
|
|
|
|
|
entry = ('ban', u'%s : Tu as échoué en voulant trancher %s %s.' \ |
|
|
|
|
|
% (date, target['firstname'], target['name'])) |
|
|
|
|
|
|
|
|
bans_hist.append(entry) |
|
|
bans_hist.append(entry) |
|
|
|
|
|
|
|
|
return render_template('home.html', bans_hist=bans_hist) |
|
|
return render_template('home.html', bans_hist=bans_hist) |
|
|
|
|
|
else STATE: |
|
|
|
|
|
return render_template('precampagne.html', user=player) |
|
|
|
|
|
|
|
|
@app.route('/jouer', methods=['GET', 'POST']) |
|
|
@app.route('/jouer', methods=['GET', 'POST']) |
|
|
@playable_required |
|
|
@playable_required |
|
|
def play(): |
|
|
def play(): |
|
|
ip = get_ip() |
|
|
ip = get_ip() |
|
|
player = get_player_from_ip(ip) |
|
|
player = get_player_from_ip(ip) |
|
|
|
|
|
if STATE == "down": |
|
|
# Traitement de la requête de bannissement |
|
|
return render_template('down.html', user=player) |
|
|
if request.method == 'POST': |
|
|
elif STATE == "launched": |
|
|
target_id = request.form['target_id'] |
|
|
# Traitement de la requête de bannissement |
|
|
if target_id != 'none': |
|
|
if request.method == 'POST': |
|
|
if is_banned(target_id): |
|
|
target_id = request.form['target_id'] |
|
|
flash(u'Utilisateur déjà tranché, il faut en choisir un autre.') |
|
|
if target_id != 'none': |
|
|
else: |
|
|
if is_banned(target_id): |
|
|
success = cheat(player['id'], target_id) |
|
|
flash(u'Utilisateur déjà tranché, il faut en choisir un autre.') |
|
|
if success: |
|
|
|
|
|
target = get_player(target_id) |
|
|
|
|
|
ban(player['id'], target_id, True) |
|
|
|
|
|
flash(u'Trop cool, %s a été tranché pour un bon moment.' \ |
|
|
|
|
|
% target['firstname']) |
|
|
|
|
|
else: |
|
|
else: |
|
|
ban(player['id'], target_id, False) |
|
|
success = cheat(player['id'], target_id) |
|
|
return banned() |
|
|
if success: |
|
|
|
|
|
target = get_player(target_id) |
|
|
# Liste des joueurs non bannis, triée dans l'ordre croissant ou décroissant |
|
|
ban(player['id'], target_id, True) |
|
|
players = sorted(get_players_not_banned(), \ |
|
|
flash(u'Trop cool, %s a été tranché pour un bon moment.' \ |
|
|
key=lambda player: player['firstname'], \ |
|
|
% target['firstname']) |
|
|
reverse = random.choice([True, False])) |
|
|
else: |
|
|
|
|
|
ban(player['id'], target_id, False) |
|
|
# sans le joueur actuel |
|
|
return banned() |
|
|
players = filter(lambda p: p['id'] != player['id'], players) |
|
|
|
|
|
|
|
|
# Liste des joueurs non bannis, triée dans l'ordre croissant ou décroissant |
|
|
return render_template('play.html', players=players) |
|
|
players = sorted(get_players_not_banned(), \ |
|
|
|
|
|
key=lambda player: player['firstname'], \ |
|
|
|
|
|
reverse = random.choice([True, False])) |
|
|
|
|
|
|
|
|
|
|
|
# sans le joueur actuel |
|
|
|
|
|
players = filter(lambda p: p['id'] != player['id'], players) |
|
|
|
|
|
|
|
|
|
|
|
return render_template('play.html', players=players) |
|
|
|
|
|
else STATE: |
|
|
|
|
|
return render_template('precampagne.html', user=player) |
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
if __name__ == '__main__': |
|
|
app.run() |
|
|
app.run() |
|
|
|