Exemple #1
0
    async def create_tuan(self, session):
        """
        :return:
        """
        tuan_info = await self.query_tuan_info(session)
        if tuan_info['isOpenTuan'] != 2:
            path = 'dreamfactory/tuan/CreateTuan'
            params = {
                'activeId': self.active_id,
                'isOpenApp': 1,
                '_stk': '_time,activeId,isOpenApp'
            }
            data = await self.request(session, path, params)
            if not data or data['ret'] != 0:
                println('{}, 开团失败!'.format(self.account))
                return ''
            println('{}, 开团成功, 团ID:{}!'.format(self.account, data['tuanId']))
            tuan_id = data['tuanId']

        else:
            tuan_id = tuan_info['tuanId']

        println('{}, 团ID:{}'.format(self.account, tuan_id))

        Code.insert_code(code_key=CODE_JX_FACTORY_TUAN,
                         code_val=tuan_id,
                         sort=self.sort,
                         account=self.account)

        return tuan_id
Exemple #2
0
    async def run(self):
        """
        :return:
        """
        async with aiohttp.ClientSession(cookies=self.cookies,
                                         headers=self.headers) as session:
            self.farm_info = await self.init_for_farm(session=session)
            if not self.farm_info:
                println('{}, 无法获取农场数据, 退出程序!'.format(self.account))
                return
            Code.insert_code(code_key=CODE_JD_FARM,
                             code_val=self.farm_info['shareCode'],
                             account=self.account,
                             sort=self.sort)
            println('{}, 助力码:{}'.format(self.account,
                                        self.farm_info['shareCode']))

            await self.do_daily_task(session)  # 每日任务
            await self.do_ten_water(session)  # 浇水十次
            await self.get_first_water_award(session)  # 领取首次浇水奖励
            await self.get_ten_water_award(session)  # 领取十次浇水奖励
            await self.get_water_friend_award(session)  # 领取给好友浇水的奖励
            await self.click_duck(session)  # 点鸭子任务
            await self.do_ten_water_again(session)  # 再次浇水
            await self.got_water(session)  # 领水滴
            await self.notify_result(session)  # 结果通知
 async def do_tasks(self, session, data):
     """
     做任务
     :param session:
     :param data: 首页数据
     :return:
     """
     println('{}, 开始做任务...'.format(self.account))
     for task in data['result']['taskVos']:
         task_type = task['taskType']
         task_name = task['taskName']
         task_status = task['status']
         if task_status == 2:
             println('{}, 任务:《{}》今日已完成!'.format(self.account, task_name))
             continue
         if task_type == 13:
             await self.sign(session, task)
         elif task_type == 14:
             code = task['assistTaskDetailVo']['taskToken']
             println('{}, 助力码:{}'.format(self.account, code))
             from db.model import Code
             Code.insert_code(code_key=CODE_SMASH_GOLDEN_EGG,
                              account=self.account,
                              code_val=code)
         elif task_type == 21:
             println('{}, 跳过任务: 《{}》!'.format(self.account, task_name))
             continue
         else:
             await self.do_task(session, task)
    async def do_tasks(self, session):
        """
        :param session:
        :return:
        """
        res = await self.request(session, 'healthyDay_getHomeData', {
            "appId": "1EFRXxg",
            "taskToken": "",
            "channelId": 1
        })
        if res['code'] != 0 or res['data']['bizCode'] != 0:
            println('{}, 获取任务列表失败!'.format(self.account))
            return

        data = res['data']['result']
        task_list = data['taskVos']

        for task in task_list:
            task_name, task_type = task['taskName'], task['taskType']
            if task_type == 14:  # 邀请好友助力
                code = task['assistTaskDetailVo']['taskToken']
                println('{}, 助力码:{}'.format(self.account, code))
                Code.insert_code(code_key=CODE_FLASH_SALE_BOX,
                                 code_val=code,
                                 account=self.account,
                                 sort=self.sort)
                continue
            await self.do_task(session, task)
