csunibo / informabot

A Telegram bot to assist other undergraduate Computer Science students at the University of Bologna
https://t.me/UniboInformabot
GNU General Public License v3.0
8 stars 12 forks source link

Fuso orario per i comandi `/lezioni*` #112

Closed foxyseta closed 10 months ago

foxyseta commented 1 year ago

https://github.com/csunibo/informabot/blob/39a061d901abb9f9997e22265619080132e23d52/model/controller.go#L116C6-L116C15

Quando richiediamo gli orari delle lezioni, dovremmo tenere conto del fuso orario Italiano. Siccome ci interessa solo la data e non l'orario esatto, questa sarà spesso giusta, ma non dalle 23 a mezzanotte se c'è l'ora solare, o dalle 22 a mezzanotte se c'è l'ora legale.

foxyseta commented 10 months ago

Assegnato @Jabbar03 perché si è offerto di fare un tentativo in una branch separata.

@Jabbar03 se hai dubbi chiedi pure in questa issue taggando @csunibo/sviluppatori-bot (uno dei gruppi di cui fai parte) o su Telegram nella sezione "Bot".

Vedila come una scusa per imparare un linguaggio nuovo (che forse ti piacerà forse no) che in università non avresti visto. Ovviamente urgenza 0 quindi puoi lavorarci solo quando hai voglia e abbandonare se cambi idea. Ho dato un'occhio veloce alla issue e forse basta anche solo una linea, anche se sarebbe bello specificare il fuso orario in settings.json anziché hardcodarlo.

Jabbar03 commented 10 months ago

ok, farò del mio meglio

foxyseta commented 10 months ago

@Jabbar03 dovresti fare un merge da main alla tua branch per ottenere gli ultimi aggiornamenti: ora otteniamo gli orari di unibo.it usando un pacchetto Go nostro, quindi c'è da capire se quello risolva il problema o meno (guardando dentro il codice del pacchetto su https://github.com/csunibo/unibo-go o aprendo una issue per chiedere là citando questo problema.

samuelemusiani commented 10 months ago

Evitiamo i merge da main verso altre branch. Piuttosto usiamo rebase che è stato creato per quello :)

foxyseta commented 10 months ago

Sia merge da main che rebase hanno casi d'uso validi per me. La politica che sapevo io era:

se fare rebase non infrange la regola d'oro di git rebase
    fai rebase
sennò
    fai merge da main

In questo caso lo sa @Jabbar03 se ha dato consenso informale anche ad altra gente di lavorare sulla sua branch o meno. Non mi ero messo a spiegargli la differenza fra le due cose per non complicargli la vita alla prima PR

samuelemusiani commented 10 months ago

In questo caso mi sembra che non ci siano ancora commit qui su github relativi alla branch di fix. Direi che può fare tranquillamente un rebase in locale.

Sarò onesto, non mi piace troppo fare il merge di main verso altre branch, però capisco che se si sta facendo una pr con molti commit e ci si lavora in più di uno diventa un po' l'unico modo per portare la branch up to date.

foxyseta commented 10 months ago

Con tutta probabilità andrà modificata questa linea alla fine: https://github.com/csunibo/informabot/blob/195f22557352db08618e76398cf05cbc03c268e9/commands/uni.go#L55C29-L55C29

foxyseta commented 10 months ago

Aspetterei che @VaiTon abbia sistemato l'integrazione di unibo-go prima di cominciare a lavorare.

Se lui invoca tenendo conto del fuso orario locale, questa issue può essere contrassegnata come risolta. Altrimenti, ci mettiamo a lavorare a partire dalla sua implementazione (ma dovrebbe essere sempre questione di una linea).

Jabbar03 commented 10 months ago

Aspetterei che @VaiTon abbia sistemato l'integrazione di unibo-go prima di cominciare a lavorare.

Se lui invoca tenendo conto del fuso orario locale, questa issue può essere contrassegnata come risolta. Altrimenti, ci mettiamo a lavorare a partire dalla sua implementazione (ma dovrebbe essere sempre questione di una linea).

ok, aspetto il lavoro di @VaiTon. Intanto inizio a guardare altre issue da principiante.

VaiTon commented 10 months ago

In teoria la libreria parsa il time con la timezone locale

https://github.com/csunibo/unibo-go/blob/867d1dc5de30252905da42edb08ec8858d1d8372/timetable/calendartime.go#L15

foxyseta commented 10 months ago

Sì infatti per me unibo-go va già bene su questo aspetto (fermo restando che va reintegrato in informabot).

Io parlavo di FetchTimetable. Penso che quella funzione dovrebbe tenere conto del fuso orario Italiano quando costruisce l'url da interrogare. Perché se sono le 11 di sera in Italia per esempio quando FetchTimeable recupera anno, mese e giorno lo fa secondo il fuso orario di Greenwhich, e quindi il giorno risulta sbagliato (perché unibo usa il giorno in Italia, non quello a Greenwhich).

VaiTon commented 10 months ago

Comunque, ho rilasciato una v0.0.9 che parsa le date sempre con la timezone "Europe/Rome"

https://github.com/csunibo/unibo-go/releases/tag/v0.0.9

foxyseta commented 10 months ago

@Jabbar03 allora il fix diventa facilissimo siccome il problema è stato risolto in un pacchetto Go che usiamo: basta lanciare go get -u per aggiornare le dipendenze.

foxyseta commented 10 months ago

Risolto aggiornando le dipendenze