コード例 #1
0
ファイル: pk_raffle_handler.py プロジェクト: m011/YjMonitor
    async def check(user, real_roomid, raffle_id=None):
        if raffle_id is not None:
            json_response = {'data': [{'id': raffle_id, 'time': 110}]}
        else:
            json_response = await user.req_s(PkRaffleHandlerReq.check, user,
                                             real_roomid)
        # print(json_response['data']['list'])
        list_raffles = json_response['data']
        if not list_raffles:  # sb可能返回None
            return None
        next_step_settings = []
        for raffle in list_raffles:
            raffle_id = raffle['id']
            max_wait = raffle['time']
            # 处理一些重复
            if not bili_statistics.is_raffleid_duplicate(raffle_id):
                raffle_data = {
                    'raffle_id': raffle_id,
                    'room_id': real_roomid,
                    'raffle_type': 'PK',
                    'end_time': utils.curr_time() + max_wait
                }
                next_step_setting = (-2, (0, 0), raffle_data)
                next_step_settings.append(next_step_setting)
                bili_statistics.add2raffle_ids(raffle_id)

        return next_step_settings
コード例 #2
0
 async def check(user, real_roomid, raffle_id=None):
     if not await UtilsTask.is_normal_room(user, real_roomid):
         return
     if raffle_id is not None:
         json_rsp = {'data': [{'id': raffle_id, 'time': 65}]}
     else:
         for i in range(10):
             json_rsp = await user.req_s(GuardRaffleHandlerReq.check, user,
                                         real_roomid)
             # print(json_rsp)
             if json_rsp['data']:
                 break
             await asyncio.sleep(1)
         else:
             print(f'{real_roomid}没有guard或者guard已经领取')
             return
     next_step_settings = []
     for j in json_rsp['data']:
         raffle_id = j['id']
         # 总督长达一天,额外处理
         max_wait = min(j['time'] - 15, 240)
         if not bili_statistics.is_raffleid_duplicate(raffle_id):
             print('本次获取到的抽奖id为', raffle_id)
             next_step_setting = (-2, (0, max_wait), real_roomid, raffle_id)
             next_step_settings.append(next_step_setting)
             bili_statistics.add2raffle_ids(raffle_id)
     return next_step_settings
コード例 #3
0
 async def check(user, real_roomid, try_times=10):
     for i in range(try_times):
         json_rsp = await user.req_s(GuardRaffleHandlerReq.check, user,
                                     real_roomid)
         # print(json_rsp)
         if json_rsp['data'] and (try_times == 1 or i >= try_times / 2):
             break
         await asyncio.sleep(1.7)
     else:
         print(f'{real_roomid}没有guard或者guard已经领取')
         return
     next_step_settings = []
     data = json_rsp['data']
     for j in data:
         raffle_id = j['id']
         # 总督长达一天,额外处理
         max_wait = j['time']
         privilege_type = j['privilege_type']
         if privilege_type != 1 and max_wait >= 100 \
                 and (not bili_statistics.is_raffleid_duplicate(raffle_id)):
             print('本次获取到的抽奖id为', raffle_id)
             raffle_data = {
                 'raffle_id': raffle_id,
                 'room_id': real_roomid,
                 'raffle_type': 'GUARD',
                 'end_time': max_wait + utils.curr_time()
             }
             next_step_setting = (-2, (0, 0), raffle_data)
             next_step_settings.append(next_step_setting)
             bili_statistics.add2raffle_ids(raffle_id)
     return next_step_settings
コード例 #4
0
 async def check(_, __, raffle_id):
     json_rsp = {
         'data': [{
             'id': raffle_id,
             'time': 65,
             'privilege_type': 10086
         }]
     }
     data = json_rsp['data']
     for j in data:
         raffle_id = j['id']
         if not bili_statistics.is_raffleid_duplicate(raffle_id):
             print('本次获取到的抽奖id为', raffle_id)
             bili_statistics.add2raffle_ids(raffle_id)
     return
コード例 #5
0
 async def check(_, real_roomid, other_raffle_data):
     next_step_settings = []
     raffle_id = other_raffle_data['id']
     if not bili_statistics.is_raffleid_duplicate(raffle_id):
         print('本次获取到的节奏风暴抽奖id为', raffle_id)
         raffle_data = {
             'raffle_id': raffle_id,
             'room_id': real_roomid,
             'raffle_type': 'STORM',
             'end_time': 0,
             'other_raffle_data': other_raffle_data
         }
         next_step_setting = (-2, (0, 0), raffle_data)
         next_step_settings.append(next_step_setting)
         bili_statistics.add2raffle_ids(raffle_id)
     return next_step_settings