Exemple #5
0
    async def run(self):
        """
        :return:
        """
        await self.get_encrypt()
        async with aiohttp.ClientSession(cookies=self.cookies,
                                         headers=self.headers) as session:
            if not await self.init(session):
                println('{}, 无法初始化, 退出程序!'.format(self.account))
                return

            if self.share_code:
                println('{}, 助力码:{}'.format(self.account, self.share_code))
                Code.insert_code(code_key=CODE_JX_PASTURE,
                                 code_val=self.share_code,
                                 sort=self.sort,
                                 account=self.account)

            await self.get_daily_food(session)
            await self.sign(session)  # 每日签到
            await self.get_gold_from_bull(session)  # 收牛牛金币
            await self.buy_food(session)  # 购买白菜
            await self.feed(session)  # 喂食
            await self.mowing(session, max_times=20)  # 割草20次
            await self.sweep_chicken_legs(session, max_times=20)  # 扫鸡腿20次
            await self.do_tasks(session)  # 做任务领奖励
            await self.notify(session)  # 通知
Exemple #6
0
 async def get_share_code(self, session):
     """
     获取助力码
     :return:
     """
     res = await self.get(session, 'signin/carveUp/carveUpInfo', {
         "groupId": "",
         "type": 2
     })
     if res.get('code') != '0':
         println('{}, 获取组队数据失败!'.format(self.account))
         return
     if 'groupId' not in res['result']:
         println('{}, 开启队伍!'.format(self.account))
         res = await self.get(
             session, 'signin/carveUp/openCarveUp', {
                 "nickName": "",
                 "nickHeadUrl": "",
                 "wcUnionId": "",
                 "openId": "",
                 "formId": "",
                 "type": 2,
                 "traceId": int(time.time() * 1000)
             })
     code = res['result']['groupId']
     println('{}, 助力码:{}'.format(self.account, code))
     Code.insert_code(code_key=CODE_DJ_BEAN_MANOR,
                      code_val=code,
                      account=self.account,
                      sort=self.sort)
Exemple #7
0
    async def init(self, session):
        """
        初始化
        :return:
        """
        println('{}, 正在初始化数据...'.format(self.account))
        data = await self.request(session, 'initPetTown')
        if data['resultCode'] != '0':
            println('{}, 无法获取活动首页数据, {}!'.format(self.account, data['message']))
            return False

        if data['userStatus'] == 0:
            println('{}, 萌宠活动未开启, 请手动去京东APP开启活动入口:我的->游戏与互动->查看更多开启!'.format(self.account))

        if 'goodsInfo' not in data:
            println('{}, 暂未选购商品!'.format(self.account))
            self.message += '【商品状态】暂未选择商品!\n'

        self.share_code = data['shareCode']
        self.invite_code = data['inviteCode']
        println('{}的互助码为:{}'.format(self.account, self.share_code))
        println('{}的邀请码为:{}'.format(self.account, self.invite_code))

        if self.share_code: # 保存助力码
            Code.insert_code(code_key=CODE_CUT_PET, code_val=self.share_code, account=self.account, sort=self.sort)

        if data['petStatus'] == 5:
            println('{}, 已可兑换商品!'.format(self.account))
            self.message += '【商品状态】已可兑换商品\n'

        if data['petStatus'] == 6:
            println('{}, 已领取红包, 但未继续领养新的物品!'.format(self.account))
            self.message += '【商品状态】暂未领取新的物品!'

        return True
Exemple #8
0
    async def get_share_code(self, session):
        """
        :return:
        """
        println('{}, 正在获取助力码!'.format(self.account))
        data = await self._get_index_data(session)
        if not data:
            println('{}, 无法获取助力码!'.format(self.account))
            return
        await asyncio.sleep(1)
        await self.request(session, 'signGroupHit',
                           {'activeType': data['activityType']})
        await asyncio.sleep(1)
        data = await self._get_index_data(session)

        if not data:
            println('{}, 无法获取助力码!'.format(self.account))
            return

        code = data['shareCode'] + '@' + data['groupCode']
        Code.insert_code(code_key=CODE_JD_GRAB_BEAN,
                         code_val=code,
                         account=self.account,
                         sort=self.sort)
        println('{}, 助力码: {}'.format(self.account, code))

        return code
