Ejemplo n.º 1
0
def wblogin(username, password):
    resp = session.get(
        'http://login.sina.com.cn/sso/prelogin.php?'
        'entry=weibo&callback=sinaSSOController.preloginCallBack&'
        'su=%s&rsakt=mod&checkpin=1&client=%s' %
        (base64.b64encode(username.encode('utf-8')), WBCLIENT)
    )

    pre_login_str = re.match(r'[^{]+({.+?})', resp.text).group(1)
    pre_login = json.loads(pre_login_str)

    pre_login = json.loads(pre_login_str)
    data = {
        'entry': 'weibo',
        'gateway': 1,
        'from': '',
        'savestate': 7,
        'userticket': 1,
        'ssosimplelogin': 1,
        'su': base64.b64encode(requests.utils.quote(username).encode('utf-8')),
        'service': 'miniblog',
        'servertime': pre_login['servertime'],
        'nonce': pre_login['nonce'],
        'vsnf': 1,
        'vsnval': '',
        'pwencode': 'rsa2',
        'sp': encrypt_passwd(password, pre_login['pubkey'],
                             pre_login['servertime'], pre_login['nonce']),
        'rsakv' : pre_login['rsakv'],
        'encoding': 'UTF-8',
        'prelt': '53',
        'url': 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.si'
               'naSSOController.feedBackUrlCallBack',
        'returntype': 'META'
    }

    resp = session.post(
        'http://login.sina.com.cn/sso/login.php?client=%s' % WBCLIENT,
        data=data
    )

    login_url = re.search('replace\\(\'([^\']+)\'\\)', resp.text).group(1) 
    resp = session.get(login_url)
    login_str = login_str = re.search('\((\{.*\})\)', resp.text).group(1)

    login_info = json.loads(login_str)
    log("登录成功:" + str(login_info))

    uniqueid = login_info["userinfo"]["uniqueid"]
    return (session, uniqueid)
Ejemplo n.º 2
0
    def run(self, keyIndex):
        """ 
            run을 실행하면 자동으로 API에서 데이터를 받아와
            데이터베이스에 저장할 수 있도록함
            
        """
        self.initialize()
        self.subModel.remove()
        now = (datetime.datetime.now().hour)
        if self.train_ok(now):
            return False

        for line in self.lines:
            URL = self.makeUrl(line, keyIndex)
            print(URL)
            try:
                REQUESTED_JSON = self.requestUrl(URL)
                self.parseRequest(REQUESTED_JSON)
                self.seatModel.update()
                return True

            except:
                log("Subway Time Done or Error")
                return False
Ejemplo n.º 3
0
from loger import log, loger_setting

print('\n* 基础输出\nbasic output:')
log('this is a log')

print('\n* 预设的输出等级是3 (inf),你可以在输出时设置level为1-4(error warning info success)\ndefault log level is 3 (info),you can set 1-4 (error warning info success) to level to change it')
log('this is a error, level=1', level=1)
log('this is a warning, level=2', level=2)
log('this is a information, level=3', 3)
log('this is a success,level=4', 4)

print('\n* 使用 setting 可以控制 更改loger的设置。\n use setting can change loger default setting')

print('\n* 控制输出级别\nchange output level:')
loger_setting(show_level=2)
log('this error will show', 1)
log('this is a will show', 2)
log('this information will not show', 3)
log('this success will not show', 4)


print('\n* 使用时间戳\noutput with time mark:')
loger_setting(time_mark=True)
log('this is a error with time mark', 1)
log('this is a warning with time mark', 2)

print('\n* 禁用颜色输出\noutput without color:')
loger_setting(color=False)
log('this is a error without color', 1)
log('this is a warning without color', 2)
Ejemplo n.º 4
0
 def sendWeibo(self):
       text = TextFactory.getText()
       self.update(text)
       log(u"发送微博:" + text)
Ejemplo n.º 5
0
 def stop(self):
       log("结束任务")
       self.timer.cancel()
       pass
Ejemplo n.º 6
0
 def start(self):
       log("开始任务")
       self.sendWeibo()
       self.newTimer()
Ejemplo n.º 7
0
# Main App
import time
from subwayAPI import MetroAPI
from loger import log

if __name__ == "__main__":
    Metro = MetroAPI()
    while True:
        for i in range(5):
            if Metro.run(i):
                print(f"Fire Base Updated - API CODE {i}")
                log(f"Fire Base Updated, API CODE {i}")
                time.sleep(20)
            else:
                print(f"Wait for 1hour to start sub")
                log("Wait for 1hour to start subway")
                time.sleep(60 * 60)
Ejemplo n.º 8
0
def wblogin(username, password):
    resp = session.get(
        'http://login.sina.com.cn/sso/prelogin.php?'
        'entry=weibo&callback=sinaSSOController.preloginCallBack&'
        'su=%s&rsakt=mod&checkpin=1&client=%s' %
        (base64.b64encode(username.encode('utf-8')), WBCLIENT))

    pre_login_str = re.match(r'[^{]+({.+?})', resp.text).group(1)
    pre_login = json.loads(pre_login_str)

    pre_login = json.loads(pre_login_str)
    data = {
        'entry':
        'weibo',
        'gateway':
        1,
        'from':
        '',
        'savestate':
        7,
        'userticket':
        1,
        'ssosimplelogin':
        1,
        'su':
        base64.b64encode(requests.utils.quote(username).encode('utf-8')),
        'service':
        'miniblog',
        'servertime':
        pre_login['servertime'],
        'nonce':
        pre_login['nonce'],
        'vsnf':
        1,
        'vsnval':
        '',
        'pwencode':
        'rsa2',
        'sp':
        encrypt_passwd(password, pre_login['pubkey'], pre_login['servertime'],
                       pre_login['nonce']),
        'rsakv':
        pre_login['rsakv'],
        'encoding':
        'UTF-8',
        'prelt':
        '53',
        'url':
        'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.si'
        'naSSOController.feedBackUrlCallBack',
        'returntype':
        'META'
    }

    resp = session.post('http://login.sina.com.cn/sso/login.php?client=%s' %
                        WBCLIENT,
                        data=data)

    login_url = re.search('replace\\(\'([^\']+)\'\\)', resp.text).group(1)
    resp = session.get(login_url)
    login_str = login_str = re.search('\((\{.*\})\)', resp.text).group(1)

    login_info = json.loads(login_str)
    log("登录成功:" + str(login_info))

    uniqueid = login_info["userinfo"]["uniqueid"]
    return (session, uniqueid)