コード例 #6
0
 async def check(user, real_roomid, json_rsp=None):
     if not await UtilsTask.is_normal_room(user, real_roomid):
         return None
     if json_rsp is None:
         json_rsp = await user.req_s(TvRaffleHandlerReq.check, user, real_roomid)
     next_step_settings = []
     for raffle in json_rsp['data']['gift']:
         raffle_id = raffle['raffleId']
         raffle_type = raffle['type']
         max_wait = raffle['time'] - 10
         # 处理一些重复
         if not bili_statistics.is_raffleid_duplicate(raffle_id):
             user.info(f'确认获取到小电视抽奖 {raffle_id}', with_userid=False)
             next_step_setting = (-2, (raffle['time_wait'], max_wait), real_roomid, raffle_id, raffle_type)
             next_step_settings.append(next_step_setting)
             bili_statistics.add2raffle_ids(raffle_id, 'TV')
             
     return next_step_settings
コード例 #7
0
    async def check(user, real_roomid, json_rsp=None):
        if not await UtilsTask.is_normal_room(user, real_roomid):
            return
        if json_rsp is None:
            await asyncio.sleep(5)  # 人为延迟
            json_rsp = await user.req_s(GuardRaffleHandlerReq.check, user, real_roomid)

        next_step_settings = []
        for raffle in json_rsp['data']['guard']:
            raffle_id = raffle['id']
            # 总督长达一天,额外处理
            max_wait = min(raffle['time'] - 15, 240)
            if not bili_statistics.is_raffleid_duplicate(raffle_id):
                user.info(f'确认获取到大航海抽奖 {raffle_id}', with_userid=False)
                next_step_setting = (-2, (0, max_wait), real_roomid, raffle_id)
                next_step_settings.append(next_step_setting)
                bili_statistics.add2raffle_ids(raffle_id, 'GUARD')
        return next_step_settings
コード例 #8
0
 async def check_v4(user, real_roomid):
     if not await UtilsTask.is_normal_room(user, real_roomid):
         return
     json_response = await user.req_s(TvRaffleHandlerReq.check, user, real_roomid)
     # print(json_response['data']['list'])
     checklen = json_response['data']['list']
     next_step_settings = []
     for j in checklen:
         raffle_id = j['raffleId']
         raffle_type = j['type']
         max_wait = j['time'] - 10
         # 处理一些重复
         if not bili_statistics.is_raffleid_duplicate(raffle_id):
             print('本次获取到的抽奖id为', raffle_id)
             next_step_setting = (3, (j['time_wait'], max_wait), -2, real_roomid, raffle_id, raffle_type)
             next_step_settings.append(next_step_setting)
             bili_statistics.add2raffle_ids(raffle_id)
             
     return next_step_settings
コード例 #9
0
 async def check(user, room_id, raffle_id=None):
     if not await UtilsTask.is_normal_room(user, room_id):
         return
     if raffle_id is not None:
         json_rsp = {'data': {'id': raffle_id}}
     else:
         json_rsp = await user.req_s(StormRaffleHandlerReq.check, user,
                                     room_id)
     next_step_settings = []
     data = json_rsp['data']
     if data:
         raffle_id = int(data['id'])
         if not bili_statistics.is_raffleid_duplicate(raffle_id / 1000000):
             user.info(f'确认获取到飓风暴抽奖 {raffle_id}', with_userid=False)
             next_step_setting = (-2, (1, 3), room_id, raffle_id)
             next_step_settings.append(next_step_setting)
             next_step_setting = (-2, (2, 4), room_id, raffle_id)
             next_step_settings.append(next_step_setting)
             bili_statistics.add2raffle_ids(raffle_id / 1000000, 'STORM')
     return next_step_settings
コード例 #10
0
    async def check(user, real_roomid):
        if not await UtilsTask.is_normal_room(user, real_roomid):
            return None
        json_response = await user.req_s(PkRaffleHandlerReq.check, user,
                                         real_roomid)
        # print(json_response['data']['list'])
        list_raffles = json_response['data']
        if not list_raffles:  # sb可能返回None
            return None
        next_step_settings = []
        for raffle in list_raffles:
            raffle_id = raffle['id']
            max_wait = raffle['time'] - 10
            # 处理一些重复
            if not bili_statistics.is_raffleid_duplicate(raffle_id):
                user.info(f'确认获取到大乱斗抽奖 {raffle_id}', with_userid=False)
                next_step_setting = (-2, (0, max_wait), real_roomid, raffle_id)
                next_step_settings.append(next_step_setting)
                bili_statistics.add2raffle_ids(raffle_id, 'PK')

        return next_step_settings
コード例 #11
0
    async def check(user, room_id, raffle_id=None):
        if not await UtilsTask.is_normal_room(user, room_id):
            return
        if raffle_id is not None:
            json_rsp = {'data': {'id': raffle_id}}
        else:
            json_rsp = await user.req_s(StormRaffleHandlerReq.check, user,
                                        room_id)
        next_step_settings = []
        data = json_rsp['data']
        if data:
            raffle_id = data['id']
            if not bili_statistics.is_raffleid_duplicate(raffle_id):
                print('本次获取到的抽奖id为', raffle_id)
                next_step_setting = (1, (1, 3), -2, room_id, raffle_id)
                next_step_settings.append(next_step_setting)

                next_step_setting = (1, (2, 4), -2, room_id, raffle_id)
                next_step_settings.append(next_step_setting)

                bili_statistics.add2raffle_ids(raffle_id)
        return next_step_settings
