Learn sign-in url
Current get_learn_browser
function appears to fall over, probably because of tweaks to learn... again
Sign-in url for learn https://www.learn.ed.ac.uk/cgi-bin/login.cgi
seems to want to point somewhere else now and I'm not sure mechanize
is keeping up
One hacky approach is just from following the urls given by a no-javascript browser session. Since mechanize
keeps an internal cookiejar it is easiest to do by searching for the form. For some reason the no-javascript form has to be filled in twice Looks roughly like this
def get_learn_browser(user, passwd):
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [("User-agent", ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:23.0)"
"Gecko/20100101 Firefox/23.0"))]
br.open("https://www.ease.ed.ac.uk")
r = br.open("https://www.ease.ed.ac.uk/cosign.cgi",
urllib.parse.urlencode({'login': user,
'password': passwd}))
# Log in to Learn
r = br.open("https://www.learn.ed.ac.uk/auth-saml/saml/login?apId=_175_1")
br.select_form(nr=0)
r = br.submit()
br.select_form(nr=0)
r = br.submit()
return br
Significance of the ?apId=_175_1
query string is lost on me, but it works consistently. (i.e. it work all of this evening)
When blackboard contains comments like
<!-- START HACK : hide_save_draft_butt -->
<!-- END HACK : hide_save_draft_butt -->
I don't feel so lazy myself.
Will throw up a pull request after more testing but feel free to implement yourself.