import requests from datetime import datetime, timezone, timedelta import logging import json # 配置日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') # 设置 GitHub API URL repo = "coolsnowwolf/lede" url = f"https://api.github.com/repos/{repo}/commits" logging.info(f"设置 GitHub API URL: {url}") # 设置你所在的时区的 UTC 偏移量 utc_offset = timedelta(hours=8) logging.info(f"设置时区偏移量: UTC+{utc_offset}") # 尝试发送请求 try: logging.info("发送请求到 GitHub API...") response = requests.get(url) response.raise_for_status() # 如果响应不是200,将引发HTTPError异常 logging.info("请求成功,状态码: 200") except requests.RequestException as e: logging.error(f"请求错误: {e}") else: commits = response.json() logging.info("成功解析响应 JSON 数据") # 获取最新提交的日期 latest_commit_date_utc = datetime.fromisoformat(commits[0]['commit']['committer']['date'].replace('Z', '+00:00')) latest_commit_date = latest_commit_date_utc.astimezone(timezone(utc_offset)).date() logging.info(f"最新提交日期 (UTC): {latest_commit_date_utc}") logging.info(f"最新提交日期 (本地时区): {latest_commit_date}") # 初始化存储所有相关提交信息的字符串 all_commits_text = "" logging.info("开始遍历提交记录,获取最新日期的提交信息") for commit in commits: commit_date_utc = datetime.fromisoformat(commit['commit']['committer']['date'].replace('Z', '+00:00')) commit_date = commit_date_utc.astimezone(timezone(utc_offset)).date() if commit_date == latest_commit_date: commit_message = commit['commit']['message'] all_commits_text += commit_message + "\n" # 将每个提交信息添加到字符串中 logging.info(f"找到匹配的提交日期: {commit_date},提交信息: {commit_message}") # 使用 llama3.1 模型翻译 logging.info("开始调用 llama3.1 模型进行翻译") translation_api_url = "https://ollama.aoun.ltd/api/generate" headers = {"Content-Type": "application/json"} payload = { "model": "llama3.1", "prompt": f"请翻译这个内容:{all_commits_text}", "stream": False } try: response = requests.post(translation_api_url, headers=headers, data=json.dumps(payload)) response.raise_for_status() translated_text = response.json().get("response", "翻译失败") logging.info("翻译成功") # 获取当前中国时间 current_time = datetime.now(timezone(utc_offset)) formatted_time = current_time.strftime("%Y年%m月%d日 %H点%M分") logging.info(f"当前时间 (本地): {formatted_time}") # 将时间信息添加到翻译文本前面 final_text = f"更新日期: {formatted_time}\n{translated_text}" logging.info("格式化翻译文本") # 输出翻译结果到文件 with open('更新日志.txt', 'w', encoding='utf-8') as file: file.write(final_text) logging.info("翻译结果已写入文件 '更新日志.txt'") except Exception as e: logging.error(f"翻译错误: {type(e).__name__}, {str(e)}")