new step
This commit is contained in:
parent
b353300e61
commit
aa6202af9a
2
build.sh
Executable file
2
build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
docker build . -t jeancloud/mutubot:1
|
||||
docker push jeancloud/mutubot:1
|
||||
35
main.py
35
main.py
@ -5,6 +5,7 @@ import requests
|
||||
from datetime import date
|
||||
import urllib.parse
|
||||
from random import shuffle
|
||||
import time
|
||||
|
||||
# To send discord messages (fucking async functions…)
|
||||
import asyncio
|
||||
@ -32,7 +33,7 @@ def load_guilds_data():
|
||||
|
||||
|
||||
def send_mass_mail(guild, subject, content):
|
||||
send_mail(guild, guild['mailing'], subject, content)
|
||||
return send_mail(guild, guild['mailing'], subject, content)
|
||||
|
||||
|
||||
def send_mail(guild, to, subject, content):
|
||||
@ -44,11 +45,25 @@ def send_mail(guild, to, subject, content):
|
||||
|
||||
with smtplib.SMTP_SSL(guild['smtp_host'], guild['smtp_port'], context=ssl_context) as server:
|
||||
server.login(guild['smtp_username'], guild['smtp_pass'])
|
||||
server.send_message(msg)
|
||||
return server.send_message(msg)
|
||||
return False
|
||||
|
||||
def mail_message(message):
|
||||
async def mail_message(message):
|
||||
subject = message.content.split('\n')[0][:50]
|
||||
# TODO add … if message is not complete on the subject
|
||||
send_mass_mail(guilds[message.guild.id], f'[Mutubot] Message discord de {message.author.display_name} : {message.content:.50}', f'{message.author.display_name}:\n{message.content}')
|
||||
print('Discord message received: ', subject)
|
||||
if subject.lower() == 'test':
|
||||
print('Message de test détecté, il ne sera pas relayé')
|
||||
await message.reply('Message de test détecté, il ne sera pas relayé')
|
||||
else:
|
||||
try:
|
||||
send_mass_mail(guilds[message.guild.id], f'[Mutubot] Message discord de {message.author.display_name} : {subject}', f'{message.author.display_name}:\n{message.content}')
|
||||
except Exception as e:
|
||||
await message.reply('Le message semble ne pas s’être envoyé à la mailing')
|
||||
print('Message non envoyé à la mailing', e)
|
||||
else:
|
||||
await message.reply('Message envoyé à la mailing')
|
||||
|
||||
|
||||
def req(url, data):
|
||||
x = requests.post(url, headers={'Content-Type': 'application/x-www-form-urlencoded'}, data=data)
|
||||
@ -111,11 +126,13 @@ def create_framavote (guild, names):
|
||||
finder = scrap_framavote(guild['framavote'])
|
||||
|
||||
# Random order
|
||||
shuffle(guild['members'])
|
||||
#shuffle(guild['members'])
|
||||
|
||||
# Add lines
|
||||
for i in range(len(guild['members'])):
|
||||
create_line_framadate(finder.token, guild['framavote'], 'Anne ONyme'+str(i), names)
|
||||
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'])
|
||||
@ -128,6 +145,7 @@ Vous avez été convié à un vote anonyme. Voici le lien où voter :
|
||||
{link}
|
||||
"""
|
||||
send_mail(guild, mail, '[Mutubot] Vous êtes convié à un vote anonyme', content)
|
||||
time.sleep(2)
|
||||
|
||||
return finder.public_link
|
||||
|
||||
@ -151,6 +169,7 @@ def cleaner ():
|
||||
|
||||
@scheduler.scheduled_job('cron', day=1)
|
||||
def reminder ():
|
||||
# TODO on dirait que ça ne s’envoie qu’au premier serveur
|
||||
for i in guilds:
|
||||
print(f"reminding {i} : {guilds[i]['mailing']}")
|
||||
message = generate_reminder_message(guilds[i])
|
||||
@ -173,6 +192,7 @@ Il est l’heure de déclarer ses revenus :
|
||||
|
||||
Et d’annoncer à quelle heure vous souhaitez faire la mutunion :
|
||||
<{sondage}>
|
||||
(Voter vide quand on ne peut pas c’est rapide et utile !)
|
||||
|
||||
Bon début de mois :D
|
||||
Le mutubot
|
||||
@ -204,12 +224,13 @@ async def on_message(message):
|
||||
randomvote = message.content.split(' ')[1:]
|
||||
return
|
||||
elif message.content == 'Pamplemousse agrivoltaiste' and message.type == discord.MessageType.reply :
|
||||
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)
|
||||
return
|
||||
elif message.channel.id in guilds[message.guild.id]['mailed_channels']:
|
||||
mail_message(message)
|
||||
await mail_message(message)
|
||||
|
||||
# Actually starts the bot
|
||||
client.run(TOKEN)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user