def do_login(account):
lprint('[{}] Login for {} account: {}'.format(account['num'], account['type'], account['user']))
timenow = get_time()
cursor_accs = db_accs.cursor()
db_repeat = True
while db_repeat:
try:
acc_saved = cursor_accs.execute("SELECT access_token,access_expire_timestamp,api_url,auth_ticket__expire_timestamp_ms,auth_ticket__start,auth_ticket__end from accounts WHERE user = ?",[account['user']]).fetchone()
db_repeat = False
except sqlite3.OperationalError as e:
lprint('[-] Sqlite operational error: {}, account: {} Retrying...'.format(e, account['user']))
except sqlite3.InterfaceError as e:
lprint('[-] Sqlite interface error: {}, account: {} Retrying...'.format(e, account['user']))
if acc_saved is not None and timenow < acc_saved[1]:
new_session(account)
account['access_expire_timestamp'] = acc_saved[1]
account['access_token'] = acc_saved[0]
lprint('[{}] Reused RPC Session Token: {}'.format(account['num'], account['access_token']))
else:
do_full_login(account)
lprint('[{}] New RPC Session Token: {}'.format(account['num'], account['access_token']))
acc_saved = None
location = LAT_C, LNG_C
if acc_saved is not None and timenow < acc_saved[3]:
account['api_url'] = acc_saved[2]
account['auth_ticket'] = {'expire_timestamp_ms': acc_saved[3], 'start': acc_saved[4], 'end': acc_saved[5]}
lprint('[{}] Reused API endpoint: {}'.format(account['num'], account['api_url']))
else:
set_api_endpoint(location, account)
lprint('[{}] New API endpoint: {}'.format(account['num'], account['api_url']))
if acc_tos:
accept_tos(location, account)
account['captcha_needed'] = False
评论列表
文章目录