tab issue

This commit is contained in:
ilya 2026-01-05 12:18:42 +01:00
parent 0e388c086c
commit d8fd798ec0

60
main.py
View File

@ -37,6 +37,7 @@ def send_mass_mail(guild, subject, content):
def send_mail(guild, to, subject, content): def send_mail(guild, to, subject, content):
print(to, content)
msg = EmailMessage() msg = EmailMessage()
msg['Subject'] = subject msg['Subject'] = subject
msg['From'] = guild['mail_from'] msg['From'] = guild['mail_from']
@ -112,32 +113,8 @@ def scrap_framavote (admin_url):
finder.feed(requests.get(admin_url).content.decode('UTF-8')) finder.feed(requests.get(admin_url).content.decode('UTF-8'))
return finder return finder
def create_framavote (guild, names): def send_mails_vote(guild, finder):
finder = scrap_framavote(guild['framavote']) shuffle(guild['members'])
# 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
for mail,link in zip(guild['members'], finder.public_links): for mail,link in zip(guild['members'], finder.public_links):
content = f""" content = f"""
Ce mail remplace tous les précédents sil y en a ! Ce mail remplace tous les précédents sil 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) send_mail(guild, mail, '[Mutubot] Vous êtes convié·e à un vote anonyme', content)
time.sleep(2) 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) @scheduler.scheduled_job('cron', day=25)
def cleaner (): def cleaner ():
for guild_id in guilds: for guild_id in guilds:
@ -204,7 +168,6 @@ Le mutubot
intents = discord.Intents.default() intents = discord.Intents.default()
intents.message_content = True intents.message_content = True
client = discord.Client(intents=intents) client = discord.Client(intents=intents)
randomvote = None
@client.event @client.event
async def on_ready(): async def on_ready():
@ -214,20 +177,25 @@ async def on_ready():
@client.event @client.event
async def on_message(message): async def on_message(message):
global randomvote
if message.author == client.user: if message.author == client.user:
return return
if message.guild.id not in guilds: if message.guild.id not in guilds:
return return
if message.content.startswith('!randomvote '): 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') 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 cest tout bon et lançer lenvoi des lien de vote')
randomvote = message.content.split(' ')[1:]
return return
elif message.content == 'Pamplemousse agrivoltaiste' and message.type == discord.MessageType.reply : 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 quil ny ait pas autant de lignes("+nb_links+") que de membres("+nb_membres+")…")
return
await message.reply("Ok je my met, patientez bien ça peut prendre plusieurs minutes") await message.reply("Ok je my met, patientez bien ça peut prendre plusieurs minutes")
public_link = create_framavote(guilds[message.guild.id], randomvote) send_mails_vote(guilds[message.guild.id], finder)
randomvote = None await message.reply("Cest fait ! Vérifiez que tout le monde a reçu les mails ; linformatique ce nest jamais bien déterministe… ")
await message.reply("Cest fait ! Vérifiez bien par vous même parce que je suis un peu fini à larache… " + public_link)
return return
elif message.channel.id in guilds[message.guild.id]['mailed_channels']: elif message.channel.id in guilds[message.guild.id]['mailed_channels']:
await mail_message(message) await mail_message(message)