UNICT-DMI / Telegram-DMI-Bot

A telegram bot for the DMI students 🎓 (@DMI_Bot)
https://t.me/DMI_Bot
GNU General Public License v3.0
41 stars 30 forks source link

fix: /lezioni command #269

Closed Picred closed 11 months ago

Picred commented 11 months ago

L'unico dubbio era se avevate consigli riguardo le due costanti HREF_TOKEN e DMI_LINK (come, per esempio, il file più adatto dove poterle salvare)

closes #259

Helias commented 11 months ago

tested

image

Helias commented 11 months ago

c'è un caso da considerare

module/commands/lezioni.py:35:0: R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)

dalla tua funzione si può intuire che solo se si entra in uno specifico if si otterrà un valore in return, quindi il return type dovrebbe essere bytes oppure None, che puoi definire mediante bytes | None oppure più elegantemente Optional[byes]

questo farebbe stare buono pylint però se la tua funzione non ritorna nulla questa parte di codice dà errore e l'utente rimane appeso

    file = BytesIO(get_orario_file())
    file.name = "Orario.pdf"
    context.bot.sendDocument(chat_id=update.effective_chat.id, document=file)

potresti mettere una condizione nel caso in cui file è None ed inviare un messaggio all'utente con qualcosa come "Orario lezioni non disponibile, riprova più tardi"

p.s. è interessante notare come l'utilizzo dei type hints su python e di pylint possa prevenire questi problemi, perchè se il sito DMI è down questo problema può succedere benissimo

Picred commented 11 months ago

Il download del file avverrà in /data/Orario.pdf. Un file Orario.pdf è considerato scaduto dopo 1 giorno.

Ho reso costanti queste variabili in modo da poterle modificare facilmente