diff --git a/品赞代理签到.py b/品赞代理签到.py deleted file mode 100644 index 43a7622..0000000 --- a/品赞代理签到.py +++ /dev/null @@ -1,20 +0,0 @@ -#品赞代理IP签到脚本 -#账号变量:pzhttp -#多账号分割:账号#密码&账号2#密码2 -#【重要提示】 -#推荐代理注册:https://www.ipzan.com?pid=g587ksmm -#Powered By:expansion -#By:AI大模型供应商:api.expansion.chat(全模型API调用) - -Check_Value = '26410640403248834883103781003745' -''' -本工具仅用于学习 Python 加密与逆向工程技术,供研究和教学用途。 -请勿将其用于任何非法用途,包括但不限于: 加密恶意脚本 | 逃避安全审计 | 攻击他人系统 | 商业软件加壳绕过 -任何使用本工具所造成的直接或间接后果,包括但不限于法律责任、安全问题、数据损失,均由使用者自行承担,作者不对此承担任何责任。 -如果您不同意此免责声明,请立即停止使用并删除本工具。 -Create at [2025-08-06 22:05:28] -EncryptTools(1.21Beta) | Developed by Huaji -''' - -import zlib,base64,zlib,lzma,bz2,gzip -exec((lambda O0O0O0O0O00O0O00O0O0O0O0O0O00O0O0O00O0O0O0O0O0O0O0O00O0O00O00O00O0O00O00O00O0O00O0O00O0O0O00O0O0O00O0O00O00O0O0O0O0O0O00O0O00O00O0O0O00O0O0O00O0O00O0O00O0O0O00O00O0O00O0O00O00O0O0O0O00O00O0O0O0O0O0O0O00O00O00O0O00O0O00O0O0O00O0O0O0O0O00O0O00:compile(O0O0O0O0O00O0O00O0O0O0O0O0O00O0O0O00O0O0O0O0O0O0O0O00O0O00O00O00O0O00O00O00O0O00O0O00O0O0O00O0O0O00O0O00O00O0O0O0O0O0O00O0O00O00O0O0O00O0O0O00O0O00O0O00O0O0O00O00O0O00O0O00O00O0O0O0O00O00O0O0O0O0O0O0O00O00O00O0O00O0O00O0O0O00O0O0O0O0O00O0O00,(lambda s:zlib.decompress(base64.b64decode(s)).decode())('eJyzKS4pysxLtwMADfkDEg=='),(lambda s:zlib.decompress(base64.b64decode(s)).decode())('eJxLrUhNBgAELQGm')))(zlib.decompress(lzma.decompress(bz2.decompress(gzip.decompress(base64.b64decode((lambda s:zlib.decompress(base64.b64decode(s)).decode())('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')))))).decode())) \ No newline at end of file diff --git a/顺丰速运.py b/顺丰速运.py deleted file mode 100644 index a675729..0000000 --- a/顺丰速运.py +++ /dev/null @@ -1,1772 +0,0 @@ -#2025/1/6 遍历生活特权所有分组的券进行领券,券没啥用但完成可领取30点丰蜜目前一天拉满155点 -#变量名:sfsyUrl -#格式:多账号用&分割或创建多个变量sfsyUrl -#关于参数获取如下两种方式: -#❶顺丰APP绑定微信后,前往该站点sm.linzixuan.work用微信扫码登录后,选择复制编码Token,不要复制错 -#或者 -#❷打开小程序或APP-我的-积分, 手动抓包以下几种URL之一 -#https://mcs-mimp-web.sf-express.com/mcs-mimp/share/weChat/shareGiftReceiveRedirect -#https://mcs-mimp-web.sf-express.com/mcs-mimp/share/app/shareRedirect -#抓好URL后访问https://www.toolhelper.cn/EncodeDecode/Url进行编码,请务必按提示操作 -import hashlib -import json -import os -import random -import time -from datetime import datetime, timedelta -from sys import exit -import requests -from requests.packages.urllib3.exceptions import InsecureRequestWarning -from urllib.parse import unquote - -# 禁用安全请求警告 -requests.packages.urllib3.disable_warnings(InsecureRequestWarning) - -IS_DEV = False -if os.path.isfile('DEV_ENV.py'): - import DEV_ENV - - IS_DEV = True - - -#from notify import send - -send_msg = '' -one_msg = '' - - -def Log(cont=''): - global send_msg, one_msg - print(cont) - if cont: - one_msg += f'{cont}\n' - send_msg += f'{cont}\n' - - -inviteId = [''] - - -class RUN: - def __init__(self, info, index): - global one_msg - one_msg = '' - split_info = info.split('@') - url = split_info[0] - len_split_info = len(split_info) - last_info = split_info[len_split_info - 1] - self.send_UID = None - if len_split_info > 0 and "UID_" in last_info: - self.send_UID = last_info - self.index = index + 1 - Log(f"\n---------开始执行第{self.index}个账号>>>>>") - self.s = requests.session() - self.s.verify = False - self.headers = { - 'Host': 'mcs-mimp-web.sf-express.com', - 'upgrade-insecure-requests': '1', - 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090551) XWEB/6945 Flue', - 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', - 'sec-fetch-site': 'none', - 'sec-fetch-mode': 'navigate', - 'sec-fetch-user': '?1', - 'sec-fetch-dest': 'document', - 'accept-language': 'zh-CN,zh', - 'platform': 'MINI_PROGRAM', - - } - self.anniversary_black = False - self.member_day_black = False - self.member_day_red_packet_drew_today = False - self.member_day_red_packet_map = {} - self.login_res = self.login(url) - self.today = datetime.now().strftime('%Y-%m-%d') - # self.answer = APP_INFO.get('ANSWER', []).get(self.today, False) - self.max_level = 8 - self.packet_threshold = 1 << (self.max_level - 1) - - def get_deviceId(self, characters='abcdef0123456789'): - result = '' - for char in 'xxxxxxxx-xxxx-xxxx': - if char == 'x': - result += random.choice(characters) - elif char == 'X': - result += random.choice(characters).upper() - else: - result += char - return result - - 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}】登陆成功') - return True - else: - Log(f'获取用户信息失败') - return False - except Exception as e: - Log(f'登录异常: {str(e)}') - return False - - def getSign(self): - timestamp = str(int(round(time.time() * 1000))) - token = 'wwesldfs29aniversaryvdld29' - sysCode = 'MCS-MIMP-CORE' - data = f'token={token}×tamp={timestamp}&sysCode={sysCode}' - signature = hashlib.md5(data.encode()).hexdigest() - data = { - 'sysCode': sysCode, - 'timestamp': timestamp, - 'signature': signature - } - self.headers.update(data) - return data - - def do_request(self, url, data={}, req_type='post'): - self.getSign() - try: - if req_type.lower() == 'get': - response = self.s.get(url, headers=self.headers) - elif req_type.lower() == 'post': - response = self.s.post(url, headers=self.headers, json=data) - else: - raise ValueError('Invalid req_type: %s' % req_type) - res = response.json() - return res - except requests.exceptions.RequestException as e: - print('Request failed:', e) - return None - except json.JSONDecodeError as e: - print('JSON decoding failed:', e) - return None - - def sign(self): - 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}】天') - else: - Log(f'今日已签到,本周累计签到【{count_day + 1}】天') - else: - print(f'签到失败!原因:{response.get("errorMessage")}') - - def superWelfare_receiveRedPacket(self): - 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', []): - gift_list.extend(response['obj']['extraGiftList']) - 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}') - else: - error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print(f'超值福利签到失败: {error_message}') - - def get_SignTaskList(self, END=False): - 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}】') - return - Log(f'执行前积分:【{totalPoint}】') - for task in response["obj"]["taskTitleLevels"]: - self.taskId = task["taskId"] - self.taskCode = task["taskCode"] - self.strategyId = task["strategyId"] - self.title = task["title"] - status = task["status"] - skip_title = ['用行业模板寄件下单', '去新增一个收件偏好', '参与积分活动'] - if status == 3: - print(f'>{self.title}-已完成') - continue - if self.title in skip_title: - print(f'>{self.title}-跳过') - continue - else: - # print("taskId:", taskId) - # print("taskCode:", taskCode) - # print("----------------------") - self.doTask() - time.sleep(3) - self.receiveTask() - - def doTask(self): - 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}】任务-已完成') - else: - print(f'>【{self.title}】任务-{response.get("errorMessage")}') - - def receiveTask(self): - print(f'>>>开始领取【{self.title}】任务奖励') - json_data = { - "strategyId": self.strategyId, - "taskId": self.taskId, - "taskCode": self.taskCode, - "deviceId": self.get_deviceId() - } - 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}】任务奖励领取成功!') - else: - print(f'>【{self.title}】任务-{response.get("errorMessage")}') - - def do_honeyTask(self): - # 做任务 - json_data = {"taskCode": self.taskCode} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberEs~taskRecord~finishTask' - response = self.do_request(url, data=json_data) - if response.get('success') == True: - print(f'>【{self.taskType}】任务-已完成') - else: - print(f'>【{self.taskType}】任务-{response.get("errorMessage")}') - - def receive_honeyTask(self): - print('>>>执行收取丰蜜任务') - # 收取 - self.headers['syscode'] = 'MCS-MIMP-CORE' - self.headers['channel'] = 'wxwdsj' - self.headers['accept'] = 'application/json, text/plain, */*' - self.headers['content-type'] = 'application/json;charset=UTF-8' - self.headers['platform'] = 'MINI_PROGRAM' - json_data = {"taskType": self.taskType} - # print(json_data) - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeIndexService~receiveHoney' - response = self.do_request(url, data=json_data) - if response.get('success') == True: - print(f'收取任务【{self.taskType}】成功!') - else: - print(f'收取任务【{self.taskType}】失败!原因:{response.get("errorMessage")}') - - - def get_coupom(self, goods): - # 请求参数 - json_data = { - "from": "Point_Mall", - "orderSource": "POINT_MALL_EXCHANGE", - "goodsNo": goods['goodsNo'], - "quantity": 1, - "taskCode": self.taskCode - } - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberGoods~pointMallService~createOrder' - - # 发起领券请求 - response = self.do_request(url, data=json_data) - if response.get('success') == True: - print(f'> 领券成功!') - return True # 领取成功 - else: - print(f'> 领券失败!原因:{response.get("errorMessage")}') - return False # 领取失败 - - - def get_coupom_list(self): - # 请求参数 - json_data = { - "memGrade": 2, - "categoryCode": "SHTQ", - "showCode": "SHTQWNTJ" - } - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberGoods~mallGoodsLifeService~list' - - # 发起获取券列表请求 - response = self.do_request(url, data=json_data) - - if response.get('success') == True: - # 遍历所有分组的券列表 - all_goods = [] - for obj in response.get("obj", []): # 遍历所有券分组 - goods_list = obj.get("goodsList", []) - all_goods.extend(goods_list) # 收集到一个总列表中 - - # 尝试领取 - for goods in all_goods: - exchange_times_limit = goods.get('exchangeTimesLimit', 0) - - # 检查券是否可兑换 - if exchange_times_limit >= 1: - print(f'尝试领取:{goods["goodsName"]}') - - # 尝试领取券 - if self.get_coupom(goods): - print('成功领取券,任务结束!') - return # 成功领取后退出 - print('所有券尝试完成,没有可用的券或全部领取失败。') - else: - print(f'> 获取券列表失败!原因:{response.get("errorMessage")}') - - - - def get_honeyTaskListStart(self): - print('>>>开始获取采蜜换大礼任务列表') - # 任务列表 - json_data = {} - self.headers['channel'] = 'wxwdsj' - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeIndexService~taskDetail' - - response = self.do_request(url, data=json_data) - # print(response) - if response.get('success') == True: - for item in response["obj"]["list"]: - 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 - continue - if "taskCode" in item: - self.taskCode = item["taskCode"] - if self.taskType == 'DAILY_VIP_TASK_TYPE': - self.get_coupom_list() - else: - self.do_honeyTask() - if self.taskType == 'BEES_GAME_TASK_TYPE': - self.honey_damaoxian() - time.sleep(2) - - def honey_damaoxian(self): - print('>>>执行大冒险任务') - # 大冒险 - gameNum = 5 - for i in range(1, gameNum): - json_data = { - 'gatherHoney': 20, - } - if gameNum < 0: break - print(f'>>开始第{i}次大冒险') - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeGameService~gameReport' - response = self.do_request(url, data=json_data) - # print(response) - stu = response.get('success') - if stu: - gameNum = response.get('obj')['gameNum'] - print(f'>大冒险成功!剩余次数【{gameNum}】') - time.sleep(2) - gameNum -= 1 - elif response.get("errorMessage") == '容量不足': - print(f'> 需要扩容') - self.honey_expand() - else: - print(f'>大冒险失败!【{response.get("errorMessage")}】') - break - - def honey_expand(self): - print('>>>容器扩容') - # 大冒险 - gameNum = 5 - - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeIndexService~expand' - response = self.do_request(url, data={}) - # print(response) - stu = response.get('success', False) - if stu: - obj = response.get('obj') - print(f'>成功扩容【{obj}】容量') - else: - print(f'>扩容失败!【{response.get("errorMessage")}】') - - def honey_indexData(self, END=False): - if not END: print('\n>>>>>>>开始执行采蜜换大礼任务') - # 邀请 - random_invite = random.choice([invite for invite in inviteId if invite != self.user_id]) - self.headers['channel'] = 'wxwdsj' - json_data = {"inviteUserId": random_invite} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeIndexService~indexData' - response = self.do_request(url, data=json_data) - if response.get('success') == True: - usableHoney = response.get('obj').get('usableHoney') - if END: - Log(f'当前丰蜜:【{usableHoney}】') - return - 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("本期活动今日结束,请及时兑换") - else: - print(f'本期活动结束时间【{activityEndTime}】') - - if taskDetail != []: - for task in taskDetail: - self.taskType = task['type'] - self.receive_honeyTask() - time.sleep(2) - - def EAR_END_2023_TaskList(self): - print('\n>>>>>>开始年终集卡任务') - # 任务列表 - json_data = { - "activityCode": "YEAREND_2024", - "channelType": "MINI_PROGRAM" - } - self.headers['channel'] = '24nzdb' - self.headers['platform'] = 'MINI_PROGRAM' - self.headers['syscode'] = 'MCS-MIMP-CORE' - - 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}】-已完成') - continue - if self.taskType == 'INTEGRAL_EXCHANGE': - self.EAR_END_2023_ExchangeCard() - elif self.taskType == 'CLICK_MY_SETTING': - self.taskCode = item["taskCode"] - self.addDeliverPrefer() - if "taskCode" in item: - self.taskCode = item["taskCode"] - self.doTask() - 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() - - def addDeliverPrefer(self): - print(f'>>>开始【{self.title}】任务') - json_data = { - "country": "中国", - "countryCode": "A000086000", - "province": "北京市", - "provinceCode": "A110000000", - "city": "北京市", - "cityCode": "A111000000", - "county": "东城区", - "countyCode": "A110101000", - "address": "1号楼1单元101", - "latitude": "", - "longitude": "", - "memberId": "", - "locationCode": "010", - "zoneCode": "CN", - "postCode": "", - "takeWay": "7", - "callBeforeDelivery": 'false', - "deliverTag": "2,3,4,1", - "deliverTagContent": "", - "startDeliverTime": "", - "selectCollection": 'false', - "serviceName": "", - "serviceCode": "", - "serviceType": "", - "serviceAddress": "", - "serviceDistance": "", - "serviceTime": "", - "serviceTelephone": "", - "channelCode": "RW11111", - "taskId": self.taskId, - "extJson": "{\"noDeliverDetail\":[]}" - } - url = 'https://ucmp.sf-express.com/cx-wechat-member/member/deliveryPreference/addDeliverPrefer' - response = self.do_request(url, data=json_data) - if response.get('success') == True: - print('新增一个收件偏好,成功') - else: - print(f'>【{self.title}】任务-{response.get("errorMessage")}') - - def EAR_END_2023_ExchangeCard(self): - print(f'>>>开始积分兑换年卡') - json_data = { - "exchangeNum": 2, - "activityCode": "YEAREND_2024", - "channelType": "MINI_PROGRAM" - } - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonNoLoginPost/~memberNonactivity~yearEnd2024TaskService~integralExchange' - response = self.do_request(url, data=json_data) - if response.get('success') == True: - receivedAccountList = response['obj']['receivedAccountList'] - for card in receivedAccountList: - print(f'>获得:【{card["urrency"]}】卡【{card["amount"]}】张!') - 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 = { - "taskType": self.taskType, - "activityCode": "YEAREND_2024", - "channelType": "MINI_PROGRAM" - } - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonNoLoginPost/~memberNonactivity~yearEnd2024TaskService~fetchMixTaskReward' - response = self.do_request(url, data=json_data) - if response.get('success') == True: - print(f'>【{self.title}】任务奖励领取成功!') - else: - print(f'>【{self.title}】任务-{response.get("errorMessage")}') - - def anniversary2024_weekly_gift_status(self): - print(f'\n>>>>>>>开始周年庆任务') - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024IndexService~weeklyGiftStatus' - response = self.do_request(url) - if response.get('success') == True: - weekly_gift_list = response.get('obj', {}).get('weeklyGiftList', []) - for weekly_gift in weekly_gift_list: - if not weekly_gift.get('received'): - receive_start_time = datetime.strptime(weekly_gift['receiveStartTime'], '%Y-%m-%d %H:%M:%S') - receive_end_time = datetime.strptime(weekly_gift['receiveEndTime'], '%Y-%m-%d %H:%M:%S') - current_time = datetime.now() - # print(current_time) - # print(receive_start_time) - # print(receive_end_time) - if receive_start_time <= current_time <= receive_end_time: - self.anniversary2024_receive_weekly_gift() - else: - error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print(f'查询每周领券失败: {error_message}') - if '系统繁忙' in error_message or '用户手机号校验未通过' in error_message: - self.anniversary_black = True - - def anniversary2024_receive_weekly_gift(self): - print(f'>>>开始领取每周领券') - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024IndexService~receiveWeeklyGift' - response = self.do_request(url) - if response.get('success'): - product_names = [product['productName'] for product in response.get('obj', [])] - print(f'每周领券: {product_names}') - else: - error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print(f'每周领券失败: {error_message}') - if '系统繁忙' in error_message or '用户手机号校验未通过' in error_message: - self.anniversary_black = True - - def anniversary2024_taskList(self): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~activityTaskService~taskList' - data = { - 'activityCode': 'ANNIVERSARY_2024', - 'channelType': 'MINI_PROGRAM' - } - response = self.do_request(url, data) - if response and response.get('success'): - tasks = response.get('obj', []) - # 过滤出状态为1的任务并尝试接收奖励 - for task in filter(lambda x: x['status'] == 1, tasks): - if self.anniversary_black: - return - for _ in range(task['canReceiveTokenNum']): - self.anniversary2024_fetchMixTaskReward(task) - # 过滤出状态为2的任务并完成任务 - for task in filter(lambda x: x['status'] == 2, tasks): - if self.anniversary_black: - return - if task['taskType'] in ['PLAY_ACTIVITY_GAME', 'PLAY_HAPPY_ELIMINATION', 'PARTAKE_SUBJECT_GAME']: - pass - elif task['taskType'] == 'FOLLOW_SFZHUNONG_VEDIO_ID': - pass - elif task['taskType'] in ['BROWSE_VIP_CENTER', 'GUESS_GAME_TIP', 'CREATE_SFID', 'CLICK_MY_SETTING', - 'CLICK_TEMPLATE', 'REAL_NAME', 'SEND_SUCCESS_RECALL', 'OPEN_SVIP', - 'OPEN_FAST_CARD', 'FIRST_CHARGE_NEW_EXPRESS_CARD', 'CHARGE_NEW_EXPRESS_CARD', - 'INTEGRAL_EXCHANGE']: - pass - else: - for _ in range(task['restFinishTime']): - if self.anniversary_black: - break - self.anniversary2024_finishTask(task) - - def anniversary2024_finishTask(self, task): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonRoutePost/memberEs/taskRecord/finishTask' - data = {'taskCode': task['taskCode']} - response = self.do_request(url, data) - if response and response.get('success'): - print('完成任务[%s]成功' % task['taskName']) - # 完成任务后获取任务奖励的逻辑 - self.anniversary2024_fetchMixTaskReward(task) - else: - print('完成任务[%s]失败: %s' % ( - task['taskName'], response.get('errorMessage') or (json.dumps(response) if response else '无返回'))) - - def anniversary2024_fetchMixTaskReward(self, task): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024TaskService~fetchMixTaskReward' - data = { - 'taskType': task['taskType'], - 'activityCode': 'ANNIVERSARY_2024', - 'channelType': 'MINI_PROGRAM' - } - response = self.do_request(url, data) - if response and response.get('success'): - reward_info = response.get('obj', {}).get('account', {}) - received_list = [f"[{item['currency']}]X{item['amount']}" for item in - reward_info.get('receivedAccountList', [])] - turned_award = reward_info.get('turnedAward', {}) - if turned_award.get('productName'): - received_list.append(f"[优惠券]{turned_award['productName']}") - print('领取任务[%s]奖励: %s' % (task['taskName'], ', '.join(received_list))) - else: - error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print('领取任务[%s]奖励失败: %s' % (task['taskName'], error_message)) - if '用户手机号校验未通过' in error_message: - self.anniversary_black = True - - def anniversary2024_unbox(self): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024CardService~unbox' - response = self.do_request(url, {}) - if response and response.get('success'): - account_info = response.get('obj', {}).get('account', {}) - unbox_list = [f"[{item['currency']}]X{item['amount']}" for item in - account_info.get('receivedAccountList', [])] - print('拆盒子: %s' % ', '.join(unbox_list) or '空气') - else: - error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print('拆盒子失败: %s' % error_message) - if '用户手机号校验未通过' in error_message: - self.anniversary_black = True - - def anniversary2024_game_list(self): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024GameParkService~list' - response = self.do_request(url, {}) - try: - if response['success']: - topic_pk_info = response['obj'].get('topicPKInfo', {}) - search_word_info = response['obj'].get('searchWordInfo', {}) - happy_elimination_info = response['obj'].get('happyEliminationInfo', {}) - - if not topic_pk_info.get('isPassFlag'): - print('开始话题PK赛') - # 这里调用话题PK赛列表相关函数 - self.anniversary2024_TopicPk_topicList() - - if not search_word_info.get('isPassFlag') or not search_word_info.get('isFinishDailyFlag'): - print('开始找字游戏') - for i in range(1, 11): - wait_time = random.randint(1000, 3000) / 1000.0 # 转换为秒 - time.sleep(wait_time) - if not self.anniversary2024_SearchWord_win(i): - break - - if not happy_elimination_info.get('isPassFlag') or not happy_elimination_info.get('isFinishDailyFlag'): - print('开始消消乐') - for i in range(1, 31): - wait_time = random.randint(2000, 4000) / 1000.0 # 转换为秒 - time.sleep(wait_time) - if not self.anniversary2024_HappyElimination_win(i): - break - else: - error_message = response['errorMessage'] or json.dumps(response) or '无返回' - print('查询游戏状态失败: ' + error_message) - if '用户手机号校验未通过' in error_message: - self.anniversary_black = True - except Exception as e: - print(str(e)) - - def anniversary2024_SearchWord_win(self, index): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024SearchWordService~win' - success = True - try: - data = {'index': index} - response = self.do_request(url, data) - if response and response.get('success'): - currency_list = response.get('obj', {}).get('currencyDTOList', []) - rewards = ', '.join([f"[{c.get('currency')}]X{c.get('amount')}" for c in currency_list]) - print(f'找字游戏第{index}关通关成功: {rewards if rewards else "未获得奖励"}') - else: - error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print(f'找字游戏第{index}关失败: {error_message}') - if '系统繁忙' in error_message: - success = False - except Exception as e: - print(e) - finally: - return success - - def anniversary2024_HappyElimination_win(self, index): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024HappyEliminationService~win' - success = True - data = {'index': index} - response = self.do_request(url, data) - try: - if response and response.get('success'): - is_award = response['obj'].get('isAward') - currency_dto_list = response['obj'].get('currencyDTOList', []) - rewards = ', '.join([f"[{c.get('currency')}]X{c.get('amount')}" for c in currency_dto_list]) - print(f'第{index}关通关: {rewards if rewards else "未获得奖励"}') - else: - error_message = response.get('errorMessage') or json.dumps(response) or '无返回' - print(f'第{index}关失败: {error_message}') - if '系统繁忙' in error_message: - success = False - except Exception as e: - print(e) - success = False - finally: - return success - - def anniversary2024_TopicPk_chooseSide(self, index): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024TopicPkService~chooseSide' - success = True - data = {'index': index, 'choose': 0} # 选择某一边 - response = self.do_request(url, data) - try: - if response and response.get('success'): - currency_dto_list = response['obj'].get('currencyDTOList', []) - rewards = ', '.join([f"[{c.get('currency')}]X{c.get('amount')}" for c in currency_dto_list]) - print(f'话题PK赛选择话题{index}成功: {rewards if rewards else "未获得奖励"}') - else: - error_message = response['errorMessage'] or json.dumps(response) or '无返回' - print(f'话题PK赛选择话题{index}失败: {error_message}') - if '系统繁忙' in error_message: - success = False - except Exception as e: - print(e) - success = False - finally: - return success - - def anniversary2024_TopicPk_topicList(self): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024TopicPkService~topicList' - response = self.do_request(url, {}) - try: - if response and response.get('success'): - topics = response['obj'].get('topics', []) - for topic in topics: - if not topic.get('choose'): - index = topic.get('index', 1) - wait_time = random.randint(2000, 4000) / 1000.0 # 转换为秒 - time.sleep(wait_time) # 等待 - if not self.anniversary2024_TopicPk_chooseSide(index): - break - else: - error_message = response['errorMessage'] or json.dumps(response) or '无返回' - print(f'查询话题PK赛记录失败: {error_message}') - except Exception as e: - print(e) - - def anniversary2024_queryAccountStatus_refresh(self): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024CardService~queryAccountStatus' - response = self.do_request(url, {}) - try: - if not response or not response.get('success'): - error_message = response['errorMessage'] or json.dumps(response) or '无返回' - print(f'查询账户状态失败: {error_message}') - except Exception as e: - print(e) - - def anniversary2024_TopicPk_chooseSide(self, index): - success = True - data = { - 'index': index, - 'choose': 0 - } - self.headers['channel'] = '31annizyw' - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024TopicPkService~chooseSide' - result = self.do_request(url, data, 'post') - - if result and result.get('success'): - 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)}') - else: - print(f'话题PK赛第{index}个话题选择成功') - else: - error_message = result.get('errorMessage') if result else '无返回' - print(f'话题PK赛第{index}个话题失败: {error_message}') - if error_message and '系统繁忙' in error_message: - success = False - - return success - - def anniversary2024_titleList(self): - return - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024GuessService~titleList' - response = self.do_request(url) - - if response and response.get('success'): - - guess_title_info_list = response.get('obj', {}).get('guessTitleInfoList', []) - 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('今日已回答过竞猜') - else: - answer = self.answer - if answer: - self.anniversary2024_answer(title_info, answer) - print(f'进行了答题: {answer}') - else: - error_message = response.get('errorMessage') if response else '无返回' - print(f'查询每日口令竞猜失败: {error_message}') - - def anniversary2024_titleList_award(self): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024GuessService~titleList' - response = self.do_request(url) - - if response and response.get('success'): - - guess_title_info_list = response.get('obj', {}).get('guessTitleInfoList', []) - today_awards = [title for title in guess_title_info_list if title['gameDate'] == self.today] - - for award_info in today_awards: - 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 '今日无奖励') - else: - print('今日还没回答竞猜') - else: - error_message = response.get('errorMessage') if response else '无返回' - print(f'查询每日口令竞猜奖励失败: {error_message}') - - # 向API发送答题请求 - def anniversary2024_answer(self, answer_info): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024GuessService~answer' - data = {'period': answer_info['period'], 'answerInfo': answer_info} - response = self.do_request(url, data) - if response and response.get('success'): - print('口令竞猜回答成功') - self.anniversary2024_titleList_award() # 通过奖励接口验证答案 - else: - error_message = response.get('errorMessage') if response else '无返回' - print(f'口令竞猜回答失败: {error_message}') - - # 查询账户状态 - def anniversary2024_queryAccountStatus(self): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024CardService~queryAccountStatus' - result = self.do_request(url) - if result.get('success'): - account_currency_list = result.get('obj', {}).get('accountCurrencyList', []) - unbox_chance_currency = [currency for currency in account_currency_list if - currency.get('currency') == 'UNBOX_CHANCE'] - unbox_chance_balance = unbox_chance_currency[0].get('balance') if unbox_chance_currency else 0 - - # print('可以拆' + str(unbox_chance_balance) + '次盒子') - # while unbox_chance_balance > 0: - # self.anniversary2024_unbox() - # unbox_chance_balance -= 1 - else: - error_message = result.get('errorMessage') or json.dumps(result) or '无返回' - print('查询已收集拼图失败: ' + error_message) - - result = self.do_request(url) - if result.get('success'): - account_currency_list = result.get('obj', {}).get('accountCurrencyList', []) - account_currency_list = [currency for currency in account_currency_list if - currency.get('currency') != 'UNBOX_CHANCE'] - if account_currency_list: - cards_li = account_currency_list - card_info = [] - self.cards = { - 'CARD_1': 0, - 'CARD_2': 0, - 'CARD_3': 0, - 'CARD_4': 0, - 'CARD_5': 0, - 'CARD_6': 0, - 'CARD_7': 0, - 'CARD_8': 0, - 'CARD_9': 0, - 'COMMON_CARD': 0 - } - for card in cards_li: - currency_key = card.get('currency') - if currency_key in self.cards: - self.cards[currency_key] = int(card.get('balance')) - card_info.append('[' + card.get('currency') + ']X' + str(card.get('balance'))) - - Log(f'已收集拼图: {card_info}') - cards_li.sort(key=lambda x: x.get('balance'), reverse=True) - - else: - print('还没有收集到拼图') - else: - error_message = result.get('errorMessage') or json.dumps(result) or '无返回' - print('查询已收集拼图失败: ' + error_message) - - def do_draw(self, cards): - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~anniversary2024CardService~collectDrawAward' - data = {"accountList": cards} - response = self.do_request(url, data) - if response and response.get('success'): - data = response.get('obj', {}) - productName = data.get('productName', '') - Log(f'抽奖成功,获得{productName}') - return True - else: - error_message = response.get('errorMessage') if response else '无返回' - print(f'抽奖失败: {error_message}') - return False - - def convert_common_card(self, cards, target_card): - # 如果共通卡(COMMON_CARD)的数量大于0,转化成目标卡 - if cards['COMMON_CARD'] > 0: - cards['COMMON_CARD'] -= 1 - cards[target_card] += 1 - return True - return False - - def can_draw(self, cards, n): - # 判断是否有足够的不同卡进行抽奖 - distinct_cards = sum(1 for card, amount in cards.items() if card != 'COMMON_CARD' and amount > 0) - return distinct_cards >= n - - def draw(self, cards, n): - drawn_cards = [] - for card, amount in sorted(cards.items(), key=lambda item: item[1]): - if card != 'COMMON_CARD' and amount > 0: - cards[card] -= 1 - drawn_cards.append(card) - if len(drawn_cards) == n: - break - if len(drawn_cards) == n: - "没有足够的卡进行抽奖" - if self.do_draw(drawn_cards): - return drawn_cards # 返回本次抽奖使用的卡 - else: - return None - - def simulate_lottery(self, cards): - while self.can_draw(cards, 9): - used_cards = self.draw(cards, 9) - 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) - 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) - 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) - - def anniversary2024_task(self): - self.anniversary2024_weekly_gift_status() - if self.anniversary_black: - return - # self.anniversary2024_titleList() - # self.anniversary2024_game_list() - # self.anniversary2024_taskList() - self.anniversary2024_queryAccountStatus() - target_time = datetime(2025, 4, 3, 14, 0) - # self.simulate_lottery(self.cards) - if datetime.now() > target_time: - print('周年庆活动即将结束,开始自动抽奖') - self.simulate_lottery(self.cards) - else: - print('未到自动抽奖时间') - - def member_day_index(self): - print('====== 会员日活动 ======') - try: - invite_user_id = random.choice([invite for invite in inviteId if invite != self.user_id]) - payload = {'inviteUserId': invite_user_id} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayIndexService~index' - - response = self.do_request(url, data=payload) - if response.get('success'): - lottery_num = response.get('obj', {}).get('lotteryNum', 0) - can_receive_invite_award = response.get('obj', {}).get('canReceiveInviteAward', False) - if can_receive_invite_award: - self.member_day_receive_invite_award(invite_user_id) - self.member_day_red_packet_status() - Log(f'会员日可以抽奖{lottery_num}次') - for _ in range(lottery_num): - self.member_day_lottery() - if self.member_day_black: - return - self.member_day_task_list() - if self.member_day_black: - return - self.member_day_red_packet_status() - else: - error_message = response.get('errorMessage', '无返回') - Log(f'查询会员日失败: {error_message}') - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_receive_invite_award(self, invite_user_id): - try: - payload = {'inviteUserId': invite_user_id} - - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayIndexService~receiveInviteAward' - - response = self.do_request(url, payload) - if response.get('success'): - product_name = response.get('obj', {}).get('productName', '空气') - Log(f'会员日奖励: {product_name}') - else: - error_message = response.get('errorMessage', '无返回') - Log(f'领取会员日奖励失败: {error_message}') - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_lottery(self): - try: - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayLotteryService~lottery' - - response = self.do_request(url, payload) - if response.get('success'): - product_name = response.get('obj', {}).get('productName', '空气') - Log(f'会员日抽奖: {product_name}') - else: - error_message = response.get('errorMessage', '无返回') - Log(f'会员日抽奖失败: {error_message}') - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_task_list(self): - try: - payload = {'activityCode': 'MEMBER_DAY', 'channelType': 'MINI_PROGRAM'} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~activityTaskService~taskList' - - response = self.do_request(url, payload) - if response.get('success'): - task_list = response.get('obj', []) - for task in task_list: - if task['status'] == 1: - if self.member_day_black: - return - self.member_day_fetch_mix_task_reward(task) - for task in task_list: - if task['status'] == 2: - if self.member_day_black: - return - if task['taskType'] in ['SEND_SUCCESS', 'INVITEFRIENDS_PARTAKE_ACTIVITY', 'OPEN_SVIP', - 'OPEN_NEW_EXPRESS_CARD', 'OPEN_FAMILY_CARD', 'CHARGE_NEW_EXPRESS_CARD', - 'INTEGRAL_EXCHANGE']: - pass - else: - for _ in range(task['restFinishTime']): - if self.member_day_black: - return - self.member_day_finish_task(task) - else: - error_message = response.get('errorMessage', '无返回') - Log('查询会员日任务失败: ' + error_message) - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_finish_task(self, task): - try: - payload = {'taskCode': task['taskCode']} - - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberEs~taskRecord~finishTask' - - response = self.do_request(url, payload) - if response.get('success'): - Log('完成会员日任务[' + task['taskName'] + ']成功') - self.member_day_fetch_mix_task_reward(task) - else: - error_message = response.get('errorMessage', '无返回') - Log('完成会员日任务[' + task['taskName'] + ']失败: ' + error_message) - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_fetch_mix_task_reward(self, task): - try: - payload = {'taskType': task['taskType'], 'activityCode': 'MEMBER_DAY', 'channelType': 'MINI_PROGRAM'} - - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~activityTaskService~fetchMixTaskReward' - - response = self.do_request(url, payload) - if response.get('success'): - Log('领取会员日任务[' + task['taskName'] + ']奖励成功') - else: - error_message = response.get('errorMessage', '无返回') - Log('领取会员日任务[' + task['taskName'] + ']奖励失败: ' + error_message) - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_receive_red_packet(self, hour): - try: - payload = {'receiveHour': hour} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayTaskService~receiveRedPacket' - - response = self.do_request(url, payload) - if response.get('success'): - print(f'会员日领取{hour}点红包成功') - else: - error_message = response.get('errorMessage', '无返回') - print(f'会员日领取{hour}点红包失败: {error_message}') - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_red_packet_status(self): - try: - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayPacketService~redPacketStatus' - response = self.do_request(url, payload) - if response.get('success'): - packet_list = response.get('obj', {}).get('packetList', []) - for packet in packet_list: - self.member_day_red_packet_map[packet['level']] = packet['count'] - - for level in range(1, self.max_level): - count = self.member_day_red_packet_map.get(level, 0) - while count >= 2: - self.member_day_red_packet_merge(level) - count -= 2 - packet_summary = [] - remaining_needed = 0 - - for level, count in self.member_day_red_packet_map.items(): - if count == 0: - continue - packet_summary.append(f"[{level}级]X{count}") - int_level = int(level) - if int_level < self.max_level: - remaining_needed += 1 << (int_level - 1) - - 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]}") - self.member_day_red_packet_draw(self.max_level) - else: - remaining = self.packet_threshold - remaining_needed - Log(f"会员日距离[{self.max_level}级]红包还差: [1级]红包X{remaining}") - - else: - error_message = response.get('errorMessage', '无返回') - Log(f'查询会员日合成失败: {error_message}') - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_red_packet_merge(self, level): - try: - # for key,level in enumerate(self.member_day_red_packet_map): - # pass - payload = {'level': level, 'num': 2} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayPacketService~redPacketMerge' - - response = self.do_request(url, payload) - if response.get('success'): - 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}') - if '没有资格参与活动' in error_message: - self.member_day_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def member_day_red_packet_draw(self, level): - try: - payload = {'level': str(level)} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayPacketService~redPacketDraw' - response = self.do_request(url, payload) - if response and response.get('success'): - coupon_names = [item['couponName'] for item in response.get('obj', [])] or [] - - Log(f"会员日提取[{level}级]红包: {', '.join(coupon_names) or '空气'}") - else: - error_message = response.get('errorMessage') if response else "无返回" - Log(f"会员日提取[{level}级]红包失败: {error_message}") - if "没有资格参与活动" in error_message: - self.memberDay_black = True - print("会员日任务风控") - except Exception as e: - print(e) - - def DRAGONBOAT_2024_index(self): - print('====== 查询财神活动状态 ======') - invite_user_id = random.choice([invite for invite in inviteId if invite != self.user_id]) - try: - self.headers['channel'] = '24nzdb' - self.headers[ - 'referer'] = f'https://mcs-mimp-web.sf-express.com/origin/a/mimp-activity/yearEnd2024?mobile={self.mobile}&userId={self.user_id}&path=/origin/a/mimp-activity/yearEnd2024&supportShare=&inviteUserId={invite_user_id}&from=newExpressWX' - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonNoLoginPost/~memberNonactivity~yearEnd2024IndexService~index' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - acEndTime = obj.get('acEndTime', '') - # 获取当前时间并格式化 - current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") - comparison_time = datetime.strptime(acEndTime, "%Y-%m-%d %H:%M:%S") - # 比较当前时间是否小于比较时间 - is_less_than = datetime.now() < comparison_time - if is_less_than: - print('推财神进行中....') - return True - else: - print('推财神活动已结束') - return False - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - return False - except Exception as e: - print(e) - return False - - def DRAGONBOAT_2024_Game_indexInfo(self): - Log('====== 开始推财神游戏 ======') - try: - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024GameService~indexInfo' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - maxPassLevel = obj.get('maxPassLevel', '') - ifPassAllLevel = obj.get('ifPassAllLevel', '') - if maxPassLevel != 30: - self.DRAGONBOAT_2024_win(maxPassLevel) - else: - self.DRAGONBOAT_2024_win(0) - - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - return False - except Exception as e: - print(e) - return False - - def DRAGONBOAT_2024_Game_init(self): - Log('====== 开始推财神游戏 ======') - try: - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024GameService~init' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - currentIndex = obj.get('currentIndex', '') - ifPassAllLevel = obj.get('ifPassAllLevel', '') - if currentIndex != 30: - self.DRAGONBOAT_2024_win(currentIndex) - else: - self.DRAGONBOAT_2024_win(0) - - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - return False - except Exception as e: - print(e) - return False - - def DRAGONBOAT_2024_weeklyGiftStatus(self): - print('====== 查询每周礼包领取状态 ======') - try: - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024IndexService~weeklyGiftStatus' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - for gift in obj: - received = gift['received'] - receiveStartTime = gift['receiveStartTime'] - receiveEndTime = gift['receiveEndTime'] - print(f'>>> 领取时间:【{receiveStartTime} 至 {receiveEndTime}】') - if received: - 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'>> 开始领取礼包:') - self.DRAGONBOAT_2024_receiveWeeklyGift() - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def DRAGONBOAT_2024_receiveWeeklyGift(self): - invite_user_id = random.choice([invite for invite in inviteId if invite != self.user_id]) - try: - payload = {"inviteUserId": invite_user_id} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024IndexService~receiveWeeklyGift' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - if obj == [{}]: - print('> 领取失败') - return False - for gifts in obj: - productName = gifts['productName'] - amount = gifts['amount'] - print(f'> 领取【{productName} x {amount}】成功') - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def DRAGONBOAT_2024_taskList(self): - print('====== 查询推币任务列表 ======') - try: - payload = { - "activityCode": "DRAGONBOAT_2024", - "channelType": "MINI_PROGRAM" - } - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~activityTaskService~taskList' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - for task in obj: - taskType = task['taskType'] - self.taskName = task['taskName'] - status = task['status'] - if status == 3: - Log(f'> 任务【{self.taskName}】已完成') - continue - self.taskCode = task.get('taskCode', None) - if self.taskCode: - self.DRAGONBOAT_2024_finishTask() - if taskType == 'PLAY_ACTIVITY_GAME': - self.DRAGONBOAT_2024_Game_init() - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def DRAGONBOAT_2024_coinStatus(self, END=False): - Log('====== 查询金币信息 ======') - # try: - payload = {} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024CoinService~coinStatus' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', None) - if obj == None: return False - accountCurrencyList = obj.get('accountCurrencyList', []) - pushedTimesToday = obj.get('pushedTimesToday', '') - pushedTimesTotal = obj.get('pushedTimesTotal', '') - PUSH_TIMES_balance = 0 - self.COIN_balance = 0 - WELFARE_CARD_balance = 0 - for li in accountCurrencyList: - if li['currency'] == 'PUSH_TIMES': - PUSH_TIMES_balance = li['balance'] - if li['currency'] == 'COIN': - self.COIN_balance = li['balance'] - if li['currency'] == 'WELFARE_CARD': - WELFARE_CARD_balance = li['balance'] - - PUSH_TIMES = PUSH_TIMES_balance - if END: - if PUSH_TIMES_balance > 0: - for i in range(PUSH_TIMES_balance): - 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'> 当前发财卡:【{WELFARE_CARD_balance}】') - Log(f'> 今日推币:【{pushedTimesToday}】次') - Log(f'> 总推币:【{pushedTimesTotal}】次') - else: - print(f'> 剩余推币次数:【{PUSH_TIMES_balance}】') - print(f'> 当前金币:【{self.COIN_balance}】') - # Log(f'> 当前发财卡:【{WELFARE_CARD_balance}】') - 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('会员日任务风控') - # except Exception as e: - # print(e) - - def DRAGONBOAT_2024_pushCoin(self): - try: - payload = {"plateToken": None} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024CoinService~pushCoin' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - drawAward = obj.get('drawAward', '') - self.COIN_balance += drawAward - print(f'> 获得:【{drawAward}】金币') - - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def DRAGONBOAT_2024_givePushTimes(self): - Log('====== 领取赠送推币次数 ======') - try: - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024CoinService~givePushTimes' - - response = self.do_request(url) - # print(response) - if response.get('success'): - obj = response.get('obj', 0) - print(f'> 获得:【{obj}】次推币机会') - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('> 会员日任务风控') - print(error_message) - except Exception as e: - print(e) - - def DRAGONBOAT_2024_finishTask(self): - try: - payload = { - "taskCode": self.taskCode - } - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberEs~taskRecord~finishTask' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', False) - Log(f'> 完成任务【{self.taskName}】成功') - else: - error_message = response.get('errorMessage', '无返回') - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def DRAGONBOAT_2024_win(self, level): - try: - for i in range(level,16): - print(f'开始第【{i}】关') - payload = {"levelIndex": i} - url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~yearEnd2024GameService~win' - - response = self.do_request(url, payload) - # print(response) - if response.get('success'): - obj = response.get('obj', [{}]) - currentAwardList = obj.get('currentAwardList', []) - if currentAwardList != []: - for award in currentAwardList: - currency = award.get('currency', '') - amount = award.get('amount', '') - print(f'> 获得:【{currency}】x{amount}') - else: - print(f'> 本关无奖励') - # random_time =random.randint(10,15) - # print(f'>> 等待{random_time}秒 <<') - # time.sleep(random_time) - else: - error_message = response.get('errorMessage', '无返回') - print(error_message) - if '没有资格参与活动' in error_message: - self.DRAGONBOAT_2024_black = True - Log('会员日任务风控') - except Exception as e: - print(e) - - def main(self): - global one_msg - wait_time = random.randint(1000, 3000) / 1000.0 # 转换为秒 - time.sleep(wait_time) # 等待 - one_msg = '' - if not self.login_res: return False - # 执行签到任务 - self.sign() - self.superWelfare_receiveRedPacket() - self.get_SignTaskList() - 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('周年庆活动已结束') - - current_date = datetime.now().day - if 26 <= current_date <= 28: - self.member_day_index() - else: - print('未到指定时间不执行会员日任务') - - - # 在所有任务执行完后、发送消息前显示财神卡信息 - self.YEAEND_2024_wealthStatus() - - self.sendMsg() - return True - - def sendMsg(self, help=False): - #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 - current_year = current_date.year - - # 计算下个季度的第一天 - next_quarter_first_day = datetime(current_year, ((current_month - 1) // 3 + 1) * 3 + 1, 1) - - # 计算当前季度的最后一天 - quarter_end_date = next_quarter_first_day - timedelta(days=1) - - return quarter_end_date.strftime("%Y-%m-%d") - - -def is_activity_end_date(end_date): - current_date = datetime.now().date() - end_date = datetime.strptime(end_date, "%Y-%m-%d").date() - - return current_date == end_date - - -def down_file(filename, file_url): - print(f'开始下载:{filename},下载地址:{file_url}') - try: - response = requests.get(file_url, verify=False, timeout=10) - response.raise_for_status() - with open(filename + '.tmp', 'wb') as f: - f.write(response.content) - print(f'【{filename}】下载完成!') - - # 检查临时文件是否存在 - temp_filename = filename + '.tmp' - if os.path.exists(temp_filename): - # 删除原有文件 - if os.path.exists(filename): - os.remove(filename) - # 重命名临时文件 - os.rename(temp_filename, filename) - print(f'【{filename}】重命名成功!') - return True - else: - print(f'【{filename}】临时文件不存在!') - return False - except Exception as e: - print(f'【{filename}】下载失败:{str(e)}') - return False - - -def import_Tools(): - global CHERWIN_TOOLS, ENV, APP_INFO, TIPS, TIPS_HTML, AuthorCode - import CHERWIN_TOOLS - ENV, APP_INFO, TIPS, TIPS_HTML, AuthorCode = CHERWIN_TOOLS.main(APP_NAME, local_script_name, ENV_NAME, - local_version) - - -if __name__ == '__main__': - APP_NAME = '顺丰速运' - ENV_NAME = 'sfsyUrl' - CK_NAME = 'url' - local_script_name = os.path.basename(__file__) - local_version = '2025.01.06' - token = os.getenv(ENV_NAME) - # 将分隔符从\n改为& - tokens = token.split('&') - # print(tokens) - if len(tokens) > 0: - print(f">>>>>>>>>>共获取到{len(tokens)}个账号<<<<<<<<<<") - for index, infos in enumerate(tokens): - run_result = RUN(infos, index).main() - if not run_result: continue \ No newline at end of file