hdir / strava-club

Web-scraping tool and presentation of club results on github pages. Summarized results for a period of time and counting tickets for competition prizes.
https://hdir.github.io/strava-club/vaar24
2 stars 0 forks source link

Prosess og kode for starte konkurranseperiode #34

Closed thomiz closed 5 months ago

thomiz commented 6 months ago

Prosess for å starte konkurranse.

xivind commented 6 months ago

Har jobbet med dette som en del av refaktoreringen, og nå begynner det å hjelpe på her. Veldig mye lettere å styre ting når det er oo. Blant annet sørger koden under for at scriptene kan kjøre hele tiden, så bare fjernes de records som er eldre enn uken aksjonen starter. Vi kan lett oppdatere den metoden til å fjerne data som er nyere enn siste uken i aksjonen også, jf. kommentaren din i #33 @thomiz Strengt tatt burde kanskje denne metoden ligget i databehandler og ikke presentatør, men det kan vi fikse senere. Outputen blir riktig uansett, og jeg tenkte det var best å samle alt slikt ett sted. Men det kan vi diskutere.

def purge_non_campaign_activities(self):
        """Method to delete records outside campaign from datastore (only memory)"""
        records_to_delete = []
        records_before_purge = len(self.master_data)

        print(f'There are {records_before_purge} records in results.json')

        for key, value in self.master_data.items():
            if value["week_number"] < CAMPAIGN_WEEK_START:
                records_to_delete.append(key)

        for key in records_to_delete:
            del self.master_data[key]

        print(f'{records_before_purge - len(self.master_data)}'
              f' were outside campaign period and have been deleted')
thomiz commented 6 months ago

Bra!

Jeg mener denne koden bør vi ha enten i databehandler eller i skraperen, slik kan vi holde result.json fri for alle resultater som ikke skal være med i perioden. Startuke må hentes fra config filen.

xivind commented 6 months ago

Utmerket, helt enig 💯 Metoden purge_non_campaign_activities()er nå flyttet fra presentatør til databehandler. Testet og fungerer, men du må også se over. Vi kan ta det som en del av #29. Jeg synes det virker mest logisk at vi tar denne type permanente endringer av datasettet nettopp i databehandler. Også enig at CAMPAIGN_WEEK_START (og andre variabler vi spesifiserer manuelt, som filstier) må komme fra configfilen. Dette gjelder et antall variabler i både skraperen, databehandler og presentatør. Vi har en egen issue for det, #5, så kan vi løse det der samlet senere. Oppdatert med sjekkliste.

thomiz commented 6 months ago

Prosedyre

  1. Flytte filer i datakatalog til en backupdiestinasjon for eksempel data/kampanje_dato
  2. Sette kampanjestart uke i databehandler eller config.ini
  3. Resultatfilen må eksistere i data/result/results.json, filen må være tom.
  4. Kjør scriptet for produksjon.
xivind commented 6 months ago

Dette ser bra ut! Den prosedyren der bør kanskje legges i dokumentasjonen?

thomiz commented 6 months ago

Lagt ut nytt innhold i README.md, plantuml og ny figur i README for review @xivind

xivind commented 6 months ago

Ser bra ut @thomiz Jeg kom med noen ytterligere justeringer som det er fint om du ser over. Review fra min kant er ferdig, men lar den stå på review til du har sett på.

thomiz commented 5 months ago

OK