1 #!/usr/bin/env python
\r
2 # -*- coding: utf-8 -*-
\r
4 otptools base module - retain session/login info
\r
7 OTP_LOGIN_URL = "http://magazine.sourceforge.jp/login.pl"
\r
8 OTP_LOGIN_HOST = "magazine.sourceforge.jp"
\r
9 OTP_LOGIN_PATH = "/login.pl"
\r
19 OTP_LIST_PATH = "/admin.pl"
\r
21 BROWSER = "Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729) "
\r
25 import urllib, urllib2
\r
28 class otptools(object):
\r
30 Open Tech Press management library core module.
\r
33 def __init__(self, path_cookie, login_name="", login_password=""):
\r
35 @param path_cookie: path of file which cookie's information stored.
\r
36 @type path_cookie: stinrg
\r
38 @param login_name: OTP's login name for use.
\r
39 @type login_name: string
\r
41 @param login_password: OTP's login password.
\r
42 @type login_password: string
\r
44 self.path_cookie = path_cookie
\r
45 self.unickname = login_name
\r
46 self.upasswd = login_password
\r
50 login_param = copy.deepcopy( OTP_LOGIN_PARAM )
\r
51 login_param["unickname"] = self.unickname
\r
52 login_param["upasswd"] = self.upasswd
\r
54 # for item in login_param:
\r
55 # print "%s > %s" % (item, login_param[item] )
\r
57 encoded_data = urllib.urlencode( login_param )
\r
58 # print encoded_data
\r
61 "User-Agent": BROWSER,
\r
62 "Content-type": "application/x-www-form-urlencoded",
\r
63 "Accept": "text/plain",
\r
66 obj = httplib.HTTPConnection( OTP_LOGIN_HOST )
\r
67 obj.request( "POST", OTP_LOGIN_PATH, encoded_data, headers )
\r
68 resp = obj.getresponse()
\r
69 headers = resp.getheaders()
\r
71 # for item in headers:
\r
74 for header in headers:
\r
75 if header[0] == "set-cookie":
\r
76 str_cookie = header[1]
\r
81 self.cookie = str_cookie
\r
84 def save_cookie(self):
\r
85 file_obj = open( self.path_cookie, "w" )
\r
86 file_obj.write( self.cookie )
\r
89 def load_cookie(self):
\r
90 file_obj = open( self.path_cookie, "r" )
\r
91 self.cookie = file_obj.readline()
\r
96 "User-Agent": BROWSER,
\r
97 "Content-type": "application/x-www-form-urlencoded",
\r
98 "Accept": "text/plain",
\r
99 "Cookie": self.cookie,
\r
101 obj = httplib.HTTPConnection( OTP_LOGIN_HOST )
\r
102 obj.request( "POST", OTP_LIST_PATH, "", headers )
\r
103 resp = obj.getresponse()
\r
104 headers = resp.getheaders()
\r