Exemple #9
0
    async def get_task_list(self, session):
        """
        获取任务列表
        :param session:
        :return:
        """
        data = await self.request(session, 'jdfactory_getTaskDetail')

        if not data or data['bizCode'] != 0:
            println('{}, 无法获取任务列表!'.format(self.account))
            return

        task_list = data['result']['taskVos']

        for task in task_list:
            if task['taskType'] == 14:  # 互助码
                self.code = task['assistTaskDetailVo']['taskToken']
                Code.insert_code(code_key=CODE_JD_FACTORY,
                                 code_val=self.code,
                                 account=self.account,
                                 sort=self.sort)
                println('{}, 助力码:{}'.format(self.account, self.code))
                task_list.remove(task)
                break

        return task_list
    async def do_tasks(self, session):
        """
        获取任务列表
        :param session:
        :return:
        """
        data = await self.request(
            session, 'superBrandTaskList', {
                "source": "secondfloor",
                "activityId": self.activity_id,
                "assistInfoFlag": 1
            })
        if data.get('code') != 0:
            println('{}, 获取任务列表数据失败!'.format(self.account))
            return None

        task_list = data['result']['taskList']

        for task in task_list:

            if '助力' in task['assignmentName'] or '邀请' in task['assignmentName']:
                code_val = task['encryptAssignmentId'] + '@' + task['ext'][
                    'assistTaskDetail']['itemId']
                println('{}, 助力码:{}'.format(self.account, code_val))
                Code.insert_code(code_key=CODE_JD_SUPER_BRAND,
                                 code_val=code_val,
                                 sort=self.sort,
                                 account=self.account)
                continue

            if not task['ext']:
                item_id = 'null'
            else:
                if 'followShop' in task['ext']:
                    item_id = task['ext']['followShop'][0]['itemId']
                elif 'assistTaskDetail' in task['ext']:
                    item_id = task['ext']['assistTaskDetail']['itemId']
                elif 'brandMemberList' in task['ext']:
                    item_id = task['ext']['brandMemberList'][0]['itemId']
                else:
                    item_id = 'null'

            body = {
                "source": "secondfloor",
                "activityId": self.activity_id,
                "encryptProjectId": self.encrypt_project_id,
                "encryptAssignmentId": task['encryptAssignmentId'],
                "assignmentType": task['assignmentType'],
                "completionFlag": 1,
                "itemId": item_id,
                "actionType": 0
            }
            res = await self.request(session, 'superBrandDoTask', body)
            println('{}, 任务:{}, {}'.format(self.account,
                                           task['assignmentName'],
                                           res.get('msg')))
Exemple #11
0
 async def get_share_code(self, task):
     """
     获取助力码
     :param task:
     :return:
     """
     code = task['assistTaskDetailVo']['taskToken']
     println('{}, 助力码:{}!'.format(self.account, code))
     Code.insert_code(code_key=self.code_key,
                      code_val=code,
                      account=self.account,
                      sort=self.sort)
Exemple #12
0
 async def get_share_code(self, session):
     """
     获取助力码
     :param session:
     :return:
     """
     res = await self.request(session, 'jdhealth_getTaskDetail', {"buildingId": "", "taskId": 6, "channelId": 1})
     if res.get('bizCode', ERRCODE_DEFAULT) != 0:
         println('{}, 无法获取助力码!'.format(self.account))
         return
     code = res['result']['taskVos'][0]['assistTaskDetailVo']['taskToken']
     println('{}, 助力码:{}'.format(self.account, code))
     Code.insert_code(code_key=CODE_JD_HEALTH, code_val=code, account=self.account, sort=self.sort)
Exemple #13
0
 async def get_share_code(self, session):
     """
     :return:
     """
     res = await self.request(session, {"apiMapping": "/active/shareUrl"})
     if res.get('code') != 200:
         return
     code = res.get('data')
     println('{}, 助力码:{}'.format(self.account, code))
     Code.insert_code(code_key=CODE_5G_BOX,
                      code_val=code,
                      sort=self.sort,
                      account=self.account)
