Source

StudWeb / studweb.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import smtplib
import email
import sys
import os
import twill.commands as tc
import shutil

# Innstillinger
fnr = '' # Ditt fødselsnummer
pin = '' # PIN-kode til studweb
epost = '' # E-postadressen din
smtp = 'smtp.uio.no' # SMTP-server
terskel = 300 # Differanse på filer før og etter ny karakter
debug = False

# Har vi noe å sammenligne med?
if os.path.exists('studweb.html'):
    shutil.move('studweb.html', 'studweb_old.html')
else:
    open('studweb.html', 'w').close()
    open('studweb_old.html', 'w').close()

# Logg inn:
tc.go("https://studweb.uio.no/as/WebObjects/studentweb2.woa/3/wa/default?inst=UiO")
tc.fv("2", "fodselsnr", fnr)
tc.fv("2", "pinkode", pin)
tc.submit()

# Naviger til karakterer:
tc.follow('Se opplysninger om deg')
tc.follow('Resultater')
tc.save_html('studweb.html');

# Sammenlign
ny_str = os.path.getsize('studweb.html')
gml_str = os.path.getsize('studweb_old.html')
delta = ny_str - gml_str

# Debug:
if debug:
    tc.show()
    print
    print '%s - %s = %s' % (ny_str, gml_str, delta)
    print '(Terskel: %s)' % terskel

tc.follow('Logg ut')

# Filstørrelsen har endret seg tilstrekkeli, og det er ikke første gang vi sjekker
if delta > terskel and gml_str != 0:
    print "Nytt resultat, sender e-post"
    msg = email.MIMEText("Nytt resultat fra StudentWeb. Logg inn her: https://studweb.uio.no")
    msg['Subject'] = "StudentWeb oppdatert"
    msg['From'] = epost
    msg['To'] = epost
    s = smtplib.SMTP(smtp)
    s.sendmail(msg['From'], msg['To'], msg.as_string())
    s.quit()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.