1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 21:44:21 +00:00

Immagino di aver fixato il bot veramente

This commit is contained in:
Steffo 2018-04-15 13:43:24 +02:00
parent baf9d2ad15
commit c28888c375
2 changed files with 68 additions and 42 deletions

View file

@ -133,7 +133,7 @@ async def on_error(event, *args, **kwargs):
print("ERRORE CRITICO:\n" + repr(ei[1]) + "\n\n" + repr(ei)) print("ERRORE CRITICO:\n" + repr(ei[1]) + "\n\n" + repr(ei))
try: try:
await client.send_message(client.get_channel(config["Discord"]["main_channel"]), await client.send_message(client.get_channel(config["Discord"]["main_channel"]),
f"☢️ ERRORE CRITICO NELL'EVENTO `{event}`\n" f"☢️ **ERRORE CRITICO NELL'EVENTO** `{event}`\n"
f"Il bot si è chiuso e si dovrebbe riavviare entro qualche minuto.\n" f"Il bot si è chiuso e si dovrebbe riavviare entro qualche minuto.\n"
f"Una segnalazione di errore è stata automaticamente mandata a Steffo.\n\n" f"Una segnalazione di errore è stata automaticamente mandata a Steffo.\n\n"
f"Dettagli dell'errore:\n" f"Dettagli dell'errore:\n"
@ -180,6 +180,7 @@ async def on_message(message: discord.Message):
name=message.author.name, name=message.author.name,
discriminator=message.author.discriminator, discriminator=message.author.discriminator,
avatar_hex=message.author.avatar) avatar_hex=message.author.avatar)
session.add(user)
await loop.run_in_executor(executor, session.commit) await loop.run_in_executor(executor, session.commit)
else: else:
sentry.user_context({ sentry.user_context({
@ -378,6 +379,7 @@ async def update_music_queue():
global voice_player global voice_player
global voice_queue global voice_queue
while True: while True:
try:
if voice_client is None: if voice_client is None:
await asyncio.sleep(5) await asyncio.sleep(5)
continue continue
@ -419,6 +421,26 @@ async def update_music_queue():
f"`{video.filename}`") f"`{video.filename}`")
await client.change_presence(game=discord.Game(name=video.filename, type=2)) await client.change_presence(game=discord.Game(name=video.filename, type=2))
await video.add_to_db() await video.add_to_db()
except Exception:
ei = sys.exc_info()
try:
await client.send_message(client.get_channel(config["Discord"]["main_channel"]),
f"☢️ **ERRORE CRITICO NELL'AGGIORNAMENTO DELLA CODA DI VIDEO**\n"
f"Il bot si è disconnesso dalla chat vocale, e ha svuotato la coda.\n"
f"Una segnalazione di errore è stata automaticamente mandata a Steffo.\n\n"
f"Dettagli dell'errore:\n"
f"```python\n"
f"{repr(ei[1])}\n"
f"```")
if voice_player is not None:
await voice_player.stop()
voice_player = None
await voice_client.disconnect()
voice_client = None
voice_queue = []
except Exception as e:
print("ERRORE CRITICO PIU' CRITICO:\n" + repr(e) + "\n\n" + repr(sys.exc_info()))
sentry.captureException(exc_info=ei)
def process(users_connection=None): def process(users_connection=None):

View file

@ -47,7 +47,9 @@ def cmd_register(bot: Bot, update: Update):
royal_username=username, royal_username=username,
telegram_user=update.message.from_user) telegram_user=update.message.from_user)
except errors.AlreadyExistingError: except errors.AlreadyExistingError:
bot.send_message(update.message.chat.id, "⚠ Il tuo account Telegram è già collegato a un account RYG o l'account RYG che hai specificato è già collegato a un account Telegram.") bot.send_message(update.message.chat.id, "⚠ Il tuo account Telegram è già collegato a un account RYG o"
" l'account RYG che hai specificato è già collegato a un account"
" Telegram.")
session.close() session.close()
return return
session.add(t) session.add(t)
@ -290,7 +292,8 @@ def on_callback_query(bot: Bot, update: Update):
user = session.query(db.Telegram).filter_by(telegram_id=update.callback_query.from_user.id).one_or_none() user = session.query(db.Telegram).filter_by(telegram_id=update.callback_query.from_user.id).one_or_none()
if user is None: if user is None:
bot.answer_callback_query(update.callback_query.id, show_alert=True, bot.answer_callback_query(update.callback_query.id, show_alert=True,
text="⚠ Il tuo account Telegram non è registrato al RYGdb! Registrati con `/register@royalgamesbot <nomeutenteryg>`.") text="⚠ Il tuo account Telegram non è registrato al RYGdb!"
" Registrati con `/register@royalgamesbot <nomeutenteryg>`.")
return return
question = session.query(db.VoteQuestion).filter_by(message_id=update.callback_query.message.message_id).one() question = session.query(db.VoteQuestion).filter_by(message_id=update.callback_query.message.message_id).one()
answer = session.query(db.VoteAnswer).filter_by(question=question, user=user).one_or_none() answer = session.query(db.VoteAnswer).filter_by(question=question, user=user).one_or_none()
@ -307,7 +310,7 @@ def on_callback_query(bot: Bot, update: Update):
bot.edit_message_text(message_id=update.callback_query.message.message_id, chat_id=update.callback_query.message.chat.id, bot.edit_message_text(message_id=update.callback_query.message.message_id, chat_id=update.callback_query.message.chat.id,
text=question.generate_text(session), reply_markup=inline_keyboard, text=question.generate_text(session), reply_markup=inline_keyboard,
parse_mode="HTML") parse_mode="HTML")
except Exception as e: except Exception:
raise raise
finally: finally:
session.close() session.close()
@ -332,7 +335,8 @@ def cmd_ban(bot: Bot, update: Update):
target_user = session.query(db.Telegram).filter_by(username=arg).one_or_none() target_user = session.query(db.Telegram).filter_by(username=arg).one_or_none()
if target_user is None: if target_user is None:
bot.send_message(update.message.chat.id, "⚠ Il bersaglio specificato non esiste nel RYGdb.\n" bot.send_message(update.message.chat.id, "⚠ Il bersaglio specificato non esiste nel RYGdb.\n"
"Le possibilità sono due: non è un membro RYG, oppure non si è ancora registrato e va bannato manualmente.") "Le possibilità sono due: non è un membro RYG, "
"oppure non si è ancora registrato e va bannato manualmente.")
return return
if int(target_user.telegram_id) == 25167391: if int(target_user.telegram_id) == 25167391:
bot.send_message(update.message.chat.id, "⚠ Il creatore della chat non può essere espulso.") bot.send_message(update.message.chat.id, "⚠ Il creatore della chat non può essere espulso.")