Exemple #14
0
 async def get_share_code(self, task):
     """
     获取助力码
     """
     body = {
         'taskId': task['taskId'],
         'uniqueId': task['uniqueId'],
         'assistTargetPin': self.dj_pin,
     }
     code = json.dumps(body)
     Code.insert_code(code_key=CODE_DJ_FRUIT, code_val=code, account=self.account, sort=self.sort)
     println('{}, 助力码:{}'.format(self.account, code))
     return code
Exemple #15
0
 async def get_share_code(self, session):
     """
     获取助力码
     :return:
     """
     data = await self.post(session=session, function_id='plantBeanIndex')
     if not data or data['code'] != '0' or 'errorMessage' in data:
         println('{}, 获取助力码失败:{}'.format(self.account, data.get('errorMessage', '未知')))
         return None
     share_url = furl(data['data']['jwordShareInfo']['shareUrl'])
     code = share_url.args.get('plantUuid', '')
     println('{} 助力码:{}'.format(self.account, code))
     Code.insert_code(code_key=CODE_PLANTING_BEAN, code_val=code, account=self.account, sort=self.sort)
     return code
Exemple #16
0
    async def do_tasks(self, session):
        """
        做任务
        :return:
        """
        res = await self.request(session, '/luckdraw/queryMissionList', [{
            "userNo": "$cooMrdGatewayUid$",
            "activity_code": self.activity_code
        }])
        if not res.get('success'):
            println('{}, 获取任务列表失败!'.format(self.account))
            return
        task_list = res['content']['missionList']

        for task in task_list:
            if task['status'] == 10:
                println('{}, 今日完成任务:{}!'.format(self.account, task['title']))
                continue

            if task['status'] == 11:
                for no in task['getRewardNos']:
                    body = [{
                        "activity_code": self.activity_code,
                        "userNo": "$cooMrdGatewayUid$",
                        "getCode": no
                    }]
                    res = await self.request(session, '/luckDraw/getDrawChance', body)
                    if res.get('success'):
                        println('{}, 成功领取一次抽奖机会!'.format(self.account))
                        break
                continue

            if '邀请' in task['title']:  # 邀请好友
                code = task['missionNo']
                println('{}, 助力码:{}'.format(self.account, code))
                Code.insert_code(code_val=code, code_key=CODE_KEY, sort=self.sort, account=self.account)
                continue

            for i in range(task['completeNum'], task['totalNum']):
                body = [{
                    "activity_code": self.activity_code,
                    "userNo": "$cooMrdGatewayUid$",
                    "missionNo": task['missionNo'],
                    "params": task['params']
                }]
                res = await self.request(session, '/luckDraw/completeMission', body)
                if res.get('success'):
                    println('{}, 完成任务:{}-{}'.format(self.account, task['title'], i + 1))
                await asyncio.sleep(1)
Exemple #17
0
 async def help_friend(self, session):
     """
     帮好友打工
     :param session:
     :return:
     """
     path = 'dreamfactory/friend/AssistFriend'
     body = {
         'zone': 'dream_factory',
         'sharepin': '',
         '_stk': '_time,sharepin,zone'
     }
     item_list = Code.get_code_list(CODE_JX_FACTORY_WORK)
     item_list.extend(get_code_list(CODE_JX_FACTORY_WORK))
     for item in item_list:
         account, code = item.get('account'), item.get('code')
         if account == self.account:
             continue
         body['sharepin'] = code
         res = await self.request(session, path, body)
         if res.get('ret', -1) != 0:
             println('{}, 无法助力好友:{}, {}'.format(self.account, account,
                                                res.get('msg', '原因未知')))
             if res.get('ret', -1) in [11009, 11005]:
                 break
         else:
             println('{}, 成功助力好友:{}!'.format(self.account, account))
         await asyncio.sleep(1)
