WEEE-Open / weeelab-telegram-bot

Telegram bot for querying the weeelab log and some additional cool stuff.
GNU General Public License v3.0
8 stars 4 forks source link

Classe Riga #18

Closed ghost closed 5 years ago

ghost commented 6 years ago

Sto lavorando alla Classe Riga. Va bene come formato 2017-11-30 12:03 00:00 francesco.pasino Oggi ho riparato un PC? Non si vede nella preview ma ci sono degli spazi tra in nome utente e la descrizione in modo da avere tutto allineato, la maschera che ho usato sarebbe {date} {time_in} {time_out} {:<24} {descrizione}; {:<24} sta a significare che ci devono essere almeno 24 caratteri (ovviamente si può aumentare o diminuire, tanto il parsing lo vede come un solo spazio). 00:00 sta a significare che l'utente è in lab, altrimenti c'è segnata l'ora di logout. Se non va bene @lvps di tu come formattarla senza indugi, tanto con Python non sarà un problema gestirla.

lvps commented 6 years ago

Il formato che ha gia' iniziato a implementare @davecanni (parlatevi invece di rifare le stesse cose 2 volte in isolamento! asd) e' {date} - {time_in} - {duration/INLAB} - {name} - {descrizione}, questo per varie ragioni:

  1. Si puo' fare il parsing usando split e - (spazio, trattino, spazio) come delimitatore, utilizzando il secondo parametro di split per limitare il numero di campi: nei primi non compare mai il delimitatore perche' hanno un formato standard, nel nome avremo cura di non metterlo, nella descrizione anche se compare e' l'ultimo campo e il limite fa in modo che produca 1 stringa e non 500
  2. L'ora di uscita e' ridondante: potevamo lasciare quella o la durata, ma visto che la durata serve in /top e /stat mentre l'ora di uscita non ha un uso concreto aveva piu' senso fare cosi'
  3. INLAB e' piu' vistoso di 00:00, capita piu' spesso di quanto sembra di dover controllare o modificare il file a mano (gente che si dimentica il logout, incoerenza tra bot e weeelab se spengono schifomacchina prima che finisca di sincronizzare, gente che dimentica login, etc...)
  4. Se entra nel team uno con un nome piu' lungo tutto l'allineamento con spazi va a farsi benedire. Si puo' anche fare perche' il separatore e' -, ma non e' essenziale.
ghost commented 6 years ago

Non dirlo a me, dillo a lui...io appena perdo una mezz'ora comunico ciò che ho fatto... 1.usare più caratteri è ridondante, lo spazio basta. Comunque il formato standard (della libreria) è quello che ho usato.

  1. È vero, ma per come funzioni la libreria datetime è più sensato memorizzare l'ora di uscita perché così la conversione da stringa a oggetto e viceversa è immediata (fare la differenza tra i due oggetti pure) 3.va bene, nessun problema
  2. L'allineamento è solo per renderlo più leggibile quando si va a modificare a mano e non comporta altre modifiche nel codice se si usa lo spazio come separatore (altrimenti non so)
davecanni commented 6 years ago

@Paso94 guarda che è scritto ed è stato comunicato semplicemente visto che il log viene generato da weeelab e non dal bot questo non è il progetto principale in cui parlare delle modifiche al log, infatti se vai a vedere in weeelab è stata fatta una pull request con le modifiche al log e la struttura (come scritto in modo semplificato nel commento). Non è stato utilizzato lo spazio perché è più comune rispetto al carattere - e di solito nei log non si usa mai lo spazio come separatore. L’ora di uscita è stata tolta perché non serviva, usare inlab è più facile e salta più facilmente all’occhio di 0:00 secondo me. Il log e facilmente comprensibile anche senza allineamenti è solo con trattini sempre secondo me.

lvps commented 6 years ago
  1. E' ridondante ma rende il file piu' facile da leggere ad occhio, oltre che col calcolatore, essendo quello uno degli obiettivi
  2. Questo e' vero, ma sicuramente c'e' il modo di sommare un intervallo di tempo, o un'altra classe che gestisce gli intervalli di tempo e puo' restituire un oggetto con l'ora di uscita. Inoltre, in quale circostanza il bot ha bisogno dell'ora di uscita? Vale la pena rendere il file piu' difficile da modificare a mano (ora di uscita e durata) o piu' scomodo per operazioni comuni sul bot (/top e /stat) quando sicuramente c'e' modo di fare comunque quello che c'e' da fare con un minimo di codice in piu'? Il codice si scrive una volta (o almeno si spera), il /top e modificare il file a mano si fa N volte...
  3. Ok (devo scriverlo se no il punto 4 me lo numera come 3)
  4. si puo' fare anche con altri separatori, basta applicare trim ai campi in cui ci sono gli spazi asd
ghost commented 6 years ago
  1. La parte del calcolatore non mi risulta, mi risulta solo che il file risultante è più pensante con -
  2. C'è ma ci vuole più codice per convertire la stringa in un oggetto per poter fare le somme. E a me sembra più facile sapere l'ora di uscita di una persona che andarmi a calcolare a mente quanto é stato in lab. Io metterei non metteri la durata in lab, se la calcola ogni volta in un nulla
  3. Ok, credo