def dict_from_request_body(self, flow: http.HTTPFlow, api: Api): d = None if api.content_type == 'json': try: d = json.loads(flow.request.text) except: pass elif api.content_type == 'urlencoded_form' or flow.request.urlencoded_form: # 返回的类型是 multidict.MultiDictView d = flow.request.urlencoded_form api.content_type = 'urlencoded_form' elif api.content_type == 'multipart_form' or flow.request.multipart_form: ctx.log.error('content-type = multipart_form') d = dict() for key, value in flow.request.multipart_form.items(): key = key.decode(encoding='utf-8') value = value.decode(encoding='utf-8') d[key] = value api.content_type = 'multipart_form' elif api.content_type == 'get': pass else: # api.content_type没有决定出来:1,没有设置且第1次击中api;2,body没有内容也无法决定content_type;3,get请求一般没有body if flow.request.text: ctx.log.error('有请求内容') else: ctx.log.error('没有请求内容') if flow.request.method == 'GET': api.content_type = 'get' return d try: d = json.loads(flow.request.text) api.content_type = 'json' except: pass return d
def app_jin_ri_tou_tiao(): ''' 今日头条 ''' urls = [ # 'score_task/v1/task/page_data/', # 'score_task/v1/task/sign_in/', # 'score_task/v1/task/open_treasure_box/', # Api('/score_task/v1/task/open_treasure_box', f_name='task_open_treasure_box'), Api('/score_task/v1/task/new_excitation_ad', f_name='task_new_excitation_ad', f_b_arg=['task_id'], params_as_all=True), # Api('/score_task/v1/task/get_read_bonus/', f_name='task_get_read_bonus', params_as_all=True, f_p_arg=['group_id']), # 'score_task/v1/task/done_task/', # 'score_task/v1/landing/add_amount/', # 'score_task/v1/user/profit_detail/', # # 小说 # Api('/api/novel/book/directory/list/v1/', log='书目录', f_p_arg=['book_id']), # Api('score_task/v1/novel/bonus/', f_b_arg=['item_id']), # 读小说得金币 # # 搜索 # 'search/suggest/homepage_suggest/', # 'search/suggest/initial_page/', # 'api/search/content/', # Api('/search/', log='搜索', f_p_arg=['keyword']), # # 走咯 # Api(r'score_task/v1/walk/count/', {"count": None}), # r'score_task/v1/walk/', # # 睡觉 # 'score_task/v1/sleep/status/', # 'score_task/v1/sleep/start/', # 'score_task/v1/sleep/stop/', # 'score_task/v1/sleep/done_task/', # 睡觉领金币 # # 农场 # Api('/ttgame/game_farm/home_info', f_name='farm_home_info', api_ok={'status_code':[0]}), # r'ttgame/game_farm/', # # 吃 # r'score_task/lite/v1/eat/eat_info/', # 'score_task/lite/v1/eat/done_eat/', # 'api/news/feed/v47/', # 安卓视频tab页 # 'api/news/feed/v64/', # ios视频tab页 # # 'score_task/v1', # 'score_task/v2', ] return App(urls, 'jin-ri-tou-tiao', api_ok_key=['err_no', 'status_code'])
def app_wan_zhe_da_nao(): urls = [ Api('/api/v1/z6qtt/login', log='王者大脑 - 获取open_id', f_p_arg=['ticket']), Api('/api/v1/z6qtt/sign', log='王者大脑 - 签到'), Api('/api/v1/z6qtt/lottery', log='王者大脑 - lottery'), Api('/api/v1/z6qtt/exchange', log='王者大脑 - 红包满20元兑换成金币'), Api('/api/v1/z6qtt/get_reward', log='王者大脑 - 任务完成', f_p_arg=['activity_id']), Api('/api/v1/z6qtt/open_redpacket', log='王者大脑 - 红包'), Api('/api/v1/z6qtt/add_coin', log='王者大脑 - add_coin', params_as_all=True, f_merge_key=r_u), Api('/api/v1/z6qtt/get_rank', log='王者大脑 - 判案比赛-排行信息'), Api('/api/v1/z6qtt/get_rank_reward', log='王者大脑 - 判案比赛-领奖'), Api('/api/v1/z6qtt/upload_rank', log='王者大脑 - 判案比赛 - 排行', f_p_arg=['score']), '/api/v1/z6qtt/' ] urls.extend(api_common()) urls.extend(api_sign()) return App(urls, 'wan-zhe-da-nao')
def app_cheng_yu_qu_wei_xiao(): urls = [ Api('/chengyu_app/login', log='成语趣味消 - 登入', f_p_arg=['ticket']), Api('/chengyu_app/signin', log='签到'), Api('/chengyu_app/draw_fuca', log='抽字'), Api('/chengyu_app/addcoin', f_b_arg=['open_id', 'add_num']), Api('/chengyu_app/update_task', f_b_arg=['task_index']), Api('/chengyu_app/get_task_award', f_b_arg=['task_index']), Api('/chengyu_app/'), ] urls.extend(api_common()) urls.extend(api_sign()) return App(urls, 'cheng-yu-qu-wei-xiao')
def app_zhong_qin_kd(): ''' 中青看点 ''' urls = [ Api(r'/WebApi/TimePacket/getReward', f_name='time_packet', log='计时红包'), r'/webApi/AnswerReward/', Api(r'/v5/Game/GameVideoReward.json', log='2次可选领取 - 看广告视频', f_b_enc={'p'}, f_merge_key=r_u), Api(r'/taskCenter/getAdVideoReward', log='任务中心 - 看视频'), Api(r'/v5/article/complete.json', log='看视频得金币', f_b_enc={'p'}, f_b_arg=['p'], content_type='urlencoded_form'), Api(r'/v5/CommonReward/toGetReward.json', log='可领取 - ', f_b_enc={'p'}, f_b_arg=['p'], f_merge_key=r_c_u), Api(r'/v5/CommonReward/toDouble.json', log='可领取 - 双倍', f_b_enc={'p'}, f_b_arg=['p'], f_merge_key=r_c_u), Api(r'/WebApi/Task/receiveBereadRed', log='任务中心 - 领红包'), Api( r'/WebApi/EverydayShare/share_back', log='每日分享奖励', f_b_arg=['uid'], ), # 天天抽奖 '/WebApi/RotaryTable/turnRotary', '/WebApi/RotaryTable/', Api('/wap/user/balance', log='用户金币数量'), # 旧版 # Api(r'/WebApi/invite/openHourRed',log='开宝箱', body_as_all=True), # Api(r'getTimingRedReward.json', log='时段签到', f_name='hourly_sign', ), ] return App(urls, 'zhong-qin-kd')
def app_qu_jian_pan(): ''' 趣键盘 ''' urls = [ r'/gk/game/fanpai/basicInfo', r'/gk/game/fanpai/getAward', r'/gk/game/fanpai/awardDouble', r'/gk/game/fanpai/', r'/gk/game/savingsBank/collectPigMoney', r'/gk/game/savingsBank/exchangePigMoney', Api(r'/gk/game/savingsBank/unlockDouble', f_b_arg=['taskType'], content_type='json'), # 小猪刮刮乐 r'/qjp-app/game/guagua/', # 小猪转盘 r'/qjp-app/pig/turntable/info', # type Integer 3 r'/qjp-app/pig/turntable/draw', Api('/qjp-app/pig/turntable/receiveVideoReward', f_b_arg=['ticket']), r'/qjp-app/pig/turntable/', # 大转盘 r'/gk/draw/info', r'/gk/draw/extract', Api('/gk/draw/double', f_b_arg=['ticket']), r'/gk/draw/package', r'/gk/draw/pkdouble', # 便利店 Api('/gk/game/bianlidian/receiveBox', f_b_arg=['packageId']), Api('/gk/game/bianlidian/draw/double', f_b_arg=['ticket']), Api('/gk/game/bianlidian/receiveGift', log='便利店 - xxx金币礼包碎片', f_b_arg=['ticket']), Api('/gk/game/bianlidian/receiveMediumCoin', log='便利店 - 随机金币奖励', f_b_arg=['ticket']), r'/gk/game/dadishu/', r'/gk/game/bianlidian/', r'/qujianpan/', # 已没有入口 # r'/gk/garbage/', ] return App(urls, 'qu-jian-pan')
def api_sign(): urls = [ Api('/x/game-center/gapp/sign-in', log='签到'), Api('/x/game-center/gapp/sign-in-double', log='签到 - double'), ] return urls
api = Api(r'/mission/intPointReward', f_p_enc={'p_enc'}) seq = [api] code = t.render(seq=seq) print(code) if __name__ == "__main__": import shlex import subprocess test_jinja() api = Api(r'/mission/intPointReward', params_as_all=False, body_as_all=False, f_p_arg=['p1', 'p2'], f_b_arg={'b1', 'b2'}) #时段签到 print(api.str_fun_params()) api = Api(r'/mission/intPointReward', f_name='hourly_sign', log='时段签到', params_as_all=False, body_as_all=False, f_p_arg=['p1', 'p2'], f_b_arg={'b1', 'b2'}, f_p_kwarg={ "pkw1": 1, "pkw2": '2' }) #时段签到 print(api.str_fun_params())
def app_tian_chi_xiao_xiu_cai(): ''' 填词小秀才 ''' urls = [ Api('/api/v1/tczyapp/login', log='填词小秀才 - 获取open_id', f_p_arg=['ticket']), Api('/api/v1/tczyapp/sign', log='填词小秀才 - 签到'), Api('/api/v1/tczyapp/lottery', log='填词小秀才 - lottery'), Api('/api/v1/tczyapp/exchange', log='填词小秀才 - 红包满20元兑换成金币'), Api('/api/v1/tczyapp/get_reward', log='填词小秀才 - 任务完成', f_p_arg=['activity_id']), Api('/api/v1/tczyapp/open_redpacket', log='填词小秀才 - 红包'), Api('/api/v1/tczyapp/draw_a_char', log='填词小秀才 - 抽字'), Api('/api/v1/tczyapp/add_coin', log='填词小秀才 - add_coin', params_as_all=True, f_merge_key=r_u), Api('/api/v1/tczyapp/get_rank', log='填词小秀才 - 判案比赛-排行信息'), Api('/api/v1/tczyapp/get_rank_reward', log='填词小秀才 - 判案比赛-领奖'), Api('/api/v1/tczyapp/upload_rank', log='填词小秀才 - 判案比赛 - 排行', f_p_arg=['score']), '/api/v1/tczyapp/' ] urls.extend(api_common()) urls.extend(api_sign()) return App(urls, 'tian-chi-xiao-xiu-cai')
def app_ma_yi_kd(): # 蚂蚁看点 urls = [ Api(r'article/treasure_chest', log='时段签到', f_name='hourly_sign', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/user/shai_income_task_award', log='晒收'), Api(r'TaskCenter/daily_sign', log='每日签到', f_name='daily_sign'), # 重点:看广告、看小视频、看文章 Api(r'/v5/user/rewar_video_callback.json', log='视频广告 - 得金币', f_name='rewar_video_callback', f_b_enc={'p'}, f_merge_key=chain_rule(limit_rule(20), r_u), content_type='multipart_form'), Api(r'/v5/article/haotu_video.json', log='看视频 - 得金币', f_name='haotu_video', f_b_enc={'p'}, f_merge_key=chain_rule(limit_rule(20), r_u), content_type='multipart_form'), Api(r'/v5/article/complete_article', log='读文章 - 得金币', f_name='complete_article', f_b_enc={'p'}, f_merge_key=chain_rule(limit_rule(20), r_u), content_type='multipart_form'), # 2020-11-02 Api('/WebApi/share/share_task_score', log='分享文章赚钱 - 每日免费领金币 - 间隔30分钟', f_name='share_task_score'), Api(r'/v3/user/userinfo.json', log='用户信息', f_name='userinfo', params_as_all=True, f_merge_key=r_c_l1, content_type='multipart_form'), # 提现相关 Api('/WapPage/user_order_list', log='提现记录', f_name='ti_xian_history'), Api('/v3/cash/wechat.json', log='提现', f_name='ti_xian', f_merge_key=chain_rule( r_u, SortRule(key=lambda item: item['money'], reverse=True)), body_as_all=True, content_type='multipart_form'), Api('/WebApi/Exchange/getuserinfo', log='金币信息'), Api('/WebApi/Exchange/user_exchange_info', log='可提现项目'), # r'WebApi/', r'WebApi/Stage/task_reward', r'WapPage/get_video_status', # 装盘 r'/WebApi/RotaryTable/turn_rotary_new', r'/WebApi/RotaryTable/turn_reward', r'/WebApi/RotaryTable/video_double', r'/WebApi/RotaryTable/chestReward', '/WebApi/RotaryTable/', # 睡觉 Api(r'/WebApi/sleep/sleep_start', log='睡觉 - 开始'), Api(r'/WebApi/sleep/get_sleep_score', log='睡觉 - 醒来'), Api(r'/v5/article/complete_welfare_score.json', log='福袋 - 得金币', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/user/adlickstart.json', log='点击广告领金币 - 开始', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/user/adlickend.json', log='点击广告领金币 - 结束', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/user/task_second_callback.json', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/user/income_ajax', log='收益详情', f_p_arg=['page'], content_type='multipart_form'), # 新版答题 r'/v6/Answer/getData.json', r'/v5/answer/first_reward', r'/v6/Answer/answer_question.json', r'/v5/answer/answer_reward.json', # 旧版答题 # r'WebApi/Answer/getData', # r'WebApi/Answer/answer_question', # r'WebApi/Answer/answer_reward', # r'WebApi/Answer/video_double', # r'WebApi/Answer/fill_energy', ] return App(urls, 'ma-yi-kd', api_ok={'error_code': ['0'], 'status': [1]})
def app_you_xi_he_zi(): ''' 金猪游戏盒子 ''' urls = [ # 游戏 Api('/x/task/v3/list', log='游戏任务列表'), Api('/x/cash/time-bonus/info', log='时段金币 - 信息'), Api('/x/cash/time-bonus/get', log='时段金币 - 领取', f_b_arg=['index']), Api('/x/cash/task-bonus/get', log='红包 - 领取', f_p_arg=['cnt']), Api('/x/cash/daily-bonus/get', log='签到 - 奖励', body_as_all=True, f_merge_key=r_c_l1), Api('/x/task/v2/take-reward', log='任务完成 - 领金币', f_name='game_take_reward', f_b_arg=['task_id']), # 抽奖 - 游戏嘉年华 r'/x/raffle/detail', r'/x/raffle/roll', r'/x/raffle/add-times', # 金猪 withdraw:(从银行)取钱 r'/x/v1/goldpig/info', r'/x/v1/goldpig/foundLostPig', # 金猪 - 找回金猪 r'/x/v1/goldpig/bubbleWithdraw', # 金猪 - 看视频 r'/x/v1/goldpig/withdraw', # 金猪 # 游戏 - 成语大富豪 Api('qttgame.midsummer.top/api/Login', log='2-登录游戏', f_name='api_login', f_b_arg=['ticket', 'game_id']), Api('qttgame.midsummer.top/api/AddCoin', log='成语大富豪 - 金币', f_b_arg=['AddCoinNum', 'session_id']), # 游戏 - 成语消消乐 Api('/chengyu/login', log='成语消消乐 - 登录 - 获取open_id', f_b_arg=['ticket']), Api('/chengyu/addcoin', log='成语消消乐 - 金币', f_b_arg=['add_num']), Api('/chengyu/update_red_packet', log='成语消消乐 - 过关得现金', f_b_arg=['level']), # 游戏 - 切菜 Api('/x/open/coin/add', log='切菜 - 金币', body_as_all=True, f_merge_key=chain_rule( sort_rule(lambda item: int(item['coin_num']), reverse=True), r_u)), # 游戏 - 糖果 Api(r'/happy/qtt/userinfo', log='游戏 - 糖果 - 获取open_id', f_p_arg=['ticket']), Api(r'/happy/protocol', log='游戏 - 糖果 - 获取金币', f_b_arg=['data']), # 游戏 - 钓鱼 Api(r'/qtt/coin/withdraw', log='游戏 - 钓鱼 - 获取金币'), # 游戏 - 王者大脑 Api('/api/v1/z6h5/login', log='王者大脑 - 获取open_id', f_p_arg=['ticket']), Api('/api/v1/z6h5/sign', log='王者大脑 - 签到'), Api('/api/v1/z6h5/lottery', log='王者大脑 - lottery'), Api('/api/v1/z6h5/exchange', log='王者大脑 - 红包满20元兑换成金币'), Api('/api/v1/z6h5/get_reward', log='王者大脑 - 任务完成', f_p_arg=['activity_id']), Api('/api/v1/z6h5/open_redpacket', log='王者大脑 - 红包'), Api('/api/v1/z6h5/add_coin', log='王者大脑 - add_coin', params_as_all=True, f_merge_key=r_u), Api('/api/v1/z6h5/get_rank', log='王者大脑 - 判案比赛-排行信息'), Api('/api/v1/z6h5/get_rank_reward', log='王者大脑 - 判案比赛-领奖'), Api('/api/v1/z6h5/upload_rank', log='王者大脑 - 判案比赛 - 排行', f_p_arg=['score']), '/api/v1/z6h5/', ] urls.extend(api_common()) urls.extend(api_sign()) urls.extend(api_tczyqtt()) return App(urls, 'you-xi-he-zi')
def api_common(): common = [ # 游戏 Api(r'/x/user/token', log='/x/user/token - 获取g_token'), Api(r'/x/open/game', log='/x/open/game - 获取ticket', f_p_arg=['app_id']), # report_type={round,level} Api('/x/game-report/special_report', log='special_report', f_name='game_special_report', f_b_arg=['app_id'], f_b_kwarg={'report_type': 'round'}), Api('/x/game-report/duration_report', log='duration_report', f_name='game_duration_report', f_b_arg=['start_ts', 'duration'], f_b_kwarg={'report_type': 'duration_addition'}), Api('/x/gapp/task/list', log='游戏 - 任务列表', f_b_arg=['app_id', 'app']), Api('/x/gapp/task/take-reward', log='游戏 - take-reward - 领金币', f_b_arg=['task_id', 'app_id', 'app']), # 金币-取现-账户 Api('/qapptoken', log='/qapptoken - 获取access_token', f_name='get_access_token', f_p_arg=['app_id']), Api('/withdraw/getCoinLog', log='金币明细', f_p_arg=['page', 'page_size']), Api('/withdraw/getBindInfo', log='取现 - 用户账户信息'), Api('/withdraw/sku/list', log='取现 - 可取现金额列表'), Api('/withdraw/order/create', log='取现 - 取现', f_b_arg=['sku_id']), Api('/withdraw/order/listApp', log='取现 - 提现列表'), Api('/user/withdraw/days', log='取现 - 条件'), ] return common
def app_qu_zhong_cai(): ''' 趣种菜 ''' urls = [ Api('/x/tree-game/user', log='趣种菜 - 获取用户信息 - s_token'), Api('/x/tree-game/gapp/info', log='趣种菜 - 信息'), Api('/x/tree-game/gapp/box/my/rand-reward', log='趣种菜 - 拆礼物 - 点击'), Api('/x/tree-game/gapp/box/my/take-reward', log='趣种菜 - 拆礼物 - 收获'), Api('/x/tree-game/gapp/add-plant', log='趣种菜 - 植物 - 种下'), Api('/x/tree-game/gapp/plant-ok', log='趣种菜 - 植物 - 收获'), Api('/x/tree-game/gapp/water-plants', log='趣种菜 - 植物 - 浇水'), Api('/x/tree-game/gapp/remove-bug', log='趣种菜 - 植物 - 杀虫'), # 翻翻乐 Api('/x/middle/flop/info', log='趣种菜 - 翻翻乐 - 信息'), Api('/x/middle/flop/start', log='趣种菜 - 翻翻乐 - 开始'), '/x/middle/flop/', # 水池 Api('/x/tree-game/gapp/pool/info', log='趣种菜 - 水池 - 信息'), Api('/x/tree-game/gapp/pool/with-draw', log='趣种菜 - 水池 - 存到水壶'), Api('/x/tree-game/gapp/pool/speed-up', log='趣种菜 - 水池 - 加速'), # '/x/tree-game/gapp/pool/', # 兔子 '/x/tree-game/gapp/activity/rabbit/', Api('/x/tree-game/gapp/activity/carrot/take-reward', log='趣种菜 - 植物 - 点我'), # Api('/x/tree-game/'), ] urls.extend(api_common()) urls.extend(api_sign()) return App(urls, 'qu-zhong-cai')
def app_huo_shan(): ''' 火山极速版 ''' urls = [ Api('/luckycat/hotsoon/v1/task/done/excitation_ad_treasure_box', log='火山-开宝箱-看视频', f_name='task_done_excitation_ad_treasure_box'), Api('/luckycat/hotsoon/v1/task/page', log='火山-获取任务状态'), Api('/luckycat/hotsoon/v1/task/done/treasure_task', log='火山-开宝箱'), Api('/luckycat/hotsoon/v1/task/done/show_money', log='火山-晒收入', params_as_all=True), Api('/luckycat/hotsoon/v1/task/done/excitation_ad', log='火山-看视频赚海量金币', params_as_all=True), Api('/luckycat/hotsoon/v1/task/done/daily_read_1m', log='火山-1分钟', params_as_all=True), Api('/luckycat/hotsoon/v1/task/done/daily_read_2m', log='火山-2分钟', params_as_all=True), Api('luckycat/v1/task/page/', log='火山-获取任务状态', params_as_all=True, f_merge_key=r_c_l1), Api('luckycat/v1/task/sign_in/', log='火山-每日签到', params_as_all=True, f_merge_key=r_c_l1), Api('luckycat/v1/task/open_treasure_box/', log='火山-开宝箱', params_as_all=True), Api('luckycat/v1/task/done_task/', log='火山-开宝箱-看视频', params_as_all=True, body_as_all=True), Api('luckycat/v1/landing/add_amount/', log='火山-晒收入', params_as_all=True), Api('luckycat/v1/task/get_read_bonus/', params_as_all=True), Api('api/ad/v1/inspire/', log='火山-获取广告', params_as_all=True), ] return App(urls, 'huo-shan', api_ok={'code': [0], 'err_no': [0]})
def app_zhu_lai_le(): ''' 猪来了 ''' urls = [ Api(r'/pig/protocol', log='猪来了'), ] return App(urls, 'zhu-lai-le')
def response(self, flow: http.HTTPFlow): # 不处理'options'方法的请求 method = flow.request.method if method == 'OPTIONS': return ft = None for i, flt in enumerate(self.appfilters): if flt(flow): ft = flt if not flt == self.appfilters[0]: self.appfilters.pop(i) self.appfilters.insert(0, flt) break if ft: ctx.log.error('|' + '-' * 20 + '|') api: Api = ft.current_api request: http.HTTPRequest = flow.request parse_result = urlparse(request.url) url_path = parse_result.path if api.url_path and (not api.url_path == url_path): api = Api(url_path) ft.add(api) if len(api.api_ok): ft.api_ok[url_path] = api.api_ok ctx.log.error(f'触发 App = {ft.app_name}') ctx.log.error(f'触发 api = {api} {request.method}') function_name = re.sub(r'[./-]', '_', url_path).strip('_').lower() api_url = f'{request.scheme}://{request.pretty_host}{url_path}' # 如果App代码目录不存在,则创建目录 session_dir = self.api_dir.joinpath(ft.app_name, self._session()) if not session_dir.exists(): session_dir.mkdir(parents=True, exist_ok=True) app_apis = self.app_apis.setdefault(ft.app_name, dict()) if function_name not in app_apis: api.name = function_name api.url = api_url api.url_path = url_path api.method = request.method.lower() api.content_type = 'json' if 'json' in request.headers.get( 'content-type', '') else '' api.fun_params = api.str_fun_params() app_apis[function_name] = api with (session_dir / f'{function_name}.text').open('a') as f: headers_code = self.headers_string(flow) params_code = self.params_string(flow) data_code = self.data_string(flow, api) api.time = time.strftime('%m-%d %H:%M:%S') api.headers_code = headers_code api.params_code = params_code api.data_code = data_code api.response = flow.response.text code = self.api_template.render(request=api) f.write(code) device = self._session() self.gather_params_and_bodys(flow, api, device=device, app=ft.app_name) self.session_hit.add((device, ft.app_name)) d_v = self.app_fn_url.setdefault(device, dict()) fn_url = d_v.setdefault(ft.app_name, dict()) fn_url[url_path] = api_url ctx.log.error('|' + '-' * 20 + '|')
def app_wei_xin(): urls = [ Api('/userroll/userrolllist', params_as_all=True, f_merge_key=r_c_l1) ] return App(urls, 'wei-xin-zhi-fu')
def app_ma_yi_kd(): # 蚂蚁看点 urls = [ Api(r'article/treasure_chest', log='时段签到', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/user/shai_income_task_award', log='晒收'), r'TaskCenter/daily_sign', # r'WebApi/', r'WebApi/Stage/task_reward', r'WapPage/get_video_status', r'WebApi/RotaryTable/turn_rotary_new', r'WebApi/RotaryTable/turn_reward', r'WebApi/RotaryTable/video_double', r'WebApi/RotaryTable/chestReward', Api(r'/WebApi/sleep/sleep_start', log='睡觉 - 开始'), Api(r'/WebApi/sleep/get_sleep_score', log='睡觉 - 醒来'), Api(r'article/haotu_video', log='看视频得金币', f_b_enc={'p'}, content_type='multipart_form'), Api(r'article/complete_article', log='读文章得金币', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/user/rewar_video_callback', log='视频广告 - 得金币', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/article/complete_welfare_score.json', log='福袋 - 得金币', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/user/adlickstart.json', log='点击广告领金币 - 开始', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/user/adlickend.json', log='点击广告领金币 - 结束', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v5/user/task_second_callback.json', f_b_enc={'p'}, content_type='multipart_form'), Api(r'/v3/user/userinfo.json', log='用户信息', params_as_all=True, p_as_all_limit=1, content_type='multipart_form'), Api(r'/user/income_ajax', log='收益详情', f_p_arg=['page'], content_type='multipart_form'), # 新版答题 r'/v6/Answer/getData.json', r'/v5/answer/first_reward', r'/v6/Answer/answer_question.json', r'/v5/answer/answer_reward.json', # 旧版答题 # r'WebApi/Answer/getData', # r'WebApi/Answer/answer_question', # r'WebApi/Answer/answer_reward', # r'WebApi/Answer/video_double', # r'WebApi/Answer/fill_energy', ] return App(urls, 'ma-yi-kd')
def app_qu_tou_tiao(): ''' 趣头条 ''' urls = [ # 金币-账号-提现 Api(r'/member/getMemberIncome', log='收益详情', f_p_arg=['page', 'last_time']), Api(r'/cash/order/list', log='取现 - 提现列表'), Api(r'/member/getMemberInfo', log='取现 - 用户账户信息'), Api(r'/mall/item/ItemList', log='取现 - 可取现金额列表'), Api(r'/cash_order/create', log='取现 - 提现', f_p_enc={'qdata'}, f_merge_key=r_u), Api(r'/sign/sign', log='每日签到', params_as_all=True, f_merge_key=r_c_l1), Api(r'/mission/intPointReward', log='时段签到', params_as_all=True, api_ok={'code': [-312]}, f_merge_key=r_c_l1), Api(r'/taskcenter/getReward', log='任务完成 - 领金币', params_as_all=True, f_merge_key=r_c_l1), r'/x/game-center/user/sign-in', r'/x/game-center/user/last-sign-coin', Api('/x/task/v2/take-reward', log='任务完成 - 领金币', f_name='game_take_reward', f_b_arg=['task_id']), r'/newuserline/activity/signRewardNew', # 挑战签到 Api(r'/mission/receiveTreasureBox', log='趣头条-开宝箱', api_ok={'code': [-1710]}), Api(r'/content/readV2', params_as_all=True, f_merge_key=r_u), Api(r'/app/re/taskCenter/info/v1/get', log='任务信息', params_as_all=True, p_as_all_limit=1, f_merge_key=r_c_l1), Api(r'/app/user/info/personal/v1/get', log='用户信息', params_as_all=True, p_as_all_limit=1, f_merge_key=r_c_l1), Api(r'/coin/service', body_as_all=True, f_merge_key=r_u), r'/readtimer/report', # Api(r'motivateapp/mtvcallback', params_as_all=True), Api(r'/x/feed/getReward', log='信息流-惊喜红包', params_as_all=True, api_ok={'code': [-308]}, f_merge_key=r_c_l1), # 天天乐 Api(r'/lotteryGame/status', log='天天乐-信息'), Api(r'/tiantianle/video', log='天天乐-增加机会', params_as_all=True, f_merge_key=r_c_l1), Api(r'/lotteryGame/order', log='天天乐-投注'), # 金猪 withdraw:(从银行)取钱 r'/x/v1/goldpig/info', r'/x/v1/goldpig/foundLostPig', # 金猪 - 找回金猪 r'/x/v1/goldpig/bubbleWithdraw', # 金猪 - 看视频 r'/x/v1/goldpig/withdraw', # 金猪 # 存钱罐 Api(r'/finance/piggybank/taskReward', api_ok={'code': [-2004]}), # 存钱罐 Api(r'/finance/piggybank/draw', log='存钱罐 - 活期金币转出到钱包', f_b_arg=['amount']), # 游戏 - 种菜 r'/x/tree-game/task-list', r'/x/tree-game/left-plant-num', r'/x/tree-game/plant-ok', r'/x/tree-game/add-plant', r'/x/tree-game/fertilizer/add', r'/x/tree-game/fertilizer/use', r'/x/tree-game/water-plants', r'/x/tree-game/my-gift-box/draw-lottery', r'/x/tree-game/my-gift-box/receive-prize', r'/x/tree-game/task-update', r'/x/tree-game/add-task-drips', Api(r'/x/tree-game/task/pop/take-reward', f_b_arg=['task_id']), #task_id=10,11,12 r'/x/tree-game/truck/sold', r'/x/tree-game/truck/ad-award', # r'/x/tree-game/', r'/x/task/encourage/activity/grant', # 游戏 - 瓜分 r'api/loginGame', r'api/qttAddCoin', # 游戏 - 成语 Api(r'/api/Login', log='猜成语赚钱 - 登录'), r'api/AddCoin', # 游戏 - 成语消消乐 Api('/chengyu/login', log='成语消消乐 - 登录 - 获取open_id', f_b_arg=['ticket']), Api('/chengyu/addcoin', log='成语消消乐 - 金币', f_b_arg=['add_num']), Api('/chengyu/update_red_packet', log='成语消消乐 - 过关得现金', f_b_arg=['level']), # 游戏 - 切菜 Api(r'/x/open/coin/add', body_as_all=True, f_merge_key=chain_rule( sort_rule(lambda item: int(item['coin_num']), reverse=True), r_u)), # 游戏 - 糖果 Api(r'/happy/qtt/userinfo', log='游戏 - 糖果 - 获取open_id', f_p_arg=['ticket']), Api(r'/happy/protocol', log='游戏 - 糖果 - 获取金币', f_b_arg=['data']), # 游戏 - 钓鱼 Api(r'/xyx_sdk/gw/partner_login', log='游戏 - 钓鱼 - 登录', body_as_all=True, f_merge_key=r_c_l1), Api(r'/qtt/coin/withdraw', log='游戏 - 钓鱼 - 获取金币'), # 游戏 - 大脑 Api('/api/v1/z6h5/sign', log='游戏 - 大脑 - 签到'), Api('/api/v1/z6h5/lottery', log='游戏 - 大脑 - 获取红包'), Api('/api/v1/z6h5/login', log='王者大脑 - 获取open_id', f_p_arg=['ticket']), Api('/api/v1/z6h5/sign', log='王者大脑 - 签到'), Api('/api/v1/z6h5/lottery', log='王者大脑 - lottery'), Api('/api/v1/z6h5/exchange', log='王者大脑 - 红包满20元兑换成金币'), Api('/api/v1/z6h5/get_reward', log='王者大脑 - 任务完成', f_p_arg=['activity_id']), Api('/api/v1/z6h5/open_redpacket', log='王者大脑 - 红包'), Api('/api/v1/z6h5/add_coin', log='王者大脑 - add_coin', params_as_all=True, f_merge_key=r_u), Api('/api/v1/z6h5/get_rank', log='王者大脑 - 判案比赛-排行信息'), Api('/api/v1/z6h5/get_rank_reward', log='王者大脑 - 判案比赛-领奖'), Api('/api/v1/z6h5/upload_rank', log='王者大脑 - 判案比赛 - 排行', f_p_arg=['score']), '/api/v1/z6h5/', Api(r'/press_trigger', log='幸运大转盘'), # 金猪 Api(r'/actcenter/piggy/videoConfirm', log='合成金猪 - 气泡', f_p_arg=['tag']), r'/actcenter/piggy/', Api(r'/search/searchContentNew', log='搜索内容得金币', params_as_all=True, p_as_all_limit=3, f_merge_key=chain_rule(r_c, limit_rule(3))), ] urls.extend(api_common()) urls.extend(api_tczyqtt()) return App(urls, 'qu-tou-tiao')