Exemple #18
0
    async def help_friend(self, session):
        """
        助力好友
        :param session:
        :return:
        """
        item_list = Code.get_code_list(CODE_JD_FACTORY)
        item_list.extend(get_code_list(CODE_JD_FACTORY))
        for item in item_list:
            friend_account, friend_code = item.get('account'), item.get('code')
            if friend_account == self.account:
                continue

            params = {
                "taskToken": friend_code,
            }

            data = await self.request(session, 'jdfactory_collectScore',
                                      params)

            println('{}, 助力好友{}, {}'.format(self.account, friend_account,
                                            data['bizMsg']))

            if data['bizCode'] in [-1001, -7]:  # 活动火爆=黑号, 助力次数用完
                break
            await asyncio.sleep(1)
    async def run_help(self):
        """
        执行助力
        :return:
        """
        async with aiohttp.ClientSession(
                headers=self.headers,
                cookies=self.cookies,
                json_serialize=ujson.dumps) as session:

            code_list = Code.get_code_list(code_key=CODE_AMUSEMENT_POST)
            code_list.extend(get_code_list(CODE_AMUSEMENT_POST))
            if not code_list:
                return
            for code in code_list:
                friend_account = code.get('account')
                friend_code = code.get('code')
                if friend_account == self.account:
                    continue
                res = await self.request(session, 'MangHeApi/helpFriend',
                                         [{
                                             "userNo": "$cooMrdGatewayUid$",
                                             "missionNo": friend_code
                                         }])
                success = res.get('success', False)
                if success:
                    println('{}, 成功助力好友:{}!'.format(self.account,
                                                    friend_account))
                else:
                    println('{}, 无法助力好友:{}!'.format(self.account,
                                                    friend_account))
Exemple #20
0
 async def help_friend(self, session):
     """
     :param session:
     :return:
     """
     path = 'dreamfactory/userinfo/GetUserInfo'
     body = {
         'zone':
         'dream_factory',
         'pin':
         '',
         'sharePin':
         '',
         'shareType':
         2,
         'materialTuanPin':
         '',
         'materialTuanId':
         '',
         'source':
         '',
         '_stk':
         '_time,materialTuanId,materialTuanPin,pin,sharePin,shareType,source,zone'
     }
     item_list = Code.get_code_list(CODE_JX_FACTORY_WORK)
     item_list.extend(get_code_list(CODE_JX_FACTORY_WORK))
     for item in item_list:
         account, code = item.get('account'), item.get('code')
         if account == self.account:
             continue
         body['sharePin'] = code
         res = await self.request(session, path, body)
         msg = res.get('assistCondition',
                       dict()).get('assistConditionMsg', '未知')
         println('{}, 助力好友:{}, {}'.format(self.account, account, msg))
Exemple #21
0
    async def help_friend(self, session):
        """
        :param session:
        :return:
        """
        session.headers.add(
            'Referer',
            'https://h5.m.jd.com/babelDiy/Zeus/GzY6gTjVg1zqnQRnmWfMKC4PsT1/index.html'
        )

        item_list = Code.get_code_list(code_key=CODE_JD_CASH)
        item_list.extend(get_code_list(CODE_JD_CASH))
        for item in item_list:
            friend_account, friend_code = item.get('account'), item.get('code')
            if friend_account == self.account:
                continue

            invite_code, share_date = friend_code.split('@')

            data = await self.request(session, 'cash_mob_assist', {
                "inviteCode": invite_code,
                "shareDate": share_date,
                "source": 2
            })
            if data['code'] != 0 or data['data']['bizCode'] != 0:
                println('{}, 助力好友:{}失败, {}!'.format(self.account, invite_code,
                                                    data['data']['bizMsg']))
                if data['data']['bizCode'] in [206, 188]:  # 助力次数用完/活动太火爆了
                    break
            else:
                println('{}, 助力好友:{}成功!'.format(self.account, invite_code))

            await asyncio.sleep(2.5)
Exemple #22
0
    async def join_tuan(self, session):
        """
        参团
        :param session:
        :return:
        """
        item_list = Code.get_code_list(CODE_JX_FACTORY_TUAN)
        item_list.extend(CODE_JX_FACTORY_TUAN)
        path = 'dreamfactory/tuan/JoinTuan'
        for item in item_list:
            account, code = item.get('account'), item.get('code')

            if account == self.account:
                continue

            params = {
                'activeId': self.active_id,
                'tuanId': code,
                '_stk': '_time,activeId,tuanId'
            }
            data = await self.request(session, path, params)

            if not data:
                println('{}, 无法参与好友:{}的团!'.format(self.account, account))
                return

            if data['ret'] in [10208, 0]:
                println('{}, 已成功参与好友:{}的团!'.format(self.account, account))
            else:
                println('{}, 无法参与好友:{}的团, {}'.format(self.account, account,
                                                     data['msg']))
                if data['ret'] in [10206, 10003]:
                    break

            await asyncio.sleep(1)
