Zephyrnet-logotyp

Lärare kodning: utforska CalDav-filer

Datum:

Lärarkodning: utforska CalDav-filer

Augusti 25, 2019

Det är början på läsåret, och för mig på de stora vardagliga uppgifterna är det att få min kalender inställd för läsåret. Vår skolas hembrygga SAS har den här fantastiska funktionen som genererar .ics-filer som innehåller alla dina klasser som du kan importera till Google-kalendern eller något annat kalenderprogram. Men det har ett problem - alla dina klassdata finns i den ena filen. Eftersom vi har ett nytt roterande schema hoppades jag att jag skulle kunna sätta varje klass i sin egen kalender för att låta mig bättre se hur en viss klass kartlägger de kommande veckorna.

När jag tänkte lite på det insåg jag att det här var ett fantastiskt tillfälle att använda mina kodningskunskaper. Jag visste att en .ics-fil i grunden var en textfil som listade alla händelser som skulle importeras till kalendern. Jag öppnade kalenderfilen i en textredigerare (Atom, i det här fallet) och tittade:

Skärmdump 2019 08 25 kl 11 23 39

Om du tittar noga på den här filen ser du att strukturen är ganska enkel. De första 7 raderna är rubriken som ställer in kalendern och sedan börjar varje händelse med BEGIN: VEVENT och slutar med END: VEVENT 7 rader senare.

Det fick mig att tänka på att jag kunde skriva ett pythonprogram som skulle hitta den första händelsen och sedan analysera den i bitar med 7 rader och skriva varje bit i en fil baserat på vilken klass det var associerat med (SUMMARY-raden).

Jag visste att pythonen är bra för den här saken, men jag hade glömt de finare punkterna att läsa och skriva filer, så jag googlade det. Jag visste inte heller hur jag skulle analysera textfilen i sju rader, men att googla "analysera textfil n rader i taget python" skickade mig till detta mycket hjälpsamma inlägg som introducerade mig till itverktyg och islice-funktionen som gör precis vad jag behövde.

Här är programmet jag kom med (länk till kod på Github Gist):

Ny bild

Om du är intresserad, här är en 5-minuters screencast där jag förklarar hur den här koden fungerar

Sammantaget tog det mig cirka 45 minuter att skriva den här koden, vilket förmodligen ligger nära den tid det skulle ha tagit mig att bara klippa och klistra in originalfilen i fyra separata kalenderfiler. Jag är också säker på att det finns någon regexexpert där ute som kunde ha gjort det på 4 sekunder, och om du läser detta skulle jag gärna höra om det i kommentarerna.

Om du var på min skola eller råkar ha en liknande calDav-fil som innehåller händelser med samma namn som du ville separera i enskilda filer, borde du kunna ändra söksträngarna i rad 27, 31, 35 och 39 till vad som helst du letar efter, ändra namnen på utdatafilerna i de första 4 raderna så är det bra att gå.

Nu har jag en mycket bättre uppfattning om hur CalDav-filer fungerar och kan tänka på många sätt att modifiera detta program:

  • Om jag visste alla dagar jag skulle ge ett frågesport i en klass, kunde jag sätta ihop en fil som listade alla frågedagar som jag skulle dela med mina elever.
  • Jag kunde ändra det här programmet för att beräkna det totala antalet klassperioder eller totalt antal minuter jag har i en klass.
  • Jag kunde exportera min Google-kalender som en .ics-fil och sedan använda ett sådant program för att analysera alla möjliga frågor som om jag hade loggat mina träningspass, hur ofta tränar jag det senaste året.


Källa: https://quantumprogress.wordpress.com/2019/08/25/teachers-coding-exploring-caldav-files/

plats_img

Senaste intelligens

plats_img