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
|
from datetime import date
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
from random import shuffle
|
from random import shuffle
|
||||||
|
import time
|
||||||
|
|
||||||
# To send discord messages (fucking async functions…)
|
# To send discord messages (fucking async functions…)
|
||||||
import asyncio
|
import asyncio
|
||||||
@ -32,7 +33,7 @@ def load_guilds_data():
|
|||||||
|
|
||||||
|
|
||||||
def send_mass_mail(guild, subject, content):
|
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):
|
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:
|
with smtplib.SMTP_SSL(guild['smtp_host'], guild['smtp_port'], context=ssl_context) as server:
|
||||||
server.login(guild['smtp_username'], guild['smtp_pass'])
|
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
|
# 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):
|
def req(url, data):
|
||||||
x = requests.post(url, headers={'Content-Type': 'application/x-www-form-urlencoded'}, data=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'])
|
finder = scrap_framavote(guild['framavote'])
|
||||||
|
|
||||||
# Random order
|
# Random order
|
||||||
shuffle(guild['members'])
|
#shuffle(guild['members'])
|
||||||
|
|
||||||
# Add lines
|
# Add lines
|
||||||
for i in range(len(guild['members'])):
|
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
|
# Update links
|
||||||
finder = scrap_framavote(guild['framavote'])
|
finder = scrap_framavote(guild['framavote'])
|
||||||
@ -128,6 +145,7 @@ Vous avez été convié à un vote anonyme. Voici le lien où voter :
|
|||||||
{link}
|
{link}
|
||||||
"""
|
"""
|
||||||
send_mail(guild, mail, '[Mutubot] Vous êtes convié à un vote anonyme', content)
|
send_mail(guild, mail, '[Mutubot] Vous êtes convié à un vote anonyme', content)
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
return finder.public_link
|
return finder.public_link
|
||||||
|
|
||||||
@ -151,6 +169,7 @@ def cleaner ():
|
|||||||
|
|
||||||
@scheduler.scheduled_job('cron', day=1)
|
@scheduler.scheduled_job('cron', day=1)
|
||||||
def reminder ():
|
def reminder ():
|
||||||
|
# TODO on dirait que ça ne s’envoie qu’au premier serveur
|
||||||
for i in guilds:
|
for i in guilds:
|
||||||
print(f"reminding {i} : {guilds[i]['mailing']}")
|
print(f"reminding {i} : {guilds[i]['mailing']}")
|
||||||
message = generate_reminder_message(guilds[i])
|
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 :
|
Et d’annoncer à quelle heure vous souhaitez faire la mutunion :
|
||||||
<{sondage}>
|
<{sondage}>
|
||||||
|
(Voter vide quand on ne peut pas c’est rapide et utile !)
|
||||||
|
|
||||||
Bon début de mois :D
|
Bon début de mois :D
|
||||||
Le mutubot
|
Le mutubot
|
||||||
@ -204,12 +224,13 @@ async def on_message(message):
|
|||||||
randomvote = message.content.split(' ')[1:]
|
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 :
|
||||||
|
await message.reply("Ok je m’y met, patientez bien ça peut prendre plusieurs minutes")
|
||||||
public_link = create_framavote(guilds[message.guild.id], randomvote)
|
public_link = create_framavote(guilds[message.guild.id], randomvote)
|
||||||
randomvote = None
|
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)
|
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
|
return
|
||||||
elif message.channel.id in guilds[message.guild.id]['mailed_channels']:
|
elif message.channel.id in guilds[message.guild.id]['mailed_channels']:
|
||||||
mail_message(message)
|
await mail_message(message)
|
||||||
|
|
||||||
# Actually starts the bot
|
# Actually starts the bot
|
||||||
client.run(TOKEN)
|
client.run(TOKEN)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user