Exemple #23
0
 async def run_help(self):
     """
     助力入口
     :return:
     """
     async with aiohttp.ClientSession(cookies=self.cookies, headers=self.headers) as session:
         is_success = await self.login(session)
         if not is_success:
             println('{}, 登录失败, 退出程序...'.format(self.account))
             return
         item_list = Code.get_code_list(CODE_MONEY_TREE)
         item_list.extend(get_code_list(CODE_MONEY_TREE))
         for item in item_list:
             friend_account, friend_code = item.get('account'), item.get('code')
             if friend_account == self.account:
                 continue
             params = {
                 "sharePin": friend_account,
                 "shareType": "1",
                 "channelLV": "",
                 "source": 0,
                 "riskDeviceParam": "{}"
             }
             data = await self.request(session, 'login', params)
             if data['code'] == '200':
                 println('{}, 正在帮好友:{}打工!'.format(self.account, friend_account))
             else:
                 println('{}, 无法为好友:{}打工!'.format(self.account, friend_account))
 async def get_share_code(self, session):
     """
     获取助力码
     :return:
     """
     body = {"apiMapping": "/khc/task/getSupport"}
     res = await self.request(session, 'carnivalcity_jd_prod', body)
     if res.get('code') != 200:
         println('{}, 无法获取助力码!'.format(self.account))
         return
     share_code = res.get('data', dict()).get('shareId')
     Code.insert_code(code_key=CODE_JD_CARNIVAL_CITY,
                      code_val=share_code,
                      sort=self.sort,
                      account=self.account)
     println('{}, 助力码:{}'.format(self.account, share_code))
Exemple #25
0
 async def run_help(self):
     """
     :return:
     """
     await self.get_encrypt()
     async with aiohttp.ClientSession(cookies=self.cookies,
                                      headers=self.headers) as session:
         if not await self.init(session):
             println('{}, 无法初始化, 退出程序!'.format(self.account))
             return
         item_list = Code.get_code_list(code_key=CODE_JX_PASTURE)
         item_list.extend(get_code_list(CODE_JX_PASTURE))
         for item in item_list:
             account, code = item.get('account'), item.get('code')
             if account == self.account:
                 continue
             res = await self.request(session,
                                      '/jxmc/operservice/EnrollFriend', {
                                          'sharekey': code,
                                          '_stk': 'channel,sceneid,sharekey'
                                      })
             if res.get('ret') == 0:
                 println('{}, 成功助力好友:{}'.format(self.account, account))
             else:
                 println('{}, 助力好友:{}失败, {}'.format(self.account, account,
                                                    res.get('message')))
             await asyncio.sleep(3)
    async def run_help(self):
        """
        助力
        :return:
        """
        async with aiohttp.ClientSession(cookies=self.cookies,
                                         headers=self.headers) as session:
            item_list = Code.get_code_list(code_key=CODE_FLASH_SALE_BOX)
            item_list.extend(get_code_list(CODE_FLASH_SALE_BOX))
            for item in item_list:
                friend_account, friend_code = item['account'], item['code']
                if friend_account == self.account:
                    return
                body = {
                    "appId": "1EFRXxg",
                    "taskToken": friend_code,
                    "taskId": 6,
                    "actionType": 0
                }
                res = await self.request(session, 'harmony_collectScore', body)
                if res['code'] != 0:
                    println('{}, 助力好友:{}失败!'.format(self.account,
                                                    friend_account))
                    break

                if res['data']['bizCode'] != 0:
                    println('{}, 助力好友:{}失败, {}!'.format(
                        self.account, friend_account, res['data']['bizMsg']))
                    if res['data']['bizCode'] in [108]:
                        break
                else:
                    println('{}, 助力好友:{}成功!'.format(self.account,
                                                    friend_account))

                await asyncio.sleep(1)
 async def run_help(self):
     """
     助力入口
     :return:
     """
     async with aiohttp.ClientSession(headers=self.headers,
                                      cookies=self.cookies) as session:
         item_list = Code.get_code_list(CODE_SMASH_GOLDEN_EGG)
         for item in item_list:
             friend_account, friend_code = item.get('account'), item.get(
                 'code')
             if self.account == friend_account:
                 continue
             body = {
                 "appId": "1EFRQwA",
                 "taskToken": friend_account,
                 "taskId": 6,
                 "actionType": 0
             }
             res = await self.request(session, 'harmony_collectScore', body)
             if res['bizCode'] != 0:
                 println('{}, 助力好友:{}失败, {}'.format(self.account,
                                                    friend_account,
                                                    res.get('bizMsg')))
                 if res['bizCode'] == 105:
                     break
             else:
                 println('{}, 成功助力好友:{}!'.format(self.account,
                                                 friend_account))
             await asyncio.sleep(1)