コード例 #12
0
 async def check(user, room_id, raffle_id=None):
     if raffle_id is not None:
         json_rsp = {'data': {'id': raffle_id}}
     else:
         json_rsp = await user.req_s(StormRaffleHandlerReq.check, user,
                                     room_id)
     next_step_settings = []
     data = json_rsp['data']
     if data:
         raffle_id = data['id']
         if not bili_statistics.is_raffleid_duplicate(raffle_id):
             print('本次获取到的抽奖id为', raffle_id)
             raffle_data = {
                 'raffle_id': raffle_id,
                 'room_id': room_id,
                 'raffle_type': 'STORM',
                 'end_time': 0
             }
             next_step_setting = (-2, (0, 0), raffle_data)
             next_step_settings.append(next_step_setting)
             bili_statistics.add2raffle_ids(raffle_id)
     return next_step_settings
コード例 #13
0
    async def check(user, real_roomid):  # v4
        if not await UtilsTask.is_normal_room(user, real_roomid):
            return None
        json_response = await user.req_s(TvRaffleHandlerReq.check, user,
                                         real_roomid)
        # print(json_response['data']['list'])
        checklen = json_response['data']['list']
        if not checklen:  # sb可能返回None
            return None
        next_step_settings = []
        for j in checklen:
            raffle_id = j['raffleId']
            raffle_type = j['type']
            max_wait = j['time'] - 10
            # 处理一些重复
            if not bili_statistics.is_raffleid_duplicate(raffle_id):
                user.info(f'确认获取到小电视抽奖 {raffle_id}', with_userid=False)
                next_step_setting = (-2, (j['time_wait'], max_wait),
                                     real_roomid, raffle_id, raffle_type)
                next_step_settings.append(next_step_setting)
                bili_statistics.add2raffle_ids(raffle_id, 'TV')

        return next_step_settings
コード例 #14
0
 async def check(_, __, raffle_id):
     if not bili_statistics.is_raffleid_duplicate(raffle_id):
         print('本次收录到的抽奖id为', raffle_id)
         bili_statistics.add2raffle_ids(raffle_id)
     return None
コード例 #15
0
    async def check(user, real_roomid, sleep_time=0):
        await asyncio.sleep(sleep_time)  # 人为延迟
        json_rsp = await user.req_s(LotteriesRaffleHandlerReq.check, user,
                                    real_roomid)

        next_step_settings = []
        for raffle in json_rsp['data']['guard']:
            raffle_id = raffle['id']
            max_wait = raffle['time']
            privilege_type = raffle['privilege_type']

            if privilege_type != 1 and max_wait >= 25 \
                    and (not bili_statistics.is_raffleid_duplicate(raffle_id)):
                print('本次获取到的大航海抽奖id为', raffle_id)
                raffle_data = {
                    'raffle_id': raffle_id,
                    'room_id': real_roomid,
                    'raffle_type': 'GUARD',
                    'end_time': max_wait + utils.curr_time(),
                    'other_raffle_data': raffle
                }
                next_step_setting = (-2, (0, 0), raffle_data)
                next_step_settings.append(next_step_setting)
                bili_statistics.add2raffle_ids(raffle_id)

        for raffle in json_rsp['data']['pk']:
            raffle_id = raffle['id']
            max_wait = raffle['time']

            if max_wait >= 25 and (
                    not bili_statistics.is_raffleid_duplicate(raffle_id)):
                print('本次获取到的大乱斗抽奖id为', raffle_id)
                raffle_data = {
                    'raffle_id': raffle_id,
                    'room_id': real_roomid,
                    'raffle_type': 'PK',
                    'end_time': max_wait + utils.curr_time(),
                    'other_raffle_data': raffle
                }
                next_step_setting = (-2, (0, 0), raffle_data)
                next_step_settings.append(next_step_setting)
                bili_statistics.add2raffle_ids(raffle_id)

        for raffle in json_rsp['data']['gift']:
            raffle_id = raffle['raffleId']
            max_wait = raffle['time']
            gift_id = int(raffle['gift_id'])
            if max_wait >= 25 and gift_id in (30405, 30406, 30448) \
                    and (not bili_statistics.is_raffleid_duplicate(raffle_id)):
                print('本次获取到的小电视抽奖id为', raffle_id)
                raffle_data = {
                    'raffle_id': raffle_id,
                    'room_id': real_roomid,
                    'raffle_type': 'TV',
                    'end_time': max_wait + utils.curr_time(),
                    'other_raffle_data': raffle
                }
                next_step_setting = (-2, (0, 0), raffle_data)
                next_step_settings.append(next_step_setting)
                bili_statistics.add2raffle_ids(raffle_id)
        return next_step_settings