diff --git a/main.py b/main.py index fe22b57..8e573b6 100644 --- a/main.py +++ b/main.py @@ -37,6 +37,7 @@ def send_mass_mail(guild, subject, content): def send_mail(guild, to, subject, content): + print(to, content) msg = EmailMessage() msg['Subject'] = subject msg['From'] = guild['mail_from'] @@ -112,32 +113,8 @@ def scrap_framavote (admin_url): finder.feed(requests.get(admin_url).content.decode('UTF-8')) return finder -def create_framavote (guild, names): - finder = scrap_framavote(guild['framavote']) - - # Remove everything - erase_framadate(guild['framavote'], finder.delete_links) - - # Add columns - for name in names: - req(guild['framavote'], 'choice='+name+'&confirm_add_column=') - - # Update control sum - finder = scrap_framavote(guild['framavote']) - - # Random order - #shuffle(guild['members']) - - # Add lines - for i in range(len(guild['members'])): - print('create_line_framadate ', i) - create_line_framadate(finder.token, guild['framavote'], 'Anne ONyme'+str(i+1), names) - time.sleep(2) - - # Update links - finder = scrap_framavote(guild['framavote']) - - # Send links +def send_mails_vote(guild, finder): + shuffle(guild['members']) for mail,link in zip(guild['members'], finder.public_links): content = f""" Ce mail remplace tous les précédents s’il y en a ! @@ -147,19 +124,6 @@ Vous avez été convié·e à un vote anonyme. Voici le lien où voter : send_mail(guild, mail, '[Mutubot] Vous êtes convié·e à un vote anonyme', content) time.sleep(2) - return finder.public_link - -def erase_framadate (admin_url, delete_links=[]): - req(admin_url, 'remove_all_votes=') - req(admin_url, 'confirm_remove_all_votes=') - for link in delete_links: - requests.get(link) - - -def create_line_framadate (token, admin_url, voter, names): - data = 'control=' + token + '&name=' + voter + ''.join('&choices%5B'+str(i)+'%5D=+' for i in range(len(names))) + '&save=' - x = req(admin_url, data) - @scheduler.scheduled_job('cron', day=25) def cleaner (): for guild_id in guilds: @@ -204,7 +168,6 @@ Le mutubot intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) -randomvote = None @client.event async def on_ready(): @@ -214,20 +177,25 @@ async def on_ready(): @client.event async def on_message(message): - global randomvote if message.author == client.user: return if message.guild.id not in guilds: return if message.content.startswith('!randomvote '): - await message.reply('Créer un vote anonyme va détruire le framavote actuel. Êtes vous sûr·e ? Répondez « Pamplemousse agrivoltaiste » pour confirmer') - randomvote = message.content.split(' ')[1:] + await message.reply('Vérifiez bien que le framadate a le bon nombre de ligne (une par votant·e) et de colonnes (une par option à voter) ? Répondez « Pamplemousse agrivoltaiste » pour confirmer que c’est tout bon et lançer l’envoi des lien de vote') return elif message.content == 'Pamplemousse agrivoltaiste' and message.type == discord.MessageType.reply : + finder = scrap_framavote(guild['framavote']) + guild = guilds[message.guild.id] + nb_links = len(finder.public_links) + nb_membres = len(guild['members']) + if nb_links != nb_membres: + await message.reply("Il semblerait qu’il n’y ait pas autant de lignes("+nb_links+") que de membres("+nb_membres+")…") + return + await message.reply("Ok je m’y met, patientez bien ça peut prendre plusieurs minutes") - public_link = create_framavote(guilds[message.guild.id], randomvote) - randomvote = None - await message.reply("C’est fait ! Vérifiez bien par vous même parce que je suis un peu fini à l’arache… " + public_link) + send_mails_vote(guilds[message.guild.id], finder) + await message.reply("C’est fait ! Vérifiez que tout le monde a reçu les mails ; l’informatique ce n’est jamais bien déterministe… ") return elif message.channel.id in guilds[message.guild.id]['mailed_channels']: await mail_message(message)