Esempio n. 1
0
    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
Esempio n. 2
0
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'])
Esempio n. 3
0
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')
Esempio n. 4
0
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')
Esempio n. 5
0
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')
Esempio n. 6
0
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')
Esempio n. 7
0
def api_sign():
    urls = [
        Api('/x/game-center/gapp/sign-in', log='签到'),
        Api('/x/game-center/gapp/sign-in-double', log='签到 - double'),
    ]
    return urls
Esempio n. 8
0
    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())
Esempio n. 9
0
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')
Esempio n. 10
0
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]})
Esempio n. 11
0
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')
Esempio n. 12
0
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
Esempio n. 13
0
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')
Esempio n. 14
0
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]})
Esempio n. 15
0
def app_zhu_lai_le():
    ''' 猪来了 '''
    urls = [
        Api(r'/pig/protocol', log='猪来了'),
    ]
    return App(urls, 'zhu-lai-le')
Esempio n. 16
0
    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 + '|')
Esempio n. 17
0
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')
Esempio n. 18
0
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')
Esempio n. 19
0
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')