Gå til innhold

Script for sjekk og varsling av nye karakterer på Studweb


Anbefalte innlegg

Det er sikkert flere her som går på høgskole eller universitet og får eksamensresultatene på Studweb. De som får det er sikkert like forbanna lei som meg av å logge inn og ut der i påvente av eksamnesresultater.

 

Før jul skrev jeg et sett HTML* klasser for å hente informasjon fra nettsider (de er ikke helt ferdig enda, men jeg er ganske fornøyd med hvordan de funker), men jeg endte iallfall opp med å skrive kode som sjekker Studweb for nye resultater og sender disse på mail. Denne uka har det til og med fått støtte for sms varsling (se ps).

 

Avhengigheter / krav:

  • PHP 5
  • Curl
  • Konto hos ung1881.no
  • Mulighet for å sende mail med php (sendmail?)

Ps! Zippen inneholder den ypperlige SMS klassen fra gjengen i denne forumtråden: https://www.diskusjon.no/index.php?showtopic=801776 Kudos til Jonhoo og gjengen der! :)

 

Advarsel 1: Du bør vurdere å kommentere ut koden som sender mail og sms første gang du kjører scriptet, ellers vil du få mail og sms for alle resultatene som allerede ligger der!

 

Advarsel 2: Sensitiv informasjon som fødselsnummer, pinkode, karakterer, brukernavn og passord til ung1881 blir lagret i klartekst så tenk over hvor du lagrer dette.

 

Tips 1: Anbefaler følgende crontab linje

0,30 8-17 * * 1-5 /usr/bin/php /home/.../studwebsjekker/sjekker.php >/dev/null 2>&1

 

Eksempel på kjøring

kim@Multimedix:~/studwebsjekker$ php sjekker.php

- Initierer script.

< Laster startsiden.

- Velger HIST.

- Initierer loginform.

> Sender loginform.

< Laster innsyn siden.

< Laster siden med eksamensresultatene.

- Henter ut karakterdata.

- Ser etter nye resultater.

* Nytt eksamensresultat! * i *******

> Mailer resultatene til ****@gmail.com.

> Sender sms til ****

+ Melding sendt

> Skriver nye resultat til fil.

- Data skrevet til fil.

Bye!

Studwebsjekker_Mai08_Edition.zip

Endret av Kimble
Lenke til kommentar
Videoannonse
Annonse

Jeg har ikke prøvd scriptet, men bare sett på koden.

Jeg må si at det så veldig ryddig ut. Jeg ser at jeg kan lære litt av koden din.

Din måte å bruke klasser på ligger et hakk eller flere over meg ;)

 

Det eneste jeg kan sette fingern på, er cookiefile og alle parameterene som tilhører der, ville jeg ha satt til NULL. (og fjerne de variablene som ikke trengs etter på)

Som jeg skrev i forrige post, benytter curl seg av minnecookie da.

Men man trenger fremdeles skrivetilgang til en mappe for å lagre resultatet av karakterene, så det blir mest for å bare fjerne det som er unødvendig.

 

Takk for at du posta koden!

kan tenke meg at det tok litt tid å oppkonstruere alt dette.

Endret av ThorB
Lenke til kommentar
Det eneste jeg kan sette fingern på, er cookiefile og alle parameterene som tilhører der, ville jeg ha satt til NULL. (og fjerne de variablene som ikke trengs etter på)

Som jeg skrev i forrige post, benytter curl seg av minnecookie da.

Men man trenger fremdeles skrivetilgang til en mappe for å lagre resultatet av karakterene, så det blir mest for å bare fjerne det som er unødvendig.

 

Var ikke klar over det med minnecookie, men det høres forsåvidt fornuftig ut når man hele tiden bruker samme instans av Curl ressursen. Ellers ble det litt dårlig kodepraksis på slutten når jeg la til sms støtte. En del av configen burde vel etter boka vært flyttet ut i egne metoder og litt sånn..

 

Takk for at du posta koden!

kan tenke meg at det tok litt tid å oppkonstruere alt dette.

 

Bare hyggelig og mange takk for trivelig tilbakemelding! :) Brukte et par kveld på de html klassene, men når jeg hadde de gikk det utrolig kjapt å hente data fra Studweb!

Lenke til kommentar
Gjest Slettet+1374861

har ikke fått sett på koden enda men dette høres sykt sweet ut!

laget selv noe greier for timeplan, fordi jeg synes den informasjonen hos NTNU var meget kryptisk og spredt ut over alle hauger.

merker med en gang jeg leser dette at det er ett must for meg. er innom heeeele tia for å se om jeg har fått nye bokstaver :p

takker! får ta en nermere titt asap :)

Lenke til kommentar
har ikke fått sett på koden enda men dette høres sykt sweet ut!

laget selv noe greier for timeplan, fordi jeg synes den informasjonen hos NTNU var meget kryptisk og spredt ut over alle hauger.

merker med en gang jeg leser dette at det er ett must for meg. er innom heeeele tia for å se om jeg har fått nye bokstaver :p

takker! får ta en nermere titt asap :)

 

