import os
import re
import urllib
import urllib.request, urllib.parse, http.cookiejar
from urllib.request import urlopen
TESTING SETTINGS (will only be used when running this file independent of your addon)
Remember to clear these after you are finished testing,
so that your sensitive details are not in your source code.
These are only used in the: if name == "main" thing at the bottom of this script.
myusername = '????'
mypassword = '????'
note, the cookie will be saved to the same directory as weblogin.py when testing
def check_login(source,username):
#the string you will use to check if the login is successful.
#you may want to set it to: username (no quotes)
logged_in_string = 'ola'
#search for the string in the html, without caring about upper or lower case
if re.search(logged_in_string,source,re.IGNORECASE):
return True
else:
return False
def doLogin(cookiepath, username, password):
#check if user has supplied only a folder path, or a full path
if not os.path.isfile(cookiepath):
#if the user supplied only a folder path, append on to the end of the path a filename.
cookiepath = os.path.join(cookiepath,'cookies.lwp')
#delete any old version of the cookie file
try:
os.remove(cookiepath)
except:
pass
if username and password:
#the url you will request to.
login_url = 'put site here'
#the header used to pretend you are a browser
header_string = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3'
#build the form data necessary for the login
login_data = urllib.urlencode({'user':username, 'pass':password, 'wp-submit':'Login', 'action':'login'})
#build the request we will make
req = urllib2.Request(login_url, login_data)
req.add_header('User-Agent',header_string)
#initiate the cookielib class
cj = cookielib.LWPCookieJar()
#install cookielib into the url opener, so that cookies are handled
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#do the login and get the response
response = opener.open(req)
source = response.read()
response.close()
#check the received html for a string that will tell us if the user is logged in
#pass the username, which can be used to do this.
login = check_login(source,username)
#if login suceeded, save the cookiejar to disk
if login == True:
cj.save(cookiepath)
#return whether we are logged in or not
return login
else:
return False
code to enable running the .py independent of addon for testing
if name == "main":
if myusername is '' or mypassword is '':
print ('YOU HAVE NOT SET THE USERNAME OR PASSWORD!')
else:
logged_in = doLogin(os.getcwd(),myusername,mypassword)
print ('LOGGED IN:'),logged_in
import os import re import urllib import urllib.request, urllib.parse, http.cookiejar from urllib.request import urlopen
TESTING SETTINGS (will only be used when running this file independent of your addon)
Remember to clear these after you are finished testing,
so that your sensitive details are not in your source code.
These are only used in the: if name == "main" thing at the bottom of this script.
myusername = '????' mypassword = '????'
note, the cookie will be saved to the same directory as weblogin.py when testing
def check_login(source,username):
def doLogin(cookiepath, username, password):
code to enable running the .py independent of addon for testing
if name == "main": if myusername is '' or mypassword is '': print ('YOU HAVE NOT SET THE USERNAME OR PASSWORD!') else: logged_in = doLogin(os.getcwd(),myusername,mypassword) print ('LOGGED IN:'),logged_in