Python script lavet for at kunne tjekke, hvorvidt der er nye opskrivning på ens CP afdelings venteliste.
Baggrunden for dette script er, at vi i Coding Pirates Hillerød gerne vil vide, når børn skriver sig op til vores venteliste. Det vil vi af 2 årsager.
For det første synes vi, at det er på sin plads blot at bekræfte opskrivninger og sige tak til folk, når de skriver sig op til vores venteliste.
For det andet vil denne viden også give os en mulighed for at komme i kontakt med potentielle nye frivillige, da vi, via viden om et barns opskrivning, kan bruge denne mulighed til at skrive barnets forældre og gøre opmærksom på, at hvis de (altså den voksne) selv deltager i vores afdeling som frivillig, så vil de kunne tage deres eget ene barn gratis med i afdelingen, og dermed bypasse at skulle stå på venteliste.
Disse 2 årsager har været baggrunden for overhovedet at lave dette script.
For nu fungerer scriptet som følger.
Først og fremmest logger scriptet automatisk ind i medlemssystemet - forudsat at man har husket at skabe en txt fil kaldet "credentials.txt" med sit brugernavn og password adskilt af blot et mellemrum - og udtrækker ens afdelings nuværende venteliste.
Dernæst tjekker scriptet om det er blevet kørt før - reelt set hvorvidt der er blevet skabt en sqlite database eller ej.
Er scriptet ikke kørt før, så opretter det blot en database kaldet "waitinglist.db" med tabel kaldet "persons", hvori personerne fra den udtrukket venteliste indsættes.
Når dette er gjort, så afsluttes scriptet blot, da der således ingen grund er til at gå videre med scriptets kode indtil næste gang det køres for tjek af nye opskrivninger.
Er scriptet kørt før, så hentes først alle personer fra databasen (dvs. fra "waitinglist.db").
Dernæst tjekkes der for, hvor nogen af de netop udtrukket personer fra medlemssystemets venteliste ikke er at finde "persons" tabellen i databasen.
Er der personer fra den udtrukne venteliste som ikke findes i databasen, så indsættes først en ny record for hver person i databasen - da denne jo skal opdateres til næste gang scriptet køres - og afslutningsvist gemmes samme person(er) umiddelbart blot i txt fil kaldet "persons_not_on_waiting_list.txt", hvorudfra man så selv kan afgøre, hvordan man vil håndtere disse nye opskrivning på ens venteliste.
Hvis nogen vil gøre brug af scriptet, så følger her en vejledning til, hvordan dette gøres.
Først og fremmest skal man have Python installeret for at køre scriptet.
Gå derfor til python.org og download og installer Python.
I'm sorry .. men hvis ikke du ved, hvordan man gør det her (hvilket er helt, HELT fair!), så få lige en til at hjælpe dig med det (for det er lidt "bøvlet" at forklare, og jeg, Jonas, orker det ikke rigtigt lige nu .. sorry).
Installer projektets dependencies ved at køre denn kommando:
pip install -r requirements.txt
Skab i roden af projektet en fil kaldet "credentials.txt", hvor du blot på én linje indtaster:
- dit brugernavn til medlemssystemet
- laver et mellemrum
- dit password
Her er et eksempel på, hvordan filen med brugernavn og password ville se ud for en fiktiv bruger:
mogens@iamgod.com EsmunTus%1968%
Med dette sat op burde du nu være i stand til at køre scriptet. Om du så vælger at køre det manuelt fra terminalen en gang imellem, eller sætter det op til at køre automatisk via fx 'crontab' for macOS eller 'Task Scheduler' på Windows, ja, det må være op til dig selv.
Scriptet finder således for nu blot ud af, hvorvidt der er nye opskrivninger på ens CP venteliste. Og dette er gjort med FULDT overlæg! For om du blot vil have en Desktop notifikation, når nye børn skriver sig op, eller gerne automatisk vil sende emails ud til nye opskrivninger på ventelisten, ja, det er jo op til DIG at afgøre, og ikke mig/os.
Om ikke andet kan du i hvert fald (nu) bruge dette scriptet til enten manuelt eller automatisk at udtrække oplysninger om nye opskrivning på din/jeres CP venteliste. Og hvad du som sagt så vil gøre med det, ja, det er - "tadaaa ..!!" - op til DIG.
Og "ps": dele af koden sutter sikkert røv, navngivning af variable kunne sikkert være bedre og .. blah blah blah .. men 'whatevs', forhåbentlig virker scriptet også for dig.