def bixiang_upgrade(unique, uid): global mail_subject global proxies url = "http://tui.yingshe.com/member/getNoLevel" url_upgrade = "http://tui.yingshe.com/member/getLevelReward" payload_upgrade = payload + "&unique=" + unique + "&uid=" + uid try: logger.warning("********** bixiang_upgrade(), proxies = " + str(proxies)) response = requests.request("POST", url, data=payload_upgrade, headers=headers, timeout=60, proxies=proxies) time.sleep(random.randint(MIN_SEC, MAX_SEC)) res = response.json()["status"] if res == 1: now_bxc = response.json()["info"]["now_bxc"] level_bxc = response.json()["info"]["level_bxc"] logger.warning('********** Upgrade. now_bxc=' + str(now_bxc)) logger.warning('********** Upgrade. level_bxc=' + str(level_bxc)) if now_bxc > level_bxc: # logger.warning('********** now_bxc > level_bxc, before upgrade') response = requests.request("POST", url_upgrade, data=payload_upgrade, headers=headers) # logger.warning('********** now_bxc > level_bxc, after upgrade') # logger.warning('********** now_bxc > level_bxc, response status = ' + str(response.json()["status"])) mail_subject = mail_subject + ', Upgrade' if response.json()["status"] == 1: logger.warning('>>>>>>>>>> Upgrade Success! ') return 1 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def accept(token, id): global proxies url = "https://server.diwuqu.vip/api/app/v1/record/accept/" + str(id) headers = {'token': token, 'Cache-Control': "no-cache"} try: # logger.warning("********** accept(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() ssl._create_default_https_context = ssl._create_unverified_context time.sleep(random.randint(MIN_SEC, MAX_SEC)) response = requests.request("PUT", url, headers=headers, proxies=proxies) res = response.json()["state"] if res == 'success': logger.warning('>>>>>>>>>> Mining ' + str(id)) else: logger.warning('>>>>>>>>>> Mining error ' + str(id)) except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("https://server.diwuqu.vip")
def loginGetAccessToken(user_agent, device_id, l, version): global proxies url_login = '******' + user_agent + \ '&device_id=' + device_id + '&l=' + l + '&token=b3039ba5ae084fe6ad6e4bb4d4ca9882&version=' + version try: logger.warning("********** loginGetAccessToken(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() r = requests.post(url_login, data=data, headers=headers, proxies=proxies, timeout=60) # if bProxy == 0: # r = requests.post(url_login, headers=headers, verify=False) #headers=headers, # else: # r = requests.post(url_login, headers=headers, proxies=proxies, verify=False) #headers=headers, res = r.json()["msg"] if res == 'Success': token = r.json()["data"]["map"]["token"] return token else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy( "http://hkopenservice1.yuyin365.com:8000/one-chain/login") return -1
def mining_click(user_agent, device_id, l, token, version, mining_detail_uuid): global proxies url_check = 'http://hkopenservice1.yuyin365.com:8000/one-chain/mining/detail/click?user_agent=' + user_agent + \ '&device_id=' + device_id + '&l=' + l + '&token=' + token + '&version=' + version + \ '&mining_detail_uuid=' + mining_detail_uuid try: # logger.warning("********** mining_click(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() r = requests.post(url_check, data=data, headers=headers, proxies=proxies, timeout=60) res = r.json()["msg"] if res == 'Success': logger.warning('>>>>>>>>>> mining...... ' + str(mining_detail_uuid)) return 0 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy( "http://hkopenservice1.yuyin365.com:8000/one-chain/login") return
def get_allTotal(token): global proxies url = "https://server.diwuqu.vip/api/app/v1/properties" headers = { 'Content-Type': "application/json", 'Connection': "close", 'Accept-Encoding': "gzip", 'Cache-Control': "no-cache", 'token': token } try: logger.warning("********** get_allTotal(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() ssl._create_default_https_context = ssl._create_unverified_context time.sleep(random.randint(MIN_SEC, MAX_SEC)) response = requests.request("GET", url, headers=headers, proxies=proxies) res = response.json()["state"] if res == 'success': total_list = response.json()["data"]["list"] return total_list else: return -1 except requests.exceptions.ConnectionError as f: print(f) proxies = daxiang_proxy.get_proxy("https://server.diwuqu.vip") return -1 except Exception as e: print(e) return -1
def bixiang_userInfo(unique, uid): global proxies global mail_subject url = "http://tui.yingshe.com/member/userInfo" payload_userInfo = payload + "&unique=" + unique + "&uid=" + uid try: logger.warning("********** bixiang_userInfo(), proxies = " + str(proxies)) response = requests.request("POST", url, data=payload_userInfo, headers=headers, timeout=60, proxies=proxies) time.sleep(random.randint(MIN_SEC, MAX_SEC)) res = response.json()["status"] if res == 1: show_id = response.json()["info"]["show_id"] nickname = response.json()["info"]["nickname"] phone = response.json()["info"]["phone"] bxc = response.json()["info"]["bxc"] mail_subject = phone logger.warning( '********** uid=' + uid + ', show_id=' + show_id + ', nickname=' + nickname + ', phone=' + phone + ', bxc=' + bxc) return 1 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def record(token): global proxies url = "https://server.diwuqu.vip/api/app/v1/records/waiting" headers = {'token': token, 'Cache-Control': "no-cache"} try: logger.warning("********** record(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() ssl._create_default_https_context = ssl._create_unverified_context time.sleep(random.randint(MIN_SEC, MAX_SEC)) response = requests.request("GET", url, headers=headers, proxies=proxies) res = response.json()["state"] if res == 'success': record = response.json()["data"]["list"] return record else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("https://server.diwuqu.vip") return -1
def get_calculated(user_agent, device_id, l, token, version): global proxies url_check = 'http://hkopenservice1.yuyin365.com:8000/one-chain/mining/user/infoString?user_agent=' + user_agent + \ '&device_id=' + device_id + '&l=' + l + '&token=' + token + '&version=' + version try: logger.warning("********** get_calculated(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() r = requests.post(url_check, data=data, headers=headers, proxies=proxies, timeout=60) res = r.json()["msg"] if res == 'Success': mining_flag = r.json()['data']['map']['mining_flag'] if mining_flag == "NO": open_mining(user_agent, device_id, l, token, version) logger.warning('********** mining opened') account_id = r.json()['data']['map']['account_id'] account_name = r.json()['data']['map']['account_name'] calculated = r.json()['data']['map']['calculated'] logger.warning('>>>>>>>>>> calculated: ' + calculated) return calculated except Exception as e: print(e) proxies = daxiang_proxy.get_proxy( "http://hkopenservice1.yuyin365.com:8000/one-chain/login") return -1
def coin_from_online_to_transaction_wallet(user_agent, device_id, l, token, version): global proxies url_online = 'http://hkopenservice1.yuyin365.com:8000/one-chain/offchain/list?user_agent=' + user_agent + \ '&device_id=' + device_id + '&l=' + l + '&token=' + token + '&version=' + version headers = { 'User-Agent': "okhttp/3.5.0", 'Host': "hkopenservice1.yuyin365.com:8000", 'Content-Type': 'application/x-www-form-urlencoded', 'Connection': 'close', 'Accept': '*/*', 'Accept-Language': 'zh-Hans-CN;q=1', 'Accept-Encoding': 'gzip', 'Cache-Control': "no-cache" } try: logger.warning( "********** coin_from_online_to_transaction_wallet(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() r = requests.post(url_online, data=data, headers=headers, proxies=proxies, timeout=60) res = r.json()["msg"] if res == 'Success': coinlist = r.json()['data']['list'] for i in range(len(coinlist)): coin = coinlist[i] amount = coin.get('amount_available', 0) asset_code = coin.get('asset_code', 'NA') asset_name = coin.get('short_name', 'NA') if amount > 0.0001: coin_offline_transfer(user_agent, device_id, l, token, version, asset_code, asset_name, amount) return 0 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy( "http://hkopenservice1.yuyin365.com:8000/one-chain/login") return -1
def coin_offline_transfer(user_agent, device_id, l, token, version, asset_code, asset_name, amount): global proxies url_referer = 'http://hkopenserviceui1.yuyin365.com:8000/withdrawals.html?user_agent=' + user_agent + \ '&device_id=' + device_id + '&l=' + l + '&token=' + token + '&version=' + version + \ 'asset_code=' + asset_code + '&asset_name=' + asset_name url_envelopes = 'http://hkopenservice1.yuyin365.com:8000/one-chain/offchain/envelopes' headers = { 'User-Agent': "okhttp/3.5.0", 'Host': "hkopenservice1.yuyin365.com:8000", 'Content-Type': 'application/x-www-form-urlencoded', 'Connection': 'close', 'Accept': '*/*', 'Accept-Language': 'zh-Hans-CN;q=1', 'Accept-Encoding': 'gzip', 'Cache-Control': "no-cache", 'Host': "hkopenservice1.yuyin365.com:8000", 'Referer': url_referer } data['amount'] = amount data['asset_code'] = asset_code data['token'] = token data['user_agent'] = user_agent data['l'] = l try: logger.warning("********** coin_offline_transfer(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() r = requests.post(url_envelopes, data=data, headers=headers, proxies=proxies, timeout=60) res = r.json()["msg"] if res == 'Success': logger.warning("********** coin_offline_transfer(), Success。" + asset_code + ":" + str(amount)) return 0 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy( "http://hkopenservice1.yuyin365.com:8000/one-chain/login") return -1
def get_allTotal(unique, uid): global proxies # url = "http://tui.yingshe.com/user/property" # querystring = {"xxx":"swh6XfD8FvRBZr17Hufua"} headers = { 'Host': "tui.yingshe.com", 'Connection': "close", 'Accept-Encoding': "gzip", 'User-Agent': "okhttp/3.4.1", 'Content-Type': "application/x-www-form-urlencoded", 'Cache-Control': "no-cache" } url = bixiang_property_url(unique, uid) try: logger.warning("********** get_allTotal(), proxies = " + str(proxies)) response = requests.request("GET", url, headers=headers, timeout=60, proxies=proxies) html = response.text parser = etree.HTMLParser() tree = etree.parse(StringIO(html), parser) # result = etree.tostring(tree.getroot(), pretty_print=True, method="html") # print(result) total_bx_list = tree.xpath('//*[@id="wallet"]/a[1]/li/span[2]/text()') total_bx = float(total_bx_list[0].encode('utf-8')) today_bx_list = tree.xpath('//*[@id="wallet"]/a[1]/li/span[3]/span/text()') today_bx = float(today_bx_list[0].encode('utf-8')) # logger.warning("********** response.status_code = " + str(response.status_code)) return total_bx, today_bx except requests.exceptions.ConnectionError as f: print(f) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1, -1 except Exception as e: print(e) return -1, -1
def get_lottery_url(unique, uid): global proxies url = "http://tui.yingshe.com/member/miningBxc" payload_property = payload + "&unique=" + unique + "&uid=" + uid try: response = requests.request("POST", url, data=payload_property, headers=headers, timeout=60, proxies=proxies) image_url_list = response.json()["info"]["image_url"] for i in range(len(image_url_list)): url = image_url_list[i] nPos = url.find('lottery') if nPos > -1: return url return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def bixiang_sharing(unique, uid, id): global proxies url = "http://tui.yingshe.com/live/infofrist" payload_id = payload + "&live_id=" + id + "&unique=" + unique + "&uid=" + uid try: # logger.warning("********** bixiang_sharing(), proxies = " + str(proxies)) response = requests.request("POST", url, data=payload_id, headers=headers, timeout=60, proxies=proxies) time.sleep(random.randint(MIN_SEC, MAX_SEC)) res = response.json()["status"] if res == 1: # logger.warning('^^^^^^^^^^ Sharing.') return 1 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def bixiang_property_url(unique, uid): global proxies url = "http://tui.yingshe.com/member/miningBxc" payload_property = payload + "&unique=" + unique + "&uid=" + uid try: logger.warning("********** bixiang_property_url(), proxies = " + str(proxies)) response = requests.request("POST", url, data=payload_property, headers=headers, timeout=60, proxies=proxies) time.sleep(random.randint(MIN_SEC, MAX_SEC)) res = response.json()["status"] if res == 1: property_url = response.json()["info"]["bxc_details"] return property_url else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def check_allTotal(user_agent, device_id, l, token, version): global proxies url_check = 'http://hkopenservice1.yuyin365.com:8000/one-chain/mining/allTotal?user_agent=' + user_agent + \ '&device_id=' + device_id + '&l=' + l + '&token=' + token + '&version=' + version headers = { 'User-Agent': "okhttp/3.5.0", 'Host': "hkopenservice1.yuyin365.com:8000", 'Content-Type': 'application/x-www-form-urlencoded', 'Connection': 'close', 'Accept': '*/*', 'Accept-Language': 'zh-Hans-CN;q=1', 'Accept-Encoding': 'gzip', 'Cache-Control': "no-cache" } try: logger.warning("********** check_allTotal(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() r = requests.post(url_check, data=data, headers=headers, proxies=proxies, timeout=60) res = r.json()["msg"] if res == 'Success': totallist = r.json()['data']['list'] return totallist else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy( "http://hkopenservice1.yuyin365.com:8000/one-chain/login") return -1
def bixiang_login(unique, uid): global proxies url = "http://tui.yingshe.com/check/index" payload_login = payload + "&unique=" + unique + "&uid=" + uid try: logger.warning("********** selenium_login(), proxies = " + str(proxies)) response = requests.request("POST", url, data=payload_login, headers=headers, timeout=60, proxies=proxies) time.sleep(random.randint(MIN_SEC, MAX_SEC)) res = response.json()["status"] if res == 1: logger.warning('********** Login success.') bixiang_userinfo(unique, uid) return 1 else: logger.warning('********** Login fail. uid:' + uid) return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def bixiang_lottery(unique, uid): global proxies try: logger.warning("********** bixiang_lottery(), proxies = " + str(proxies)) url = get_lottery_url(unique, uid) (chance, xxx) = get_lottery_chance(url) for i in range(int(chance)): lottery_enter = 'http://tui.yingshe.com/lottery/turntableFree?psid=' + uid + '&xxx=' + xxx response = requests.request("GET", lottery_enter, headers=headers, timeout=60, proxies=proxies) # print(response.text.encode('utf-8').decode('unicode_escape')) if response.json()["status"] == 1: logger.warning( ">>>>>>>>>> " + response.json()["message"] + ", bxc_add = " + str(response.json()["bxc_add"])) time.sleep(random.randint(1, 3)) return 0 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def mining_check(user_agent, device_id, l, token, version): global proxies url_check = 'http://hkopenservice1.yuyin365.com:8000/one-chain/mining/detail/list?user_agent=' + user_agent + \ '&device_id=' + device_id + '&l=' + l + '&token=' + token + '&version=' + version try: logger.warning("********** mining_check(), proxies = " + str(proxies)) requests.packages.urllib3.disable_warnings() r = requests.post(url_check, data=data, headers=headers, proxies=proxies, timeout=60) res = r.json()["msg"] if res == 'Success': contentlist = r.json()['data']['list'] i = 0 for i in range(len(contentlist)): uni_uuid = contentlist[i]['uni_uuid'] mining_click(user_agent, device_id, l, token, version, str(uni_uuid)) time.sleep(random.random()) if i == 0: logger.warning('>>>>>>>>>> mining_clicked: ' + str(i)) else: logger.warning('>>>>>>>>>> mining_clicked: ' + str(i + 1)) return 0 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy( "http://hkopenservice1.yuyin365.com:8000/one-chain/login") return
def get_lottery_chance(url): global proxies try: response = requests.request("GET", url, headers=headers, timeout=60, proxies=proxies) html = response.text parser = etree.HTMLParser() tree = etree.parse(StringIO(html), parser) chance = tree.xpath('//*[@id="free_number_remaining"]') # logger.warning(">>>>> chance = " + chance[0].text) xxx = tree.xpath('//*[@id="xxx"]') # logger.warning(">>>>> xxx = " + xxx[0].text) return chance[0].text, xxx[0].text except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1, -1
def bixiang_sign(unique, uid): global proxies url_check = "http://tui.yingshe.com/check/index" url_add = "http://tui.yingshe.com/check/add" payload_sign = payload + "&unique=" + unique + "&uid=" + uid try: logger.warning("********** bixiang_sign(), proxies = " + str(proxies)) response = requests.request("POST", url_check, data=payload_sign, headers=headers, timeout=60, proxies=proxies) time.sleep(random.randint(MIN_SEC, MAX_SEC)) res = response.json()["status"] if res == 1: is_check = int(response.json()["info"]["is_check"]) # "is_check == 0",not signed if is_check == 0: time.sleep(random.randint(MIN_SEC, MAX_SEC)) response = requests.request("POST", url_add, data=payload_sign, headers=headers) time.sleep(random.randint(MIN_SEC, MAX_SEC)) checked = int(response.json()["info"]["is_check"]) if checked == 1: logger.warning('>>>>>>>>>> Not Sign, Just Signed.') return 1 else: logger.warning('********** Not Sign, Sign fail.') return -1 else: logger.warning('********** Have Signed.') return 2 else: return -1 except Exception as e: print(e) proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") return -1
def loop_bixiang(filename): global mail_subject total_bx_all = 0 today_bx_all = 0 # bixiang_login_test() # start logger.warning('********** Start from loop_bixiang() ...') global proxies proxies = daxiang_proxy.get_proxy("http://tui.yingshe.com/check/index") file = open(curpath + '/bixiang/' + filename, 'r', encoding='utf-8') data_dict = json.load(file) content_list = [] number = 0 for item in data_dict['data']: number += 1 # if number > 3: # break # content_list = [] unique = item.get('unique', 'NA') uid = item.get('uid', 'NA') phone = item.get('phone', 'NA') logger.warning('\n') logger.warning("========== Checking " + str(number) + ". [" + phone + "] ==========") status = bixiang_login(unique, uid) if status == -1: continue else: # 如已签到就退出 signed = bixiang_sign(unique, uid) # if signed == 2: # continue # 幸运大转盘 # bixiang_lottery(unique, uid) # 分享列表 infoList = bixiang_infoList(unique, uid) if infoList == -1: continue # if infoList is None: # continue # if len(infoList) == 0: # continue count = 0 for i in range(len(infoList)): if count > 5: break if int(infoList[i]["share_total"]) < 20: continue lv_id = infoList[i]["lv_id"] bixiang_sharing(unique, uid, lv_id) bixiang_shared(unique, uid, lv_id) logger.warning('>>>>>>>>>> ' + str(count) + '. Shared info ' + str(lv_id)) count = count + 1 # upgrade bixiang_upgrade(unique, uid) # calculate value (total_bx, today_bx) = get_allTotal(unique, uid) total_bx_all = total_bx_all + total_bx today_bx_all = today_bx_all + today_bx logger.warning("========== End[" + phone + "], total_bx:" + str(total_bx) + ", today_bx:" + str( today_bx) + "] ==========") # userinfo (show_id, phone, nickname) = bixiang_userinfo(unique, uid) # 构建Json数组,用于发送HTML邮件 # Python 字典类型转换为 JSON 对象 content_data = { "phone": phone, "nickname": nickname, "uid": uid, "show_id": show_id, "unique": unique, "total_bx": total_bx, "today_bx": today_bx } content_list.append(content_data) time.sleep(random.randint(MIN_SEC, MAX_SEC)) # break content_list = sorted(content_list, reverse=True, key=lambda x: (x["total_bx"], x["today_bx"])) server = filename.split('.')[0][-6:] send_email.send_Bixiang_HtmlEmail('*****@*****.**', content_list, server) logger.warning('********** Sending Email Complete!')