本文来源吾爱破解论坛
本帖最后由 jason903 于 2019-6-28 14:10 编辑
2019-04-13:增加“世界抢夺”自动化,增加次数没能自动化。
2019-04-13:大转盘的界面入口没有了,但接口还有效,可以得到金币。
2019-06-17:大转盘的界面入口恢复了,代码有效;
2019-06-17:增加“作战休息区”一些游戏地自动化。
趣消除App自动签到 bash版本https://www.52pojie.cn/thread-921609-1-1.html
[Python] 纯文本查看 复制代码
#!/usr/bin/env python3 # coding=utf-8 ''' # 趣消除App地自动化; # 测试时间:2019-04-08 # App版本:1.1.2 # App地址:https://itunes.apple.com/cn/app/id1449545954 提现非常迅速 ''' import re import time import datetime import random import json import sys import logging import requests print(sys.stdout.encoding) print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 解决编码问题 import codecs # sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach()) # sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach()) # 这些变量的值可以通过像Charles抓包软件获得 # 账号变量 # ------------------------------------------------ # A_Token_Header的一些结论: # 1.每个账号不同; # 2.同一个账号每次登录时也是不一样的 # 3.同一个账号,退出时,只要不登录,上次的A-Token-Header的值还有效,只有再登录时,上次的token值才失败 A_Token_Header_13400004460 = 'MCBKVVRRV0ZCH0INXVdaIRZSVFM=' A_Token_Header_19965412404 = 'JS9bV1BQV0RLH0INWFUNIUgFVwc=' A_Token_Header_17157725704 = 'JiZAVVZQU0tKH0INWlBdck1UBlA=' A_Token_Header_zxg = 'PTtWUFdWUkBFHEVZCVcNdUtVWwdc' # Cookie的一些结论: # 1.同一个账号,退出或再登录,都不用修改,一直有效 # 2.值为空也可以 # CNZZDATA1276022107的值:同一个账号每次登录时,值不同;但好像也不影响接口请求的成功 Cookie_13400004460 = 'UM_distinctid=16947f46ccd79-0e531e04caae4e8-73275048-4a640-16947f46cce2e2; cn_1276022107_dplus=%7B%22distinct_id%22%3A%20%2216947f46ccd79-0e531e04caae4e8-73275048-4a640-16947f46cce2e2%22%2C%22sp%22%3A%20%7B%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D%2C%22initial_view_time%22%3A%20%221551686237%22%2C%22initial_referrer%22%3A%20%22%24direct%22%2C%22initial_referrer_domain%22%3A%20%22%24direct%22%2C%22%24_sessionid%22%3A%20402%2C%22%24_sessionTime%22%3A%201554368804%2C%22%24dp%22%3A%200%2C%22%24_sessionPVTime%22%3A%201554368804%2C%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D; CNZZDATA1276022107=1035459509-1551686237-%7C1554367164; _ga=GA1.2.1747575593.1553400628' Cookie_19965412404 = 'UM_distinctid=16a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee; cn_1276022107_dplus=%7B%22distinct_id%22%3A%20%2216a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee%22%2C%22%24_sessionid%22%3A%20121%2C%22%24_sessionTime%22%3A%201555477452%2C%22%24dp%22%3A%200%2C%22%24_sessionPVTime%22%3A%201555477452%2C%22initial_view_time%22%3A%20%221555058837%22%2C%22initial_referrer%22%3A%20%22%24direct%22%2C%22initial_referrer_domain%22%3A%20%22%24direct%22%2C%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D; CNZZDATA1276022107=808150895-1555058837-%7C1555475042; _ga=GA1.2.1602188260.1555309467; _gid=GA1.2.58736974.1555309467' Cookie_17157725704 = 'UM_distinctid=16a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee; cn_1276022107_dplus=%7B%22distinct_id%22%3A%20%2216a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee%22%2C%22%24_sessionid%22%3A%20667%2C%22%24_sessionTime%22%3A%201557585874%2C%22%24dp%22%3A%200%2C%22%24_sessionPVTime%22%3A%201557585874%2C%22initial_view_time%22%3A%20%221555058837%22%2C%22initial_referrer%22%3A%20%22%24direct%22%2C%22initial_referrer_domain%22%3A%20%22%24direct%22%2C%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D; CNZZDATA1276022107=808150895-1555058837-%7C1557583689; _ga=GA1.2.1602188260.1555309467; _gid=GA1.2.1233231256.1557556594' Cookie_zxg = '' # UUID的一些结论: # 1.固定不变 UUID_13400004460 = '472251' UUID_19965412404 = '633278' # https://www.pdflibr.com/SMSContent/1 UUID_17157725704 = '453689' # https://www.pdflibr.com/SMSContent/21 UUID_zxg = '1457362' # ------------------------------------------------ # 接口 # ------------------------------------------------ api_ = 'https://king.hddgood.com/king_api/v1/' # 接口: 每小时签到 king_daily_sign = 'king/daily_sign' # 接口: 收集签到的金币 king_daily_luckydraw = 'king/daily_luckydraw' # 接口: 离线金币 coin_offline_check = 'coin/offline_check' # 接口: 大转盘Go并收集金币 coin_lucky_draw = 'coin/lucky_draw' # 接口: 大转盘达到5、10、15、20次时收集金币 api_coin_lucky_extra = 'coin/lucky_draw_extra' # ------------------------------------------------ class QuXiaoChuUser(): headers = { 'Host': 'king.hddgood.com', 'Accept': 'application/json, text/plain, */*', 'Accept-Language': 'zh-cn', 'Origin': 'https://king.hddgood.com', 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57/; quxiaochu/ios v1.1.2', 'Referer': 'https://king.hddgood.com/' } data = { 'uid': '', 'channel': '', 'version': '1.1.2', 'os': 'ios', 'web_ver': '20190261' } SLEEP = 0.5 def __init__(self, uid, token_header, cookie): self.uid = uid self.headers = dict(QuXiaoChuUser.headers) self.headers['A-Token-Header'] = token_header self.token_header = token_header self.headers['Cookie'] = cookie def zhifubao(self): ''' 提现到支付宝 https://king.hddgood.com/king_api/v1/user/fetch_alipay_account {"success":false,"msg":"操作失败","code":"327","codemsg":"余额不足"} {"success":false,"msg":"操作失败","code":"380","codemsg":"该帐号已被其他用户使用"} ''' print("提取到支付宝 {} ".format(self.uid)) data = self._uid_data() data['amount'] = '10' data['account'] = '13400004460' data['real_name'] = 'xxx' api = self._genapi('king/withdraw') return self._post(api, self.headers, data) def fetch_captcha(self, phone): ''' 获取验证码 https://king.hddgood.com/king_api/v1/user/captcha/fetch_captcha ''' print("获取验证码 {}".format(phone)) data = { 'acc': phone } api = self._genapi('user/captcha/fetch_captcha') result = self._post(api, self.headers, data) def userinfo(self): ''' 获取用户信息 https://king.hddgood.com/king_api/v1/king/userinfo ''' print("获取用户信息 {}".format(self.uid)) data = self.data data['uid'] = self.uid api = self._genapi('king/userinfo') result = self._post(api, self.headers, data) result = json.loads(result) coin = result['result']['coin'] acc = result['result']['acc'] nick = result['result']['nick'] print('{} - {} - 金币数量:{}'.format(acc, nick, coin)) def lucky_draw_info(self): ''' 获取大转盘的次数情况信息 {"success":true,"msg":"操作成功","code":"200","codemsg":"操作成功","result":{"times_left":0,"times_total":50,"extra":[1,1,1,1]}} ''' print("获取大转盘的次数情况信息 {}".format(self.uid)) data = self._uid_data() api = self._genapi('coin/lucky_draw_info') return self._post(api, self.headers, data) def king_daily_info(self): ''' 获取签到情况信息 king/daily_info ''' print("获取签到情况信息 {}".format(self.uid)) data = self._uid_data() api = self._genapi('king/daily_info') return self._post(api, self.headers, data) def sign(self): ''' 每小时签到并收集金币 ''' print("sign {}".format(self.uid)) data = self._uid_data() api = self._genapi(king_daily_sign) self._post(api, self.headers, data) print("收集签到的金币 {}".format(self.uid)) api = self._genapi(king_daily_luckydraw) return self._post(api, self.headers, data) def offline(self): ''' 离线金币 {"success":true,"msg":"操作成功","code":"200","codemsg":"操作成功","result":{"coin":19,"time":4665}} ''' print("离线金币 {}".format(self.uid)) data = self._uid_data() api = self._genapi(coin_offline_check) return self._post(api, self.headers, data) def coin_lucky(self): ''' 大转盘Go并收集金币 ''' print("大转盘Go {}".format(self.uid)) data = self._uid_data() api = self._genapi(coin_lucky_draw) return self._post(api, self.headers, data) def coin_lucky_extra(self, index): ''' 大转盘Go并收集金币 ''' print("大转盘Go {} 额外{}".format(self.uid, index)) data = self._uid_data() data['index'] = index api = self._genapi(api_coin_lucky_extra) return self._post(api, self.headers, data) def rob_history(self): ''' 世界抢夺被抢夺记录 ''' print("世界抢夺被抢夺记录 {}".format(self.uid)) data = self._uid_data() data['ps'] = '100' data['pn'] = '1' # 获取抢夺信息 api = self._genapi('rob/history') result = self._post(api, self.headers, data) result = json.loads(result) return result def rob_rob(self, target_id, old_id=''): ''' 抢夺 ''' print('抢夺对象 {}'.format(target_id)) data = self._uid_data() data['target'] = target_id data['old_id'] = old_id data['result'] = 'true' api = self._genapi('rob/rob') self._post(api, self.headers, data) def rob(self): ''' 世界抢夺 ''' print("世界抢夺 {}".format(self.uid)) data = self._uid_data() # 获取抢夺信息 api = self._genapi('rob/info') result = self._post(api, self.headers, data) # 判断是否还有抢夺机会 result = json.loads(result) times = result['result']['times_left'] if times > 0: print('还有抢夺机会 {}次'.format(result['result']['times_left'])) # 获取抢夺对象 api = self._genapi('rob/fetch_target') result = self._post(api, self.headers, data) result = json.loads(result) if result['success'] == False: return targets = [] for person in result['result']: if person['result'] != 1 and person['balance'] > 150: targets.append(person['uid']) print(targets) c = min(times, len(targets)) for i in range(c): self.rob_rob(targets[i]) def rest_super_brain(self): ''' 最强大脑 - 共100关 rest/game_report2?uid=633278¶m={"type":"M","result":true} ''' print("最强大脑 - 共100关 {} ".format(self.uid)) data = {} api = self._genapi("rest/game_report2?uid=" + self.uid + r'¶m={"type":"M","result":true}') return self._post(api, self.headers, data) def rest_pingtu(self): ''' 六边形拼图 ''' print("六边形拼图 {} ".format(self.uid)) data = {} # 每个用户的gameid都不同 gameid = { "472251": "H5579905", "633278": "H5584802", "453689": "H6273236", } api = self._genapi("rest/game_report2?uid=" + self.uid + r'¶m={"type":"H","mode":"endless","gameid":"' + gameid[self.uid] + r'","data":"ST_Hex_Blocks_Puzzle_FFIGZ_ls_=0,ST_Hex_Blocks_Puzzle_FHPRG_RST_ls_=1555320439.099,ST_Hex_Blocks_Puzzle_FHPRG_ls_=0,ST_Hex_Blocks_Puzzle_HUSD_ls_=0,ST_Hex_Blocks_Puzzle_LC_ls_=5,ST_Hex_Blocks_Puzzle_NM_HNT_ls_=5,ST_Hex_Blocks_Puzzle_TDIFF_ls_=2,ST_Hex_Blocks_Puzzle_THUSD_ls_=0,ST_Hex_Blocks_Puzzle_TLE_ls_=6,ST_Hex_Blocks_Puzzle_TLH_ls_=1,ST_Hex_Blocks_Puzzle_TLM_ls_=2,ST_Hex_Blocks_Puzzle_aUorI_ls_=1,ST_Hex_Blocks_Puzzle_lang_ls_=1,ST_Hex_Blocks_Puzzle_music_is_on_ls_=1,ST_Hex_Blocks_Puzzle_sound_is_on_ls_=1"}') return self._post(api, self.headers, data) def rest_xiaopaoer(self, level): ''' 小炮儿大作战 - 共50关 # https://king.hddgood.com/king_api/v1/rest/game_report2?uid=633278¶m={"type":"S","mode":"upgrade","level":13,"score":1984,"result":true} ''' print("小炮儿大作战 - 共50关 {} ".format(self.uid)) data = {} api = self._genapi("rest/game_report2?uid=" + self.uid + r'¶m={"type":"S","mode":"upgrade","level":' + str(level) + r',"score":4000,"result":true}') return self._post(api, self.headers, data) def rest_guodong(self, level): ''' 果冻消消消 # https://king.hddgood.com/king_api/v1/rest/game_report2?uid=453689¶m={"type":"J","level":2,"score":7080,"result":true} ''' print("果冻消消消 - 共150关 {} ".format(self.uid)) data = {} api = self._genapi("rest/game_report2?uid=" + self.uid + r'¶m={"type":"J","level":' + str(level) + r',"score":100000,"result":true}') return self._post(api, self.headers, data) def rest_archery(self, level): ''' 拇指射箭 # https://king.hddgood.com/king_api/v1/rest/game_report2?uid=472251¶m={"type":"A","mode":"upgrade","level":2,"score":17,"result":true,"data":"1,4,10,4,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"} 19965412404 done 17157725704 done zxg done ''' print("拇指射箭 - 共50关 {} ".format(self.uid)) data = {} api = self._genapi("rest/game_report2?uid=" + self.uid + r'¶m={"type":"A","mode":"upgrade","level":' + str(level) + r',"score":17,"result":true' + r',"data":"1,4,10,4,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}') return self._post(api, self.headers, data) def _uid_data(self): return {'uid': self.uid} @staticmethod def _genapi(path): return 'https://king.hddgood.com/king_api/v1/' + path @staticmethod def _post(api, headers, data, p=logging.warning): time.sleep(QuXiaoChuUser.SLEEP) res = requests.post(api, headers=headers, data=data) print(res.url) result = res.text print(result) print('') return result @staticmethod def _need_sign(j): ''' 这个时段是否已签到过? {"success":true,"msg":"操作成功","code":"200","codemsg":"操作成功","result":{"sign":"111111111111111111111000","luckydraw":"111111111111111111111000","hour_index":20}} ''' import json d = json.loads(j) if d["code"] == "200": result = d["result"] sign = result["sign"] index = result["hour_index"] return sign[index] == '0' else: return True @staticmethod def _need_go(j): ''' 是否还有大转盘的抽奖机会? {"success":true,"msg":"操作成功","code":"200","codemsg":"操作成功","result":{"times_left":0,"times_total":50,"extra":[1,1,1,1]}} ''' import json d = json.loads(j) if d["code"] == "200": result = d["result"] total = result["times_total"] left = result["times_left"] extra = result["extra"] need = [i for i, v in enumerate( extra) if v != 1 and (total - left) > (i+1)*5] return (left != 0, need) else: return (True, [0, 1, 2, 3]) def rob_back(user: QuXiaoChuUser): ''' 世界抢夺-反击 ''' result = user.rob_history() for item in result['result']: print(item['robber'], item['id']) if item['strike_back'] == None: user.rob_rob(item['robber'], item['id']) def is_phone_ok(): ''' 趣消除App以前可以手机号登录,现在不再手机号注册登录了 用来自动测试网上公开的手机号是否可以已注册趣消除App ''' fake = QuXiaoChuUser(UUID_17157725704, A_Token_Header_17157725704, Cookie_17157725704) with open('/Users/zhoujie/Desktop/phone.text') as f: for line in f: if len(line) == 12: fake.fetch_captcha(line) time.sleep(3) def hourly_sign(user: QuXiaoChuUser): ''' 每小时签到 ''' result = user.king_daily_info() if user._need_sign(result): print('需要签到') user.sign() else: print('不需要签到') def lucky(user: QuXiaoChuUser): ''' 大转盘 ''' result = user.lucky_draw_info() result = user._need_go(result) if result[0]: user.coin_lucky() else: print('没有转盘抽奖机会了') for index in result[1]: user.coin_lucky_extra(index) def rest_games(user: QuXiaoChuUser): pass return # Todo: # 六边形拼图、我飞刀玩的倭? # 最强大脑 - 共100关 for i in range(1, 101): print('---', i) user.rest_super_brain() # 小炮儿大作战 - 共50关 for level in range(1, 51): user.rest_xiaopaoer(level) time.sleep(1) # 拇指射箭 - 共50关 for level in range(1, 51): user.rest_archery(level) time.sleep(1) # 果冻消消消 - 共150关 for level in range(1, 151): user.rest_guodong(level) time.sleep(1) def auto_fetch_money(user: QuXiaoChuUser): pass def genUsers(): yield QuXiaoChuUser(UUID_13400004460, A_Token_Header_13400004460, Cookie_13400004460) yield QuXiaoChuUser(UUID_19965412404, A_Token_Header_19965412404, Cookie_19965412404) yield QuXiaoChuUser(UUID_17157725704, A_Token_Header_17157725704, Cookie_17157725704) yield QuXiaoChuUser(UUID_zxg, A_Token_Header_zxg, Cookie_zxg) if __name__ == "__main__": # 趣消除App自动签到和大转盘 for user in genUsers(): print('\033[1;31m---------------------------\033[0m') # 离线金币 user.offline() # 签到 hourly_sign(user) # 大转盘 lucky(user) # 世界抢夺 user.rob() # 世界抢夺-反击 rob_back(user) # 作战休息区 rest_games(user) # 自动取现到已绑定的支付宝账号 auto_fetch_money(user)
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 【笔记】开个坑,记录自己的成长——Linux操作指令
- 下一篇: 爬文字和图片结合的一份作品