Exemple #28
0
def post_code_list(code_key):
    """
    提交助力码
    :return:
    """
    code_list = []
    item_list = Code.get_codes(code_key)

    for item in item_list:
        code_list.append({
            'account': item.account,
            'code_key': item.code_key,
            'code_val': item.code_val,
        })

    if len(code_list) < 1:
        return

    url = 'https://jd-share-code.vercel.app/api/'
    params = {'items': code_list, 'os': os.getenv('HOSTNAME', '')}
    params['sign'] = sign(params)

    try:
        response = requests.post(url, json=params, verify=False, timeout=10)
        if response.json().get('code') == 0:
            println('成功提交助力码!')
        else:
            println('提交助力码失败!')
    except Exception as e:
        println('提交助力码失败, {}'.format(e.args))
Exemple #29
0
 async def lottery_help_friend(self, session):
     """
     天天抽奖助力好友
     :param session:
     :return:
     """
     println('{}, 开始天天抽奖--好友助力--每人每天只有三次助力机会!'.format(self.account))
     item_list = Code.get_code_list(CODE_JD_FARM)
     item_list.extend(get_code_list(CODE_JD_FARM))
     for item in item_list:
         friend_account, friend_code = item.get('account'), item.get('code')
         if friend_account == self.account:
             continue
         res = await self.request(
             session, 'initForFarm', {
                 "imageUrl": "",
                 "nickName": "",
                 "shareCode": friend_code + '-3',
                 "babelChannel": "3"
             })
         if res['helpResult']['code'] == '0':
             println('{}, 天天抽奖-成功助力用户:《{}》 !'.format(
                 self.account, friend_account))
         elif res['helpResult']['code'] == '11':
             println('{}, 天天抽奖-无法重复助力用户:《{}》!'.format(
                 self.account, friend_account))
         elif res['helpResult']['code'] == '13':
             println('{}, 天天抽奖-助力用户:《{}》失败, 助力次数已用完!'.format(
                 self.account, friend_account))
             break
         else:
             println('{}, 天天抽奖助力用户:《{}》失败, 原因未知!'.format(
                 self.account, friend_account))
     println('{}, 完成天天抽奖--好友助力!'.format(self.account))
Exemple #30
0
 async def run_help(self):
     """
     助力入口
     :return:
     """
     async with aiohttp.ClientSession(cookies=self.cookies,
                                      headers=self.headers) as session:
         item_list = Code.get_code_list(self.code_key)
         item_list.extend(get_code_list(self.code_key))
         for item in item_list:
             friend_account, friend_code = item.get('account'), item.get(
                 'code')
             if friend_account == self.account:
                 continue
             res = await self.request(
                 session, 'harmony_collectScore', {
                     "appId": self.appid,
                     "taskToken": friend_code,
                     "taskId": 4,
                     "actionType": 1,
                 })
             if res.get('bizCode', -1) != 0:
                 println('{}, 助力好友:{}失败, {}'.format(self.account,
                                                    friend_account,
                                                    res['bizMsg']))
                 if res['bizCode'] == 108:  # 助力已上限
                     break
             else:
                 println('{}, 成功助力好友:{}!'.format(self.account,
                                                 friend_account))
             await asyncio.sleep(1)