From: Petter Reinholdtsen
Jeg startet med å skrive programmet i Python, og hadde en versjon som logget inn og hentet ned enkeltsider fra Fronter. Men -Fronter-websidene suger golfballer gjennom en hangeslange, med +Fronter-websidene suger golfballer gjennom en hageslange, med uleselig HTML, flere nivåer av iframes og en struktur på innholdet som er svært vanskelig å finne ut av, så jeg ga til slutt opp lxml-parsing -med python og forsøkte meg med WWW::Mechanize for Perl som jeg kjente +med Python og forsøkte meg med WWW::Mechanize for Perl som jeg kjente fra før. I ettertid har jeg oppdaget at WWW:Mechanize også finnes for -python, så jeg kunne antagelig droppet språkbyttet. Men da jeg +Python, så jeg kunne antagelig droppet språkbyttet. Men da jeg oppdaget det hadde jeg kommet så langt med Perl-utgaven, så jeg hoppet ikke tilbake.
For å logge inn i Fronter besøker en enten skolens websider eller -den sentrale innlogginsiden https://fronter.com/osloskoler/. +den sentrale innloggingsiden https://fronter.com/osloskoler/. Perl-koden for å logge inn ser slik ut:
@@ -49,7 +49,7 @@ $mech->submit_form(fields => { På vår skole er det rom for skolen, biblioteket, elevrådet, aktivitetsskolen og klasser der en har unger, og dette vil være forskjellig fra person til person. Etter å ha romstert rundt i -Fronter-grensesnittet endel kom jeg over en grei HTMl-side med +Fronter-grensesnittet endel kom jeg over en grei HTML-side med oversikt over rommene, https://fronter.com/osloskoler/adm/projects.phtml?mode=displayRoomchooser, så jeg bruker denne til å hente ut romoversikt med rom-ID. @@ -73,7 +73,7 @@ iframes, og en må tre nivåer ned i iframes før en får tak i HTML-informasjonen som vises frem når en ser på det aktuelle rommet. Her ga jeg opp den robuste parsingen og hardkodet endel URL-er som i stedet bør spores opp maskinelt. HTML-informasjonen som vises lagres -i en fil etter at økt- og innloggs-nøkkel er fjernet og deretter +i en fil etter at økt- og innloggings-nøkkel er fjernet og deretter bruker jeg lynx --dump --nolist for å hente ut en tekstlig utgave av websiden. Denne tekstlige utgaven sammenlignes med forrige versjon og oversikt over endringer kan så sendes ut på egnet vis.