Update print statement from 'Hello' to 'Goodbye'

This commit is contained in:
hlt1995 authored and GitHub committed 2026-03-28 15:39:35 +08:00
1 parent cf9a282af9
commit 6672631551
1 file changed
+78 -35
+78 -35
View File
@@ -1,14 +1,11 @@
# cron: 0 12 * * *
# const $ = new Env('顺丰速运33周年活动')
"""
顺丰33周年活动 - 完成任务抽勋章
Author: 爱学习的呆子
Version: 1.1.0
Date: 2026-03-19
Version: 1.2.0
Date: 2026-03-26
顺丰暗号环境变量:sfsyah
暗号答案通过环境变量 sfsyah 填写当天答案,历史答案从API获取,运行时展示开奖结果及奖励
"""
@@ -46,9 +43,6 @@ ACTIVITY_CODE = "ANNIVERSARY_2026"
TOKEN = 'wwesldfs29aniversaryvdld29'
SYS_CODE = 'MCS-MIMP-CORE'
# 暗号环境变量(可选,不设置则自动从API获取答案)
GUESS_ANSWER_ENV = 'sfsyah'
# 需要跳过的任务类型(需要实际操作的)
SKIP_TASK_TYPES = [
'BUY_ADD_VALUE_SERVICE_PACKET', # 通过服务套餐寄件
@@ -431,10 +425,10 @@ class AnniversaryExecutor:
# ---------- 业务逻辑 ----------
def do_guess_game(self) -> bool:
"""对暗号任务:读取所有日期的题目,按顺序匹配环境变量中的暗号逐日提交"""
"""对暗号任务:从API获取题目和答案,逐日提交"""
self.logger.task('[对暗号赢免单] 开始...')
# 1. 获取题目列表
# 1. 获取题目列表(含答案)
guess_info = self.get_guess_title_list()
if not guess_info:
self.logger.warning('[对暗号] 获取题目列表失败')
@@ -452,14 +446,7 @@ class AnniversaryExecutor:
self.logger.info(f'[对暗号] 共 {len(title_list)} 天题目,当前日期: {current_period}')
# 2. 读取环境变量中的暗号列表(每行一个,按日期顺序对应)
env_answers_raw = os.getenv(GUESS_ANSWER_ENV, '').strip()
env_answers = [a.strip() for a in env_answers_raw.split('\n') if a.strip()] if env_answers_raw else []
if env_answers:
self.logger.info(f'[对暗号] 环境变量已设置 {len(env_answers)} 个暗号')
# 3. 逐日处理
# 2. 逐日处理
any_success = False
for i, title in enumerate(title_list):
period = title.get('period', '')
@@ -477,17 +464,22 @@ class AnniversaryExecutor:
self.logger.info(f'[对暗号] {period} 尚未开放,跳过')
continue
# 获取答案:优先环境变量按顺序匹配,其次API返回的answerInfo
answer = ''
if i < len(env_answers):
answer = env_answers[i]
if not answer:
answer = title.get('answerInfo', '')
# 从API返回的answerInfo获取答案
answer = title.get('answerInfo', '')
if not answer:
self.logger.warning(f'[对暗号] {period} 无法获取答案(提示: {tip})')
self.logger.info(f'[对暗号] 请在环境变量 {GUESS_ANSWER_ENV} 第 {i + 1} 行填写该日暗号')
continue
# API未返回答案,尝试从环境变量获取当天答案
if period == current_period:
env_answer = os.getenv('sfsyah', '').strip()
if env_answer:
answer = env_answer
self.logger.info(f'[对暗号] {period} 使用环境变量 sfsyah 答案: {answer}')
else:
self.logger.warning(f'[对暗号] {period} API未返回答案且未设置环境变量 sfsyah(提示: {tip})')
continue
else:
self.logger.warning(f'[对暗号] {period} API未返回答案(提示: {tip})')
continue
self.logger.info(f'[对暗号] {period} 提交答案: {answer}')
@@ -516,6 +508,58 @@ class AnniversaryExecutor:
return any_success
def show_guess_results(self) -> None:
"""展示暗号开奖结果及奖励信息"""
guess_info = self.get_guess_title_list()
if not guess_info:
self.logger.warning('[暗号开奖] 获取开奖结果失败')
return
title_list = guess_info.get('guessTitleInfoList', [])
if not title_list:
self.logger.info('[暗号开奖] 暂无开奖数据')
return
title_list.sort(key=lambda x: x.get('period', ''))
self.logger.info('=' * 20 + ' 暗号开奖结果 ' + '=' * 20)
for title in title_list:
period = title.get('period', '')
answer_status = title.get('answerStatus')
answer_info = title.get('answerInfo', '')
answer_analysis = title.get('answerAnalysis', '')
tip = title.get('tip', '')
award_list = title.get('awardList', [])
if answer_status == 1:
self.logger.success(f'日期: {period} 答案: {answer_info}')
if answer_analysis:
self.logger.info(f'解析: {answer_analysis}')
if award_list:
self.logger.info('获得奖励:')
for award in award_list:
product_name = award.get('productName') or award.get('couponName', '未知奖品')
amount = award.get('amount', 1)
coupon_no = award.get('couponNo', '')
denomination = award.get('denomination', '')
limit_money = award.get('limitMoney', '')
desc = product_name
if denomination and limit_money:
desc = f'{denomination}折寄件券(最高抵扣{limit_money}元)' if '折' in product_name else product_name
coupon_info = f'(券号: {coupon_no})' if coupon_no else ''
self.logger.info(f' - {desc} x{amount} {coupon_info}')
else:
self.logger.info('暂无奖励信息')
elif answer_info:
# 有答案但未作答(answerStatus != 1)
self.logger.warning(f'日期: {period} 答案: {answer_info}(未作答)')
else:
# 未公布答案
self.logger.info(f'日期: {period} 提示: {tip}(答案未公布)')
self.logger.info('=' * 56)
def do_tasks(self, result: Dict) -> None:
"""执行所有可自动完成的任务"""
self.logger.info('正在获取周年活动任务列表...')
@@ -720,6 +764,9 @@ class AnniversaryExecutor:
# 3. 抽勋章
self.do_claim_medals(result)
# 4. 展示暗号开奖结果及奖励
self.show_guess_results()
return result
@@ -787,15 +834,11 @@ def main():
print(f"❌ 环境变量 {env_name} 为空或格式错误")
return
# 暗号提示
guess_answer = os.getenv(GUESS_ANSWER_ENV, '')
guess_answer = os.getenv('sfsyah', '').strip()
if guess_answer:
answer_lines = [a.strip() for a in guess_answer.strip().split('\n') if a.strip()]
print(f"🔑 已设置暗号环境变量,共 {len(answer_lines)} 个暗号(按日期顺序对应)")
for i, a in enumerate(answer_lines):
print(f" 第{i+1}天: {a}")
print(f"🔑 今日暗号答案: {guess_answer}(来自环境变量 sfsyah)")
else:
print(f"🔑 未设置暗号环境变量({GUESS_ANSWER_ENV}),将自动从API获取答案")
print(f"⚠️ 未设置环境变量 sfsyah,当天暗号将无法作答(历史答案从API获取)")
random.shuffle(account_urls)