Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: /lezioni command #269

Merged
merged 8 commits into from
Oct 14, 2023
Merged

fix: /lezioni command #269

merged 8 commits into from
Oct 14, 2023

Conversation

Picred
Copy link
Member

@Picred Picred commented Oct 13, 2023

  • Ho implementato il comando /lezioni che invia all'utente il pdf contenente l'orario delle lezioni chiamato "Orario.pdf".
  • Inoltre ho eliminato il comando che generava la tastiera inline ma ho lasciato le funzioni che la usavano per evitare di creare troppi problemi e, magari, riusarle in futuro.
  • Ho aggiornato (sempre per il futuro) i link in lezioni_link.md e ho usato solamente il primo link L-31

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
Copy link
Member

Helias commented Oct 13, 2023

tested

image

@Helias
Copy link
Member

Helias commented Oct 13, 2023

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
Copy link
Member Author

Picred commented Oct 14, 2023

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

module/commands/lezioni.py Outdated Show resolved Hide resolved
@Helias Helias merged commit 1b8a0ac into UNICT-DMI:master Oct 14, 2023
1 check passed
@Picred Picred deleted the lezioni branch October 15, 2023 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix /lezioni command
3 participants