From d4e59d7364071eeb8e472e90c587feb46aec93e7 Mon Sep 17 00:00:00 2001 From: zhangjie369 <48741958+zhangjie369@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:41:35 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E9=A1=BA=E4=B8=B0=E9=80=9F=E8=BF=90?= =?UTF-8?q?=E6=96=B0.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 顺丰速运新.py | 391 +++++++++++++++++++------------------------------- 1 file changed, 144 insertions(+), 247 deletions(-) diff --git a/顺丰速运新.py b/顺丰速运新.py index d2ae489..9f197a9 100644 --- a/顺丰速运新.py +++ b/顺丰速运新.py @@ -1,4 +1,4 @@ -#2025/1/6 遍历生活特权所有分组的券进行领券,券没啥用但完成可领取30点丰蜜目前一天拉满155点 +#2025/1/24 遍历生活特权所有分组的券进行领券,券没啥用但完成可领取30点丰蜜目前一天拉满155点。去除失效活动,支持蜜罐自动扩容 #变量名:sfsyUrl #格式:多账号用&分割或创建多个变量sfsyUrl #关于参数获取如下两种方式: @@ -58,7 +58,7 @@ class RUN: if len_split_info > 0 and "UID_" in last_info: self.send_UID = last_info self.index = index + 1 - Log(f"\n---------开始执行第{self.index}个账号>>>>>") + print(f"\n{'='*20} 🔄 开始执行第{self.index}个账号 🔄 {'='*20}") self.s = requests.session() self.s.verify = False self.headers = { @@ -97,23 +97,20 @@ class RUN: def login(self, sfurl): try: - # 对URL进行解码 decoded_url = unquote(sfurl) - ress = self.s.get(decoded_url, headers=self.headers) - # print(ress.text) self.user_id = self.s.cookies.get_dict().get('_login_user_id_', '') self.phone = self.s.cookies.get_dict().get('_login_mobile_', '') self.mobile = self.phone[:3] + "*" * 4 + self.phone[7:] if self.phone else '' if self.phone: - Log(f'用户:【{self.mobile}】登陆成功') + Log(f'👤 用户:【{self.mobile}】登陆成功') return True else: - Log(f'获取用户信息失败') + Log(f'❌ 获取用户信息失败') return False except Exception as e: - Log(f'登录异常: {str(e)}') + Log(f'❌ 登录异常: {str(e)}') return False def getSign(self): @@ -149,29 +146,27 @@ class RUN: return None def sign(self): - print(f'>>>>>>开始执行签到') + print(f'🎯 开始执行签到') json_data = {"comeFrom": "vioin", "channelFrom": "WEIXIN"} url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskSignPlusService~automaticSignFetchPackage' response = self.do_request(url, data=json_data) - # print(response) if response.get('success') == True: count_day = response.get('obj', {}).get('countDay', 0) if response.get('obj') and response['obj'].get('integralTaskSignPackageVOList'): packet_name = response["obj"]["integralTaskSignPackageVOList"][0]["packetName"] - Log(f'>>>签到成功,获得【{packet_name}】,本周累计签到【{count_day + 1}】天') + Log(f'✨ 签到成功,获得【{packet_name}】,本周累计签到【{count_day + 1}】天') else: - Log(f'今日已签到,本周累计签到【{count_day + 1}】天') + Log(f'📝 今日已签到,本周累计签到【{count_day + 1}】天') else: - print(f'签到失败!原因:{response.get("errorMessage")}') + print(f'❌ 签到失败!原因:{response.get("errorMessage")}') def superWelfare_receiveRedPacket(self): - print(f'>>>>>>超值福利签到') + print(f'🎁 超值福利签到') json_data = { 'channel': 'czflqdlhbxcx' } url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberActLengthy~redPacketActivityService~superWelfare~receiveRedPacket' response = self.do_request(url, data=json_data) - # print(response) if response.get('success') == True: gift_list = response.get('obj', {}).get('giftList', []) if response.get('obj', {}).get('extraGiftList', []): @@ -179,26 +174,25 @@ class RUN: gift_names = ', '.join([gift['giftName'] for gift in gift_list]) receive_status = response.get('obj', {}).get('receiveStatus') status_message = '领取成功' if receive_status == 1 else '已领取过' - Log(f'超值福利签到[{status_message}]: {gift_names}') + Log(f'🎉 超值福利签到[{status_message}]: {gift_names}') else: error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print(f'超值福利签到失败: {error_message}') + print(f'❌ 超值福利签到失败: {error_message}') def get_SignTaskList(self, END=False): - if not END: print(f'>>>开始获取签到任务列表') + if not END: print(f'🎯 开始获取签到任务列表') json_data = { 'channelType': '1', 'deviceId': self.get_deviceId(), } url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskStrategyService~queryPointTaskAndSignFromES' response = self.do_request(url, data=json_data) - # print(response) if response.get('success') == True and response.get('obj') != []: totalPoint = response["obj"]["totalPoint"] if END: - Log(f'当前积分:【{totalPoint}】') + Log(f'💰 当前积分:【{totalPoint}】') return - Log(f'执行前积分:【{totalPoint}】') + Log(f'💰 执行前积分:【{totalPoint}】') for task in response["obj"]["taskTitleLevels"]: self.taskId = task["taskId"] self.taskCode = task["taskCode"] @@ -207,10 +201,10 @@ class RUN: status = task["status"] skip_title = ['用行业模板寄件下单', '去新增一个收件偏好', '参与积分活动'] if status == 3: - print(f'>{self.title}-已完成') + print(f'✨ {self.title}-已完成') continue if self.title in skip_title: - print(f'>{self.title}-跳过') + print(f'⏭️ {self.title}-跳过') continue else: # print("taskId:", taskId) @@ -221,19 +215,19 @@ class RUN: self.receiveTask() def doTask(self): - print(f'>>>开始去完成【{self.title}】任务') + print(f'🎯 开始去完成【{self.title}】任务') json_data = { 'taskCode': self.taskCode, } url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonRoutePost/memberEs/taskRecord/finishTask' response = self.do_request(url, data=json_data) if response.get('success') == True: - print(f'>【{self.title}】任务-已完成') + print(f'✨ 【{self.title}】任务-已完成') else: - print(f'>【{self.title}】任务-{response.get("errorMessage")}') + print(f'❌ 【{self.title}】任务-{response.get("errorMessage")}') def receiveTask(self): - print(f'>>>开始领取【{self.title}】任务奖励') + print(f'🎁 开始领取【{self.title}】任务奖励') json_data = { "strategyId": self.strategyId, "taskId": self.taskId, @@ -243,9 +237,9 @@ class RUN: url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskStrategyService~fetchIntegral' response = self.do_request(url, data=json_data) if response.get('success') == True: - print(f'>【{self.title}】任务奖励领取成功!') + print(f'✨ 【{self.title}】任务奖励领取成功!') else: - print(f'>【{self.title}】任务-{response.get("errorMessage")}') + print(f'❌ 【{self.title}】任务-{response.get("errorMessage")}') def do_honeyTask(self): # 做任务 @@ -289,10 +283,10 @@ class RUN: # 发起领券请求 response = self.do_request(url, data=json_data) if response.get('success') == True: - print(f'> 领券成功!') + # print(f'> 领券成功!') return True # 领取成功 else: - print(f'> 领券失败!原因:{response.get("errorMessage")}') + # print(f'> 领券失败!原因:{response.get("errorMessage")}') return False # 领取失败 @@ -321,20 +315,20 @@ class RUN: # 检查券是否可兑换 if exchange_times_limit >= 1: - print(f'尝试领取:{goods["goodsName"]}') + #print(f'尝试领取:{goods["goodsName"]}') # 尝试领取券 if self.get_coupom(goods): - print('成功领取券,任务结束!') + print('✨ 成功领取券,任务结束!') return # 成功领取后退出 - print('所有券尝试完成,没有可用的券或全部领取失败。') + print('📝 所有券尝试完成,没有可用的券或全部领取失败。') else: print(f'> 获取券列表失败!原因:{response.get("errorMessage")}') def get_honeyTaskListStart(self): - print('>>>开始获取采蜜换大礼任务列表') + print('🍯 开始获取采蜜换大礼任务列表') # 任务列表 json_data = {} self.headers['channel'] = 'wxwdsj' @@ -347,9 +341,7 @@ class RUN: self.taskType = item["taskType"] status = item["status"] if status == 3: - print(f'>【{self.taskType}】-已完成') - if self.taskType == 'BEES_GAME_TASK_TYPE': - self.bee_need_help = False + print(f'✨ 【{self.taskType}】-已完成') continue if "taskCode" in item: self.taskCode = item["taskCode"] @@ -403,7 +395,7 @@ class RUN: print(f'>扩容失败!【{response.get("errorMessage")}】') def honey_indexData(self, END=False): - if not END: print('\n>>>>>>>开始执行采蜜换大礼任务') + if not END: print('\n🍯 开始执行采蜜换大礼任务') # 邀请 random_invite = random.choice([invite for invite in inviteId if invite != self.user_id]) self.headers['channel'] = 'wxwdsj' @@ -413,18 +405,18 @@ class RUN: if response.get('success') == True: usableHoney = response.get('obj').get('usableHoney') if END: - Log(f'当前丰蜜:【{usableHoney}】') + Log(f'🍯 当前丰蜜:【{usableHoney}】') return - Log(f'执行前丰蜜:【{usableHoney}】') + Log(f'🍯 执行前丰蜜:【{usableHoney}】') taskDetail = response.get('obj').get('taskDetail') activityEndTime = response.get('obj').get('activityEndTime', '') activity_end_time = datetime.strptime(activityEndTime, "%Y-%m-%d %H:%M:%S") current_time = datetime.now() if current_time.date() == activity_end_time.date(): - Log("本期活动今日结束,请及时兑换") + Log("⚠️ 本期活动今日结束,请及时兑换") else: - print(f'本期活动结束时间【{activityEndTime}】') + print(f'📅 本期活动结束时间【{activityEndTime}】') if taskDetail != []: for task in taskDetail: @@ -433,7 +425,7 @@ class RUN: time.sleep(2) def EAR_END_2023_TaskList(self): - print('\n>>>>>>开始年终集卡任务') + print('\n🎭 开始年终集卡任务') # 任务列表 json_data = { "activityCode": "YEAREND_2024", @@ -446,14 +438,13 @@ class RUN: url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~activityTaskService~taskList' response = self.do_request(url, data=json_data) - # print(response) if response.get('success') == True: for item in response["obj"]: self.title = item["taskName"] self.taskType = item["taskType"] status = item["status"] if status == 3: - print(f'>【{self.taskType}】-已完成') + print(f'✨ 【{self.taskType}】-已完成') continue if self.taskType == 'INTEGRAL_EXCHANGE': self.EAR_END_2023_ExchangeCard() @@ -466,11 +457,7 @@ class RUN: time.sleep(3) self.EAR_END_2023_receiveTask() else: - print(f'暂时不支持【{self.title}】任务') - # if self.taskType == 'BEES_GAME_TASK_TYPE': - # self.honey_damaoxian() - self.EAR_END_2023_getAward() - #self.EAR_END_2023_GuessIdiom() + print(f'⚠️ 暂时不支持【{self.title}】任务') def addDeliverPrefer(self): print(f'>>>开始【{self.title}】任务') @@ -530,43 +517,6 @@ class RUN: else: print(f'>【{self.title}】任务-{response.get("errorMessage")}') - def EAR_END_2023_getAward(self): - print(f'>>>开始抽卡') - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024WealthCardService~fortuneWealth' - for l in range(10): - for i in range(0, 3): - json_data = {} - response = self.do_request(url, data=json_data) - # print(response) - if response.get('success') == True: - receivedAccountList = response['obj']['receivedAccountList'] - for card in receivedAccountList: - print(f'>获得:【{card["currency"]}】卡【{card["amount"]}】张!') - elif response.get('errorMessage') == '达到限流阈值,请稍后重试': - break - elif response.get('errorMessage') == '用户信息失效,请退出重新进入': - break - else: - print(f'>抽卡失败:{response.get("errorMessage")}') - break - time.sleep(3) - - def EAR_END_2023_GuessIdiom(self): - print(f'>>>开始猜成语') - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024GuessIdiomService~win' - for i in range(1, 11): - json_data = { - "index": i - } - response = self.do_request(url, data=json_data) - if response.get('success') == True: - print(f'第{i}关成功!') - # receivedAccountList = response['obj']['receivedAccountList'] - # for card in receivedAccountList: - # print(f'>获得:【{card["urrency"]}】卡【{card["amount"]}】张!') - else: - print(f'第{i}关失败!') - def EAR_END_2023_receiveTask(self): print(f'>>>开始领取【{self.title}】任务奖励') json_data = { @@ -813,7 +763,7 @@ class RUN: break else: error_message = response['errorMessage'] or json.dumps(response) or '无返回' - print(f'查询话题PK赛记录失败: {error_message}') + print(f'📝 查询话题PK赛记录失败: {error_message}') except Exception as e: print(e) @@ -823,7 +773,7 @@ class RUN: try: if not response or not response.get('success'): error_message = response['errorMessage'] or json.dumps(response) or '无返回' - print(f'查询账户状态失败: {error_message}') + print(f'📝 查询账户状态失败: {error_message}') except Exception as e: print(e) @@ -841,12 +791,12 @@ class RUN: currency_dto_list = result.get('obj', {}).get('currencyDTOList', []) if currency_dto_list: rewards = [f"[{currency['currency']}]{currency['amount']}次" for currency in currency_dto_list] - print(f'话题PK赛第{index}个话题选择成功: {", ".join(rewards)}') + print(f'🎭 话题PK赛第{index}个话题选择成功: {", ".join(rewards)}') else: - print(f'话题PK赛第{index}个话题选择成功') + print(f'🎭 话题PK赛第{index}个话题选择成功') else: error_message = result.get('errorMessage') if result else '无返回' - print(f'话题PK赛第{index}个话题失败: {error_message}') + print(f'📝 话题PK赛第{index}个话题失败: {error_message}') if error_message and '系统繁忙' in error_message: success = False @@ -863,15 +813,15 @@ class RUN: today_titles = [title for title in guess_title_info_list if title['gameDate'] == self.today] for title_info in today_titles: if title_info['answerStatus']: - print('今日已回答过竞猜') + print('📝 今日已回答过竞猜') else: answer = self.answer if answer: self.anniversary2024_answer(title_info, answer) - print(f'进行了答题: {answer}') + print(f'📝 进行了答题: {answer}') else: error_message = response.get('errorMessage') if response else '无返回' - print(f'查询每日口令竞猜失败: {error_message}') + print(f'📝 查询每日口令竞猜失败: {error_message}') def anniversary2024_titleList_award(self): url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024GuessService~titleList' @@ -886,12 +836,12 @@ class RUN: if award_info['answerStatus']: awards = award_info.get('awardList', []) + award_info.get('puzzleList', []) awards_description = ', '.join([f"{award['productName']}" for award in awards]) - print(f'口令竞猜奖励: {awards_description}' if awards_description else '今日无奖励') + print(f'🎁 口令竞猜奖励: {awards_description}' if awards_description else '📝 今日无奖励') else: - print('今日还没回答竞猜') + print('📝 今日还没回答竞猜') else: error_message = response.get('errorMessage') if response else '无返回' - print(f'查询每日口令竞猜奖励失败: {error_message}') + print(f'📝 查询每日口令竞猜奖励失败: {error_message}') # 向API发送答题请求 def anniversary2024_answer(self, answer_info): @@ -899,11 +849,11 @@ class RUN: data = {'period': answer_info['period'], 'answerInfo': answer_info} response = self.do_request(url, data) if response and response.get('success'): - print('口令竞猜回答成功') + print('📝 口令竞猜回答成功') self.anniversary2024_titleList_award() # 通过奖励接口验证答案 else: error_message = response.get('errorMessage') if response else '无返回' - print(f'口令竞猜回答失败: {error_message}') + print(f'📝 口令竞猜回答失败: {error_message}') # 查询账户状态 def anniversary2024_queryAccountStatus(self): @@ -921,7 +871,7 @@ class RUN: # unbox_chance_balance -= 1 else: error_message = result.get('errorMessage') or json.dumps(result) or '无返回' - print('查询已收集拼图失败: ' + error_message) + print('📝 查询已收集拼图失败: ' + error_message) result = self.do_request(url) if result.get('success'): @@ -949,14 +899,14 @@ class RUN: self.cards[currency_key] = int(card.get('balance')) card_info.append('[' + card.get('currency') + ']X' + str(card.get('balance'))) - Log(f'已收集拼图: {card_info}') + Log(f'📝 已收集拼图: {card_info}') cards_li.sort(key=lambda x: x.get('balance'), reverse=True) else: - print('还没有收集到拼图') + print('📝 还没有收集到拼图') else: error_message = result.get('errorMessage') or json.dumps(result) or '无返回' - print('查询已收集拼图失败: ' + error_message) + print('📝 查询已收集拼图失败: ' + error_message) def do_draw(self, cards): url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024CardService~collectDrawAward' @@ -965,11 +915,11 @@ class RUN: if response and response.get('success'): data = response.get('obj', {}) productName = data.get('productName', '') - Log(f'抽奖成功,获得{productName}') + Log(f'🎁 抽奖成功,获得{productName}') return True else: error_message = response.get('errorMessage') if response else '无返回' - print(f'抽奖失败: {error_message}') + print(f'📝 抽奖失败: {error_message}') return False def convert_common_card(self, cards, target_card): @@ -994,7 +944,7 @@ class RUN: if len(drawn_cards) == n: break if len(drawn_cards) == n: - "没有足够的卡进行抽奖" + "📝 没有足够的卡进行抽奖" if self.do_draw(drawn_cards): return drawn_cards # 返回本次抽奖使用的卡 else: @@ -1003,22 +953,22 @@ class RUN: def simulate_lottery(self, cards): while self.can_draw(cards, 9): used_cards = self.draw(cards, 9) - print("进行了一次9卡抽奖,消耗卡片: ", used_cards) + print("🎁 进行了一次9卡抽奖,消耗卡片: ", used_cards) while self.can_draw(cards, 7) or self.convert_common_card(cards, 'CARD_1'): if not self.can_draw(cards, 7): continue used_cards = self.draw(cards, 7) - print("进行了一次7卡抽奖,消耗卡片: ", used_cards) + print("🎁 进行了一次7卡抽奖,消耗卡片: ", used_cards) while self.can_draw(cards, 5) or self.convert_common_card(cards, 'CARD_1'): if not self.can_draw(cards, 5): continue used_cards = self.draw(cards, 5) - print("进行了一次5卡抽奖,消耗卡片: ", used_cards) + print("🎁 进行了一次5卡抽奖,消耗卡片: ", used_cards) while self.can_draw(cards, 3) or self.convert_common_card(cards, 'CARD_1'): if not self.can_draw(cards, 3): continue used_cards = self.draw(cards, 3) - print("进行了一次3卡抽奖,消耗卡片: ", used_cards) + print("🎁 进行了一次3卡抽奖,消耗卡片: ", used_cards) def anniversary2024_task(self): self.anniversary2024_weekly_gift_status() @@ -1031,13 +981,13 @@ class RUN: target_time = datetime(2025, 4, 3, 14, 0) # self.simulate_lottery(self.cards) if datetime.now() > target_time: - print('周年庆活动即将结束,开始自动抽奖') + print('📅 周年庆活动即将结束,开始自动抽奖') self.simulate_lottery(self.cards) else: - print('未到自动抽奖时间') + print('📅 未到自动抽奖时间') def member_day_index(self): - print('====== 会员日活动 ======') + print('🎭 会员日活动') try: invite_user_id = random.choice([invite for invite in inviteId if invite != self.user_id]) payload = {'inviteUserId': invite_user_id} @@ -1050,7 +1000,7 @@ class RUN: if can_receive_invite_award: self.member_day_receive_invite_award(invite_user_id) self.member_day_red_packet_status() - Log(f'会员日可以抽奖{lottery_num}次') + Log(f'🎁 会员日可以抽奖{lottery_num}次') for _ in range(lottery_num): self.member_day_lottery() if self.member_day_black: @@ -1061,10 +1011,10 @@ class RUN: self.member_day_red_packet_status() else: error_message = response.get('errorMessage', '无返回') - Log(f'查询会员日失败: {error_message}') + Log(f'📝 查询会员日失败: {error_message}') if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1077,13 +1027,13 @@ class RUN: response = self.do_request(url, payload) if response.get('success'): product_name = response.get('obj', {}).get('productName', '空气') - Log(f'会员日奖励: {product_name}') + Log(f'🎁 会员日奖励: {product_name}') else: error_message = response.get('errorMessage', '无返回') - Log(f'领取会员日奖励失败: {error_message}') + Log(f'📝 领取会员日奖励失败: {error_message}') if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1095,13 +1045,13 @@ class RUN: response = self.do_request(url, payload) if response.get('success'): product_name = response.get('obj', {}).get('productName', '空气') - Log(f'会员日抽奖: {product_name}') + Log(f'🎁 会员日抽奖: {product_name}') else: error_message = response.get('errorMessage', '无返回') - Log(f'会员日抽奖失败: {error_message}') + Log(f'📝 会员日抽奖失败: {error_message}') if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1133,10 +1083,10 @@ class RUN: self.member_day_finish_task(task) else: error_message = response.get('errorMessage', '无返回') - Log('查询会员日任务失败: ' + error_message) + Log('📝 查询会员日任务失败: ' + error_message) if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1148,14 +1098,14 @@ class RUN: response = self.do_request(url, payload) if response.get('success'): - Log('完成会员日任务[' + task['taskName'] + ']成功') + Log('📝 完成会员日任务[' + task['taskName'] + ']成功') self.member_day_fetch_mix_task_reward(task) else: error_message = response.get('errorMessage', '无返回') - Log('完成会员日任务[' + task['taskName'] + ']失败: ' + error_message) + Log('📝 完成会员日任务[' + task['taskName'] + ']失败: ' + error_message) if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1167,13 +1117,13 @@ class RUN: response = self.do_request(url, payload) if response.get('success'): - Log('领取会员日任务[' + task['taskName'] + ']奖励成功') + Log('🎁 领取会员日任务[' + task['taskName'] + ']奖励成功') else: error_message = response.get('errorMessage', '无返回') - Log('领取会员日任务[' + task['taskName'] + ']奖励失败: ' + error_message) + Log('📝 领取会员日任务[' + task['taskName'] + ']奖励失败: ' + error_message) if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1184,13 +1134,13 @@ class RUN: response = self.do_request(url, payload) if response.get('success'): - print(f'会员日领取{hour}点红包成功') + print(f'🎁 会员日领取{hour}点红包成功') else: error_message = response.get('errorMessage', '无返回') - print(f'会员日领取{hour}点红包失败: {error_message}') + print(f'📝 会员日领取{hour}点红包失败: {error_message}') if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1220,21 +1170,21 @@ class RUN: if int_level < self.max_level: remaining_needed += 1 << (int_level - 1) - Log("会员日合成列表: " + ", ".join(packet_summary)) + Log("📝 会员日合成列表: " + ", ".join(packet_summary)) if self.member_day_red_packet_map.get(self.max_level): - Log(f"会员日已拥有[{self.max_level}级]红包X{self.member_day_red_packet_map[self.max_level]}") + Log(f"🎁 会员日已拥有[{self.max_level}级]红包X{self.member_day_red_packet_map[self.max_level]}") self.member_day_red_packet_draw(self.max_level) else: remaining = self.packet_threshold - remaining_needed - Log(f"会员日距离[{self.max_level}级]红包还差: [1级]红包X{remaining}") + Log(f"📝 会员日距离[{self.max_level}级]红包还差: [1级]红包X{remaining}") else: error_message = response.get('errorMessage', '无返回') - Log(f'查询会员日合成失败: {error_message}') + Log(f'📝 查询会员日合成失败: {error_message}') if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1247,17 +1197,17 @@ class RUN: response = self.do_request(url, payload) if response.get('success'): - Log(f'会员日合成: [{level}级]红包X2 -> [{level + 1}级]红包') + Log(f'🎁 会员日合成: [{level}级]红包X2 -> [{level + 1}级]红包') self.member_day_red_packet_map[level] -= 2 if not self.member_day_red_packet_map.get(level + 1): self.member_day_red_packet_map[level + 1] = 0 self.member_day_red_packet_map[level + 1] += 1 else: error_message = response.get('errorMessage', '无返回') - Log(f'会员日合成两个[{level}级]红包失败: {error_message}') + Log(f'📝 会员日合成两个[{level}级]红包失败: {error_message}') if '没有资格参与活动' in error_message: self.member_day_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1269,18 +1219,18 @@ class RUN: if response and response.get('success'): coupon_names = [item['couponName'] for item in response.get('obj', [])] or [] - Log(f"会员日提取[{level}级]红包: {', '.join(coupon_names) or '空气'}") + Log(f"🎁 会员日提取[{level}级]红包: {', '.join(coupon_names) or '空气'}") else: error_message = response.get('errorMessage') if response else "无返回" - Log(f"会员日提取[{level}级]红包失败: {error_message}") + Log(f"📝 会员日提取[{level}级]红包失败: {error_message}") if "没有资格参与活动" in error_message: self.memberDay_black = True - print("会员日任务风控") + print("📝 会员日任务风控") except Exception as e: print(e) def DRAGONBOAT_2024_index(self): - print('====== 查询财神活动状态 ======') + print('📝 查询财神活动状态') invite_user_id = random.choice([invite for invite in inviteId if invite != self.user_id]) try: self.headers['channel'] = '24nzdb' @@ -1300,23 +1250,23 @@ class RUN: # 比较当前时间是否小于比较时间 is_less_than = datetime.now() < comparison_time if is_less_than: - print('推财神进行中....') + print('📝 推财神进行中....') return True else: - print('推财神活动已结束') + print('📝 推财神活动已结束') return False else: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') return False except Exception as e: print(e) return False def DRAGONBOAT_2024_Game_indexInfo(self): - Log('====== 开始推财神游戏 ======') + Log('🎭 开始推财神游戏') try: payload = {} url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024GameService~indexInfo' @@ -1336,14 +1286,14 @@ class RUN: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') return False except Exception as e: print(e) return False def DRAGONBOAT_2024_Game_init(self): - Log('====== 开始推财神游戏 ======') + Log('🎭 开始推财神游戏') try: payload = {} url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024GameService~init' @@ -1363,14 +1313,14 @@ class RUN: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') return False except Exception as e: print(e) return False def DRAGONBOAT_2024_weeklyGiftStatus(self): - print('====== 查询每周礼包领取状态 ======') + print('📝 查询每周礼包领取状态') try: payload = {} url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024IndexService~weeklyGiftStatus' @@ -1383,21 +1333,21 @@ class RUN: received = gift['received'] receiveStartTime = gift['receiveStartTime'] receiveEndTime = gift['receiveEndTime'] - print(f'>>> 领取时间:【{receiveStartTime} 至 {receiveEndTime}】') + print(f'📝 领取时间:【{receiveStartTime} 至 {receiveEndTime}】') if received: - print('> 该礼包已领取') + print('📝 该礼包已领取') continue receive_start_time = datetime.strptime(receiveStartTime, "%Y-%m-%d %H:%M:%S") receive_end_time = datetime.strptime(receiveEndTime, "%Y-%m-%d %H:%M:%S") is_within_range = receive_start_time <= datetime.now() <= receive_end_time if is_within_range: - print(f'>> 开始领取礼包:') + print(f'🎁 开始领取礼包:') self.DRAGONBOAT_2024_receiveWeeklyGift() else: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1412,22 +1362,22 @@ class RUN: if response.get('success'): obj = response.get('obj', [{}]) if obj == [{}]: - print('> 领取失败') + print('📝 领取失败') return False for gifts in obj: productName = gifts['productName'] amount = gifts['amount'] - print(f'> 领取【{productName} x {amount}】成功') + print(f'🎁 领取【{productName} x {amount}】成功') else: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) def DRAGONBOAT_2024_taskList(self): - print('====== 查询推币任务列表 ======') + print('📝 查询推币任务列表') try: payload = { "activityCode": "DRAGONBOAT_2024", @@ -1444,7 +1394,7 @@ class RUN: self.taskName = task['taskName'] status = task['status'] if status == 3: - Log(f'> 任务【{self.taskName}】已完成') + Log(f'📝 任务【{self.taskName}】已完成') continue self.taskCode = task.get('taskCode', None) if self.taskCode: @@ -1455,12 +1405,12 @@ class RUN: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) def DRAGONBOAT_2024_coinStatus(self, END=False): - Log('====== 查询金币信息 ======') + Log('📝 查询金币信息') # try: payload = {} url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024CoinService~coinStatus' @@ -1488,29 +1438,29 @@ class RUN: if END: if PUSH_TIMES_balance > 0: for i in range(PUSH_TIMES_balance): - print(f'>> 开始第【{PUSH_TIMES_balance + 1}】次推币') + print(f'📝 开始第【{PUSH_TIMES_balance + 1}】次推币') self.DRAGONBOAT_2024_pushCoin() PUSH_TIMES -= 1 pushedTimesToday += 1 pushedTimesTotal += 1 - Log(f'> 剩余推币次数:【{PUSH_TIMES}】') - Log(f'> 当前金币:【{self.COIN_balance}】') + Log(f'📝 剩余推币次数:【{PUSH_TIMES}】') + Log(f'📝 当前金币:【{self.COIN_balance}】') # Log(f'> 当前发财卡:【{WELFARE_CARD_balance}】') - Log(f'> 今日推币:【{pushedTimesToday}】次') - Log(f'> 总推币:【{pushedTimesTotal}】次') + Log(f'📝 今日推币:【{pushedTimesToday}】次') + Log(f'📝 总推币:【{pushedTimesTotal}】次') else: - print(f'> 剩余推币次数:【{PUSH_TIMES_balance}】') - print(f'> 当前金币:【{self.COIN_balance}】') + print(f'📝 剩余推币次数:【{PUSH_TIMES_balance}】') + print(f'📝 当前金币:【{self.COIN_balance}】') # Log(f'> 当前发财卡:【{WELFARE_CARD_balance}】') - print(f'> 今日推币:【{pushedTimesToday}】次') - print(f'> 总推币:【{pushedTimesTotal}】次') + print(f'📝 今日推币:【{pushedTimesToday}】次') + print(f'📝 总推币:【{pushedTimesTotal}】次') self.DRAGONBOAT_2024_givePushTimes() else: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') # except Exception as e: # print(e) @@ -1525,18 +1475,18 @@ class RUN: obj = response.get('obj', [{}]) drawAward = obj.get('drawAward', '') self.COIN_balance += drawAward - print(f'> 获得:【{drawAward}】金币') + print(f'📝 获得:【{drawAward}】金币') else: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) def DRAGONBOAT_2024_givePushTimes(self): - Log('====== 领取赠送推币次数 ======') + Log('🎁 领取赠送推币次数') try: url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024CoinService~givePushTimes' @@ -1544,12 +1494,12 @@ class RUN: # print(response) if response.get('success'): obj = response.get('obj', 0) - print(f'> 获得:【{obj}】次推币机会') + print(f'🎁 获得:【{obj}】次推币机会') else: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('> 会员日任务风控') + Log('📝 会员日任务风控') print(error_message) except Exception as e: print(e) @@ -1565,12 +1515,12 @@ class RUN: # print(response) if response.get('success'): obj = response.get('obj', False) - Log(f'> 完成任务【{self.taskName}】成功') + Log(f'📝 完成任务【{self.taskName}】成功') else: error_message = response.get('errorMessage', '无返回') if '没有资格参与活动' in error_message: self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') + Log('📝 会员日任务风控') except Exception as e: print(e) @@ -1607,10 +1557,13 @@ class RUN: def main(self): global one_msg - wait_time = random.randint(1000, 3000) / 1000.0 # 转换为秒 - time.sleep(wait_time) # 等待 + wait_time = random.randint(1000, 3000) / 1000.0 + time.sleep(wait_time) one_msg = '' if not self.login_res: return False + + print('\n' + '='*30 + '🚚 顺丰速运 开始执行 🚚' + '='*30 + '\n') + # 执行签到任务 self.sign() self.superWelfare_receiveRedPacket() @@ -1618,34 +1571,24 @@ class RUN: self.get_SignTaskList(True) # 执行丰蜜任务 - # 获取任务列表并执行任务 self.get_honeyTaskListStart() self.honey_indexData() self.honey_indexData(True) - if self.DRAGONBOAT_2024_index(): - self.DRAGONBOAT_2024_weeklyGiftStatus() - self.DRAGONBOAT_2024_coinStatus() - self.DRAGONBOAT_2024_taskList() - self.DRAGONBOAT_2024_Game_init() - self.DRAGONBOAT_2024_coinStatus(True) - target_time = datetime(2025, 4, 8, 19, 0) if datetime.now() < target_time: self.EAR_END_2023_TaskList() #self.anniversary2024_task() else: - print('周年庆活动已结束') + print('🎭 周年庆活动已结束') current_date = datetime.now().day if 26 <= current_date <= 28: self.member_day_index() else: - print('未到指定时间不执行会员日任务') - - - # 在所有任务执行完后、发送消息前显示财神卡信息 - self.YEAEND_2024_wealthStatus() + print('⏰ 未到指定时间不执行会员日任务') + + print('\n' + '='*30 + '🚚 顺丰速运 执行完毕 🚚' + '='*30 + '\n') self.sendMsg() return True @@ -1654,52 +1597,6 @@ class RUN: #send("顺丰-通知", one_msg) pass - def YEAEND_2024_wealthStatus(self): - Log('====== 查询财神卡信息 ======') - # try: - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024WealthCardService~wealthStatus' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', None) - if obj == None: - return False - currentAccountList = obj.get('currentAccountList', []) - totalFortuneTimes = obj.get('totalFortuneTimes', '') - self.middle_balance = 0 - self.east_balance = 0 - self.west_balance = 0 - self.south_balance = 0 - self.north_balance = 0 - self.wealth_balance = 0 - for li in currentAccountList: - if li['currency'] == 'MIDDLE_WEALTH': - self.middle_balance = li['balance'] - if li['currency'] == 'EAST_WEALTH': - self.east_balance = li['balance'] - if li['currency'] == 'WEST_WEALTH': - self.west_balance = li['balance'] - if li['currency'] == 'SOUTH_WEALTH': - self.south_balance = li['balance'] - if li['currency'] == 'NORTH_WEALTH': - self.north_balance = li['balance'] - if li['currency'] == 'WEALTH_CHANCE': - self.wealth_balance = li['balance'] - - print(f'> 剩余招财神次数:【{self.wealth_balance}】次') - print(f'> 当前东路财神卡:【{self.east_balance}】张') - print(f'> 当前西路财神卡:【{self.west_balance}】张') - print(f'> 当前南路财神卡:【{self.south_balance}】张') - print(f'> 当前北路财神卡:【{self.north_balance}】张') - print(f'> 当前中路财神卡:【{self.middle_balance}】张') - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.MIDAUTUMN_2024_black = True - Log('会员日任务风控') - def get_quarter_end_date(): current_date = datetime.now() current_month = current_date.month @@ -1760,13 +1657,13 @@ if __name__ == '__main__': ENV_NAME = 'sfsyUrl' CK_NAME = 'url' local_script_name = os.path.basename(__file__) - local_version = '2025.01.06' + local_version = '2025.01.24' token = os.getenv(ENV_NAME) # 将分隔符从\n改为& tokens = token.split('&') # print(tokens) if len(tokens) > 0: - print(f">>>>>>>>>>共获取到{len(tokens)}个账号<<<<<<<<<<") + print(f"\n{'='*30} 🚚 共获取到{len(tokens)}个账号 🚚 {'='*30}\n") for index, infos in enumerate(tokens): run_result = RUN(infos, index).main() if not run_result: continue