fixed some errors + added database
This commit is contained in:
parent
fe99c7920c
commit
7cd0ca21db
338
answers.txt
Normal file
338
answers.txt
Normal file
@ -0,0 +1,338 @@
|
|||||||
|
peur
|
||||||
|
poisson
|
||||||
|
moulin
|
||||||
|
lanterne
|
||||||
|
kiwi
|
||||||
|
temps
|
||||||
|
canapé
|
||||||
|
journal
|
||||||
|
balai
|
||||||
|
pluie
|
||||||
|
pile
|
||||||
|
masse
|
||||||
|
musée
|
||||||
|
témoignage
|
||||||
|
rang
|
||||||
|
canard
|
||||||
|
bouchon
|
||||||
|
gêne
|
||||||
|
voix
|
||||||
|
canon
|
||||||
|
roue
|
||||||
|
éléphant
|
||||||
|
enseigne
|
||||||
|
poussette
|
||||||
|
barre
|
||||||
|
lumière
|
||||||
|
ardoise
|
||||||
|
bout
|
||||||
|
ronde
|
||||||
|
élection
|
||||||
|
couturière
|
||||||
|
chambre
|
||||||
|
mobile
|
||||||
|
ordre
|
||||||
|
racine
|
||||||
|
pain
|
||||||
|
plongeur
|
||||||
|
banane
|
||||||
|
carnet
|
||||||
|
ballon
|
||||||
|
mouvement
|
||||||
|
orbite
|
||||||
|
carotte
|
||||||
|
pelote
|
||||||
|
canard
|
||||||
|
gare
|
||||||
|
langue
|
||||||
|
face
|
||||||
|
sentence
|
||||||
|
écart
|
||||||
|
groupe
|
||||||
|
sommeil
|
||||||
|
portes
|
||||||
|
taupe
|
||||||
|
toile
|
||||||
|
navet
|
||||||
|
âne
|
||||||
|
fruit
|
||||||
|
roi
|
||||||
|
balade
|
||||||
|
bal
|
||||||
|
orchestre
|
||||||
|
preuve
|
||||||
|
roulette
|
||||||
|
sauce
|
||||||
|
béton
|
||||||
|
nappe
|
||||||
|
éclair
|
||||||
|
échelle
|
||||||
|
char
|
||||||
|
pâté
|
||||||
|
cafard
|
||||||
|
fraise
|
||||||
|
langue
|
||||||
|
puzzle
|
||||||
|
chagrin
|
||||||
|
résistance
|
||||||
|
lentille
|
||||||
|
lois
|
||||||
|
pelle
|
||||||
|
fleur
|
||||||
|
bouchée
|
||||||
|
barbe
|
||||||
|
corbeau
|
||||||
|
araignée
|
||||||
|
nord
|
||||||
|
crâne
|
||||||
|
neige
|
||||||
|
carpe
|
||||||
|
album
|
||||||
|
désert
|
||||||
|
fumée
|
||||||
|
chasseur
|
||||||
|
mouche
|
||||||
|
café
|
||||||
|
dés
|
||||||
|
querelle
|
||||||
|
défilé
|
||||||
|
poste
|
||||||
|
col
|
||||||
|
marche
|
||||||
|
confiance
|
||||||
|
carreau
|
||||||
|
midi
|
||||||
|
scène
|
||||||
|
topaze
|
||||||
|
château
|
||||||
|
emploi
|
||||||
|
date
|
||||||
|
sol
|
||||||
|
alpiniste
|
||||||
|
matin
|
||||||
|
lune
|
||||||
|
planètes
|
||||||
|
asile
|
||||||
|
puce
|
||||||
|
cheveux
|
||||||
|
amphore
|
||||||
|
touche
|
||||||
|
cigare
|
||||||
|
cheminée
|
||||||
|
feu
|
||||||
|
clé
|
||||||
|
octave
|
||||||
|
ventriloque
|
||||||
|
savon
|
||||||
|
colle
|
||||||
|
pied
|
||||||
|
Aujourd'hui
|
||||||
|
crête
|
||||||
|
rappel
|
||||||
|
mèche
|
||||||
|
statues
|
||||||
|
sel
|
||||||
|
zodiaque
|
||||||
|
lit
|
||||||
|
piano
|
||||||
|
Ulysse
|
||||||
|
pomme
|
||||||
|
mortier
|
||||||
|
profondeur
|
||||||
|
galette
|
||||||
|
critique
|
||||||
|
éventail
|
||||||
|
carré
|
||||||
|
pigeon
|
||||||
|
cerf-volant
|
||||||
|
pensées
|
||||||
|
tablier
|
||||||
|
baba
|
||||||
|
légende
|
||||||
|
recette
|
||||||
|
tailleur
|
||||||
|
concours
|
||||||
|
grenade
|
||||||
|
obscurité
|
||||||
|
boussole
|
||||||
|
couleuvre
|
||||||
|
panama
|
||||||
|
noisette
|
||||||
|
fortune
|
||||||
|
dunes
|
||||||
|
blanc
|
||||||
|
bonheur
|
||||||
|
mante religieuse
|
||||||
|
collier
|
||||||
|
illusion
|
||||||
|
tennis
|
||||||
|
théatre
|
||||||
|
diamant
|
||||||
|
cellules
|
||||||
|
moitié
|
||||||
|
reine
|
||||||
|
trombone
|
||||||
|
poids
|
||||||
|
croûte
|
||||||
|
citron
|
||||||
|
ligne
|
||||||
|
poupée
|
||||||
|
marmotte
|
||||||
|
confetti
|
||||||
|
cataracte
|
||||||
|
palais
|
||||||
|
oreilles
|
||||||
|
gendarme
|
||||||
|
talons
|
||||||
|
tennis
|
||||||
|
tour
|
||||||
|
croûte
|
||||||
|
mule
|
||||||
|
marbre
|
||||||
|
monastère
|
||||||
|
scène
|
||||||
|
ébène
|
||||||
|
buse
|
||||||
|
justice
|
||||||
|
saule
|
||||||
|
adresse
|
||||||
|
baie
|
||||||
|
traineau
|
||||||
|
encre
|
||||||
|
chamois
|
||||||
|
forum
|
||||||
|
bouteille
|
||||||
|
chaîne
|
||||||
|
faculté
|
||||||
|
fée
|
||||||
|
démarche
|
||||||
|
éruption
|
||||||
|
minute
|
||||||
|
doute
|
||||||
|
bois
|
||||||
|
bouclier
|
||||||
|
brique
|
||||||
|
cyclone
|
||||||
|
éventail
|
||||||
|
caméléon
|
||||||
|
bloc
|
||||||
|
épaule
|
||||||
|
levant
|
||||||
|
mandarin
|
||||||
|
cavalier
|
||||||
|
passe
|
||||||
|
empreintes
|
||||||
|
piédestal
|
||||||
|
méandres
|
||||||
|
trousseau
|
||||||
|
magie
|
||||||
|
corne
|
||||||
|
lancement
|
||||||
|
manège
|
||||||
|
palme
|
||||||
|
canette
|
||||||
|
lion
|
||||||
|
flocon
|
||||||
|
monture
|
||||||
|
sardine
|
||||||
|
écriture
|
||||||
|
rouleau
|
||||||
|
jardin
|
||||||
|
gaffe
|
||||||
|
cadeau
|
||||||
|
robots
|
||||||
|
lavande
|
||||||
|
dossier
|
||||||
|
bulle
|
||||||
|
zeste
|
||||||
|
loge
|
||||||
|
loup
|
||||||
|
blaireau
|
||||||
|
malle
|
||||||
|
vérité
|
||||||
|
mémoire
|
||||||
|
vis
|
||||||
|
alliance
|
||||||
|
union
|
||||||
|
marguerite
|
||||||
|
orange
|
||||||
|
amande
|
||||||
|
couleurs
|
||||||
|
montages
|
||||||
|
ficelle
|
||||||
|
raie
|
||||||
|
cape
|
||||||
|
féerie
|
||||||
|
mulet
|
||||||
|
empereur
|
||||||
|
vernis
|
||||||
|
ménage
|
||||||
|
pois
|
||||||
|
passé
|
||||||
|
globe
|
||||||
|
glacier
|
||||||
|
côtes
|
||||||
|
kangourou
|
||||||
|
fosse
|
||||||
|
naissance
|
||||||
|
fouet
|
||||||
|
cuir
|
||||||
|
division
|
||||||
|
chute
|
||||||
|
service
|
||||||
|
foyer
|
||||||
|
réunion
|
||||||
|
chien
|
||||||
|
miel
|
||||||
|
balle
|
||||||
|
ascenseur
|
||||||
|
tonneau
|
||||||
|
blason
|
||||||
|
esprit
|
||||||
|
génie
|
||||||
|
polichinelle
|
||||||
|
loupe
|
||||||
|
zéro
|
||||||
|
dossier
|
||||||
|
acte
|
||||||
|
brise
|
||||||
|
page
|
||||||
|
chapeau
|
||||||
|
brouillard
|
||||||
|
coucou
|
||||||
|
passé
|
||||||
|
signature
|
||||||
|
miroir
|
||||||
|
centre
|
||||||
|
exemple
|
||||||
|
marteau
|
||||||
|
timbre
|
||||||
|
agenda
|
||||||
|
baiser
|
||||||
|
Christophe Colomb
|
||||||
|
velours
|
||||||
|
labyrinthe
|
||||||
|
élastique
|
||||||
|
formule
|
||||||
|
fromage
|
||||||
|
âme
|
||||||
|
jardin
|
||||||
|
blé
|
||||||
|
zéro
|
||||||
|
crayon
|
||||||
|
hache
|
||||||
|
laine
|
||||||
|
balle
|
||||||
|
souris
|
||||||
|
mots
|
||||||
|
règle
|
||||||
|
bouton
|
||||||
|
cravate
|
||||||
|
cygne
|
||||||
|
baguette
|
||||||
|
côtes
|
||||||
|
faim
|
||||||
|
chance
|
||||||
|
respiration
|
||||||
|
oiseaux
|
||||||
|
volcan
|
156
fouras.py
Normal file
156
fouras.py
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
import discord
|
||||||
|
from discord.ext import tasks
|
||||||
|
import os
|
||||||
|
import asyncio
|
||||||
|
from datetime import datetime, timedelta, timezone
|
||||||
|
import random
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import re
|
||||||
|
|
||||||
|
intents = discord.Intents.default()
|
||||||
|
intents.members = True
|
||||||
|
intents.presences = True
|
||||||
|
intents.guilds = True
|
||||||
|
intents.messages = True
|
||||||
|
intents.message_content = True
|
||||||
|
client = discord.Client(intents=intents)
|
||||||
|
load_dotenv()
|
||||||
|
token = os.getenv('DISCORD_TOKEN', "NO_TOKEN")
|
||||||
|
token = 'OTAxNDI2NTk0NTA0MTIyNDM5.GSgQAJ.VnpFe_m0AyWEu5MnkM8wAkYepsTyms8iLjPliA'
|
||||||
|
|
||||||
|
SERVER_ID = 1107644913757192263
|
||||||
|
CHANNEL_ID = 1107762652677148692
|
||||||
|
|
||||||
|
client.riddles = []
|
||||||
|
client.answers = []
|
||||||
|
client.ongoing_riddles = {}
|
||||||
|
|
||||||
|
def load_riddles():
|
||||||
|
with open('riddles.txt', 'r', encoding='utf-8') as r_file:
|
||||||
|
client.riddles = r_file.read().split('\n\n')
|
||||||
|
with open('answers.txt', 'r', encoding='utf-8') as a_file:
|
||||||
|
client.answers = [line.strip() for line in a_file.readlines()]
|
||||||
|
print('Loaded {0} riddles'.format(len(client.riddles)))
|
||||||
|
|
||||||
|
def new_riddle(channel, index):
|
||||||
|
current_riddle = dict(index=index, nbClues=-1, riddle=client.riddles[index].strip(), answer=client.answers[index])
|
||||||
|
client.ongoing_riddles[channel] = current_riddle
|
||||||
|
return format_message(current_riddle)
|
||||||
|
|
||||||
|
def finish_riddle(channel):
|
||||||
|
del client.ongoing_riddles[channel]
|
||||||
|
|
||||||
|
def clue_string(answer, nbClues):
|
||||||
|
finalString = "_"
|
||||||
|
for i in range(len(answer) - 1):
|
||||||
|
finalString += " _"
|
||||||
|
random.seed(hash(answer))
|
||||||
|
nbRevealed = 0
|
||||||
|
for i in range(nbClues):
|
||||||
|
|
||||||
|
id = random.randint(0, len(answer) - 1)
|
||||||
|
while finalString[id * 2] != '_':
|
||||||
|
id = random.randint(0, len(answer) - 1)
|
||||||
|
|
||||||
|
nbRevealed += 1
|
||||||
|
finalString = finalString[:id * 2] + answer[id] + finalString[id * 2 + 1:]
|
||||||
|
|
||||||
|
if nbRevealed == len(answer):
|
||||||
|
return finalString
|
||||||
|
return finalString
|
||||||
|
|
||||||
|
def format_message(current_riddle):
|
||||||
|
nbClues = current_riddle['nbClues']
|
||||||
|
answer = current_riddle['answer']
|
||||||
|
|
||||||
|
formatted_riddle = "> " + current_riddle['riddle'].replace("\n", "\n> ")
|
||||||
|
formatted_riddle = formatted_riddle.replace("\r", "")
|
||||||
|
|
||||||
|
clue = ""
|
||||||
|
if nbClues > -1:
|
||||||
|
if nbClues >= len(answer):
|
||||||
|
clue = clue + "\nNon trouvée, la solution était : `{0}`".format(answer)
|
||||||
|
else:
|
||||||
|
clue = clue + "\nIndice : `{0}`".format(clue_string(answer, nbClues))
|
||||||
|
|
||||||
|
if 'solver' in current_riddle:
|
||||||
|
clue = clue + "\n{0} a trouvé la solution, qui était : `{1}`".format(current_riddle['solver'].mention, answer)
|
||||||
|
|
||||||
|
if clue:
|
||||||
|
return "Énigme {0}:\n{1}\n{2}".format(current_riddle['index'] + 1, formatted_riddle, clue)
|
||||||
|
else:
|
||||||
|
return "Énigme {0}:\n{1}".format(current_riddle['index'] + 1, formatted_riddle)
|
||||||
|
|
||||||
|
@client.event
|
||||||
|
async def on_ready():
|
||||||
|
load_riddles()
|
||||||
|
print('Logged in as {0.user}'.format(client))
|
||||||
|
|
||||||
|
@client.event
|
||||||
|
async def on_message(message):
|
||||||
|
# don't answer to self
|
||||||
|
if message.author == client.user and message.channel in client.ongoing_riddles:
|
||||||
|
current_riddle = client.ongoing_riddles[message.channel]
|
||||||
|
if not ('message' in current_riddle):
|
||||||
|
current_riddle['message'] = message
|
||||||
|
return
|
||||||
|
|
||||||
|
if isinstance(message.channel, discord.DMChannel) or isinstance(message.channel, discord.TextChannel) or isinstance(message.channel, discord.Thread):
|
||||||
|
message_content = message.content.lower()
|
||||||
|
|
||||||
|
# command fouras
|
||||||
|
fouras_match = re.match(r"^fouras\s+(\d+)$", message_content)
|
||||||
|
if fouras_match:
|
||||||
|
index = int(fouras_match.group(1)) - 1
|
||||||
|
if index >= 0 and index < len(client.riddles):
|
||||||
|
await message.channel.send(new_riddle(message.channel, index))
|
||||||
|
else:
|
||||||
|
await message.channel.send("Numéro d'énigme invalide, merci de saisir un numéro entre 1 et {0}".format(len(client.riddles)))
|
||||||
|
return
|
||||||
|
if message_content == 'fouras':
|
||||||
|
if len(client.riddles) > 0:
|
||||||
|
index = random.randint(0, len(client.riddles) - 1)
|
||||||
|
await message.channel.send(new_riddle(message.channel, index))
|
||||||
|
return
|
||||||
|
|
||||||
|
# command reload
|
||||||
|
if message_content == 'reload_riddles':
|
||||||
|
load_riddles()
|
||||||
|
await message.channel.send('Loaded {0} riddles'.format(len(client.riddles)))
|
||||||
|
return
|
||||||
|
|
||||||
|
# if current channel has ongoing riddle
|
||||||
|
if message.channel in client.ongoing_riddles:
|
||||||
|
current_riddle = client.ongoing_riddles[message.channel]
|
||||||
|
|
||||||
|
if 'message' in current_riddle:
|
||||||
|
answer = current_riddle["answer"]
|
||||||
|
if answer.lower() in message_content:
|
||||||
|
current_riddle["solver"] = message.author
|
||||||
|
|
||||||
|
await message.channel.send(f"Bravo {message.author.mention} ! La réponse était bien `{answer}`.")
|
||||||
|
await current_riddle['message'].edit(content=format_message(current_riddle))
|
||||||
|
finish_riddle(message.channel)
|
||||||
|
return
|
||||||
|
|
||||||
|
if message_content == 'repete' or message_content == 'répète' or message_content == 'repeat':
|
||||||
|
current_riddle.pop('message')
|
||||||
|
await message.channel.send(format_message(current_riddle))
|
||||||
|
return
|
||||||
|
|
||||||
|
# Commande /clue : révèle une lettre au hasard de la réponse attendue
|
||||||
|
if message_content == 'indice' or message_content == 'aide' or message_content == 'connard de fouras':
|
||||||
|
nbClues = current_riddle["nbClues"] + 1
|
||||||
|
current_riddle["nbClues"] = nbClues
|
||||||
|
if nbClues >= len(answer):
|
||||||
|
reply = "Perdu ! La réponse était : `{0}`".format(answer)
|
||||||
|
# else:
|
||||||
|
# reply = "Indice : `{0}`".format(clue_string(answer, nbClues))
|
||||||
|
await message.channel.send(reply)
|
||||||
|
await current_riddle['message'].edit(content=format_message(current_riddle))
|
||||||
|
if nbClues >= len(answer):
|
||||||
|
finish_riddle(message.channel)
|
||||||
|
return
|
||||||
|
|
||||||
|
# Initialise le client
|
||||||
|
client.run(token)
|
1650
riddles.txt
Normal file
1650
riddles.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user