Det kan ta på å sjekke Studweb hele tida! :)

 

ser bra ut :)

kan du lenke til en demo side!

 

Nope.. Det er laget for å kjøre i en cronjobb (kjørt ved et visst tidsintervall) på en server, men klassene er såpass greie at det ikke skal være noe hokus pokus å lage et web frontend.

Lenke til kommentar
Obs!

 

Ser ut som 1881 har redesignet sida så sms klassen som er bundlet i zip fila fungerer kanskje ikke (har ikke testet).

 

Følg med i denne tåden for siste versjon:

https://www.diskusjon.no/index.php?showtopi...0&start=100

 

Kan nok bekrefte det, var inne 24. for å registrere meg uten hell og fikk melding fra kundeservice

om at tjenesten var ustabil grunnet oppgradering. I dag har jeg registrert meg med hell. Hvis ting ikke har fungert de siste dagene så er det forklaringen.

Lenke til kommentar
  • 2 uker senere...

Da har jeg lagt den til til å kjøre hver time på webhotellet mitt. ;)

Men, la til dette på toppen, siden karakterer bare kommer i januar, mai, juni eller desember, slik at det ikke blir så mye belastning på serveren (siden den ikke går på studweb utenom disse mnd):

 

(har ikke crontab, derfor kan jeg ikke angi tider på annen måte)

 

header('Content-Type: text/html; charset=utf-8');
// Studwebsjekker av kim (krøllalfa) bprog dott no

echo "<pre>";

// Sjekker tid på året
echo " - Sjekker måned.\n";
if ((date("n") == 5) || (date("n") == 6) || (date("n") == 12) || (date("n") == 1)) {
echo " - Det er enten januar, mai, juni eller desember - fortsetter...\n";
// Sjekker tid på døgnet, siden karakterer bare kommer i arbeidstiden
echo " - Sjekker tid på døgnet.\n";
if (date("G") >= 7 && date("G") <= 19) {
	echo " - Det er dagtid - fortsetter... \n";
}
else {
	echo " - Det er ikke dagtid - avbryter...\n";
	exit;
}
}
else {
echo " - Det er ikke januar, mai, juni eller desember - avbryter...\n";
exit;
}

 

I tillegg er det et viktig poeng å lagre som UTF8, ellers vil det ikke fungere! ;)

Endret av ZoRaC
Lenke til kommentar
Synd jeg ikke oppdaget dette scriptet før, men skal seriøst legge det inn før karakterene på vårsemesteret kommer! :D

 

Ble så lei av å sjekke for karakterer på IT-retta, seriøst forsinka da, når det tok over 1,5 mnd! :S

 

Sant det.. litt drøyt av dama å vente såå lenge. Har man så vondt i ryggen at man ikke klarer å lese hører man hjemme i koma på sykehus :p

 

Digg å få resultater på SMS :) Syns egentlig det burde vært en tjeneste i studweb.

Lenke til kommentar
Sendte faktisk mail til studweb-folket i sommer og lurte på om de ikke kunne legge inn varsling pr mail når ny karakter var lagt inn. Trenger ikke inneholde fag/karakter engang, bare en standardtekst om at ny karakter er tilgjengelig!

 

Men, fikk aldri noe svar... :(

 

Det syns jeg er dårlig av dem. Bør ikke være mer enn absolutt toppen to timers arbeid å legge til støtte for "karaktervarsel" på epost. Både epost og mobilnummer ligger jo allerede lagret i databasen deres.

 

Men nå er det egentlig ikke noe problem lengre, var tøft å få karakter på sms :) Bare dem ikke gjør noen radikale endringer i det lekre designet så funker det kanskje til våren også :p

Lenke til kommentar
  • 1 måned senere...

hei, jeg får følgende feilmelding:

 

Warning: Invalid argument supplied for foreach() in /sjekker.php on line 53

- Initierer script. < Laster startsiden. - Velger Universitetet i Agder. --- Unntak --- Could not find link named 'Universitetet i Agder'

Lenke til kommentar
Could not find link named 'Universitetet i Agder'

 

Har du skreve noe feil kanskje?

 

Jeg bare byttet ut det som sto i kildekoden lagt ut av bruker Kimble lenger opp:

// Navnet på linken fra førstesiden på www.studweb.no
private $linkName = "Høgskolen i Sør-Trøndelag";

 

med

 

// Navnet på linken fra førstesiden på www.studweb.no
private $linkName = "Universitetet i Agder";

Lenke til kommentar
Jeg bare byttet ut det som sto i kildekoden lagt ut av bruker Kimble lenger opp:

// Navnet på linken fra førstesiden på www.studweb.no
private $linkName = "Høgskolen i Sør-Trøndelag";

 

med

 

// Navnet på linken fra førstesiden på www.studweb.no
private $linkName = "Universitetet i Agder";

 

Funket det? Typisk om dem gjør endringer på den hauggamle sida når jeg endelig har somlet meg til å skrive scriptet. Lover å oppdatere zipfila med siste versjon av sms klassen og litt sånn når jeg har hatt første eksamen :-)

Endret av Kimble
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...