dailycheckin/index.py

91 lines
3.6 KiB
Python

# -*- coding: utf-8 -*-
import json
import os
import sys
import time
from datetime import datetime, timedelta
from config import checkin_map, get_checkin_info, get_notice_info, env2config
from motto import Motto
from utils.message import push_message
def main_handler(event, context):
start_time = time.time()
utc_time = datetime.utcnow() + timedelta(hours=8)
if "IS_GITHUB_ACTION" in os.environ:
message = os.getenv("ONLY_MESSAGE")
data = env2config()
else:
if isinstance(event, dict):
message = event.get("Message")
else:
message = None
with open(os.path.join(os.path.dirname(__file__), "config/config.json"), "r", encoding="utf-8") as f:
data = json.loads(f.read())
try:
motto = data.get("MOTTO")
notice_info = get_notice_info(data=data)
check_info = get_checkin_info(data=data)
except Exception as e:
raise e
content_list = [f"当前时间: {utc_time}"]
if message == "xmly":
if check_info.get("xmly_cookie_list"):
check_name, check_func = checkin_map.get("XMLY_COOKIE_LIST")
for check_item in check_info.get("xmly_cookie_list", []):
if "xxxxxx" not in str(check_item) and "多账号" not in str(check_item):
try:
msg = check_func(check_item).main()
content_list.append(f"{check_name}\n{msg}")
except Exception as e:
content_list.append(f"{check_name}\n{e}")
print(check_name, e)
else:
print(f"检测【{check_name}】脚本到配置文件包含模板配置,进行跳过")
else:
for one_check, check_tuple in checkin_map.items():
check_name, check_func = check_tuple
if one_check not in ["XMLY_COOKIE_LIST"]:
if check_info.get(one_check.lower()):
print(f"----------已检测到正确的配置,并开始执行 {one_check} 签到----------")
for check_item in check_info.get(one_check.lower(), []):
if "xxxxxx" not in str(check_item) and "多账号" not in str(check_item):
try:
msg = check_func(check_item).main()
content_list.append(f"{check_name}\n{msg}")
except Exception as e:
content_list.append(f"{check_name}\n{e}")
print(check_name, e)
else:
print(f"检测【{check_name}】脚本到配置文件包含模板配置,进行跳过")
else:
print(f"----------未检测到正确的配置,并跳过执行 {one_check} 签到----------")
if motto:
try:
msg_list = Motto().main()
except Exception as e:
print(e)
msg_list = []
content_list += msg_list
content_list.append(f"任务使用时间: {int(time.time() - start_time)}")
if message == "xmly":
if utc_time.hour in [9, 18] and utc_time.minute == 0:
flag = True
else:
flag = False
else:
flag = True
if flag:
push_message(content_list=content_list, notice_info=notice_info)
return
if __name__ == "__main__":
args = sys.argv
if len(args) > 1:
event = {"Message": args[1]}
else:
event = None
main_handler(event=event, context=None)