103 lines
3.5 KiB
Python
103 lines
3.5 KiB
Python
# Source: https://gitee.com/jdqlscript/yyt/blob/master/%E7%94%B5%E4%BF%A1old/%E7%94%B5%E4%BF%A12/%E7%94%B5%E4%BF%A1%E9%87%91%E8%B1%86%E8%AF%9D%E8%B4%B9%E8%8E%B7%E5%8F%96%E6%9F%A5%E8%AF%A2.py
|
||
# Raw: https://gitee.com/jdqlscript/yyt/raw/master/%E7%94%B5%E4%BF%A1old/%E7%94%B5%E4%BF%A12/%E7%94%B5%E4%BF%A1%E9%87%91%E8%B1%86%E8%AF%9D%E8%B4%B9%E8%8E%B7%E5%8F%96%E6%9F%A5%E8%AF%A2.py
|
||
# Repo: jdqlscript/yyt
|
||
# Path: 电信old/电信2/电信金豆话费获取查询.py
|
||
# UploadedAt: 2025-07-19T22:58:22+08:00
|
||
# SHA256: 108adee7f631d1a668a42554330fde8cbcc867e3f2e415cde4f56f875e4d9094
|
||
# Category: APP版/抓包
|
||
# Evidence: APP/Android/iOS/device关键词
|
||
|
||
"""
|
||
cron: 00 20 * * *
|
||
new Env('电信金豆话费获取查询');
|
||
"""
|
||
"""
|
||
使用方法:
|
||
啥也不用设置,调用的面板配置的推送
|
||
"""
|
||
import json
|
||
from collections import defaultdict
|
||
import sys
|
||
import os # 导入os模块用于检查文件是否存在
|
||
|
||
|
||
# 控制变量,用于控制是否发送通知
|
||
enable_notification = 1 # 0 不发送 1发送通知
|
||
|
||
# 如果需要发送通知,则尝试导入notify模块
|
||
if enable_notification:
|
||
try:
|
||
from notify import send
|
||
except ModuleNotFoundError:
|
||
print("警告:未找到notify.py模块。程序将退出。")
|
||
sys.exit(1)
|
||
|
||
# 定义日志文件路径
|
||
log_file_path = '电信金豆换话费.log'
|
||
|
||
# 检查日志文件是否存在
|
||
if not os.path.exists(log_file_path):
|
||
print("垃圾都没中,还统计个锤子")
|
||
sys.exit(0)
|
||
|
||
# 读取日志数据
|
||
def read_log_data(log_file_path):
|
||
try:
|
||
with open(log_file_path, 'r', encoding='utf-8') as file:
|
||
log_data = json.load(file)
|
||
return log_data
|
||
except Exception as e:
|
||
print(f"读取日志数据时发生错误: {e}")
|
||
return None
|
||
|
||
# 格式化日志输出
|
||
def generate_log_output(log_data):
|
||
log_lines = []
|
||
|
||
# 遍历每个月的数据
|
||
for month, fees in log_data.items():
|
||
log_lines.append(f"--- {month} ---") # 分割线,标识月份
|
||
|
||
# 收集每个手机号获得的所有话费类型
|
||
phone_to_fees = defaultdict(set)
|
||
|
||
for fee_type, phones in fees.items():
|
||
# 获取手机号列表
|
||
phone_numbers = phones.strip('#').split('#') if phones else []
|
||
|
||
# 格式化输出日志行
|
||
if phone_numbers:
|
||
log_line = f"{fee_type} : " + ", ".join(phone_numbers)
|
||
for phone in phone_numbers:
|
||
phone_to_fees[phone].add(fee_type) # 记录手机号对应的所有话费类型
|
||
else:
|
||
log_line = f"{fee_type} : 还没有中的哦"
|
||
|
||
log_lines.append(log_line)
|
||
|
||
# 添加每个月的手机号统计信息
|
||
log_lines.append("统计信息:")
|
||
for phone, fee_types in phone_to_fees.items():
|
||
log_lines.append(f"{phone} 中了: {', '.join(fee_types)}")
|
||
|
||
log_lines.append("") # 每个月份后添加空行,分隔月份数据
|
||
|
||
# 返回生成的日志内容
|
||
return "\n".join(log_lines)
|
||
|
||
# 获取日志内容
|
||
def get_log_content():
|
||
log_data = read_log_data(log_file_path)
|
||
if log_data:
|
||
log_content = generate_log_output(log_data)
|
||
return log_content
|
||
return None
|
||
|
||
# 调用函数获取日志内容
|
||
log_content = get_log_content()
|
||
|
||
# 如果获取到日志内容,则打印或者推送
|
||
if log_content:
|
||
print(log_content) # 在这里输出日志,您可以修改为推送日志的代码
|
||
send('电信当月兑换统计', log_content)
|