diff --git a/.github/workflows/发布wordpress文章.yml b/.github/workflows/发布wordpress文章.yml new file mode 100644 index 0000000..9987c86 --- /dev/null +++ b/.github/workflows/发布wordpress文章.yml @@ -0,0 +1,74 @@ +name: 发布wordpress文章 + +on: + push: + branches: + - main + +jobs: + generate_changelog: + runs-on: ubuntu-latest + steps: + # 检出代码 + - name: 🛒 检出代码 + uses: https://git.aoun.ltd/actions/checkout@v4 + + # 设置时区 + - name: 设置时区 + env: + TZ: Asia/Shanghai + run: date # 验证时区设置是否生效 + + # 1. 读取 README.md 内容 + - name: 读取 README.md 内容 + id: read_wp + run: | + CONTENT=$(> $GITHUB_ENV + echo "$CONTENT" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + # 2. 读取固件版本 DISTRIB_REVISION.txt + - name: 读取 DISTRIB_REVISION.txt 中的固件版本 + id: read_firmware + run: | + if [ -f DISTRIB_REVISION.txt ]; then + FIRMWARE_VERSION=$(sed -n '2p' DISTRIB_REVISION.txt | xargs) + echo "firmware_version=$FIRMWARE_VERSION" >> $GITHUB_ENV + else + echo "固件版本文件不存在,设置默认值" >&2 + echo "firmware_version=Unknown" >> $GITHUB_ENV + fi + + # 3. 更新 WordPress 文章 + - name: 更新 WordPress 文章 + env: + WORDPRESS_URL: ${{ secrets.WORDPRESS_URL }} + WORDPRESS_USERNAME: ${{ secrets.WORDPRESS_USERNAME }} + WORDPRESS_PASSWORD: ${{ secrets.WORDPRESS_PASSWORD }} + POST_ID: 829 # 替换为文章ID + POST_STATUS: "draft" # 设置文章状态为 'publish' (可以更改为 'draft' 或 'pending') + run: | + # 获取当前中国时间 + FORMATTED_TIME=$(TZ='Asia/Shanghai' date "+%Y年%m月%d日") + + # 定义更新的数据内容 + JSON_PAYLOAD=$(jq -n \ + --arg content "$wp_content" \ + --arg title "${FORMATTED_TIME}最新每天更新OpenWRT&LEDE x86/64 软路由精品稳定版固件下载含插件" \ + --arg post_status "$POST_STATUS" \ + --arg firmware_version "${{ env.firmware_version }}" \ + --arg kernel_version "6.X" \ + --arg file_size "1024MB" \ + --arg update_time "$FORMATTED_TIME" \ + '{title: $title, description: $content, post_status: $post_status, custom_fields: [{key: "wb_dl_firmware_version", value: $firmware_version}, {key: "wb_dl_kernel_version", value: $kernel_version}, {key: "wb_dl_file_size", value: $file_size}, {key: "wb_dl_update_time", value: $update_time}]}' + ) + + # 更新 WordPress 文章 + RESPONSE=$(curl -s -X POST "$WORDPRESS_URL" \ + --header "Content-Type: application/json" \ + --user "$WORDPRESS_USERNAME:$WORDPRESS_PASSWORD" \ + --data "$JSON_PAYLOAD") + + # 检查响应状态 + echo "$RESPONSE" | jq . || echo "更新失败" \ No newline at end of file diff --git a/.github/workflows/翻译更新日志 copy.yml b/.github/workflows/翻译更新日志 copy.yml deleted file mode 100644 index e48e963..0000000 --- a/.github/workflows/翻译更新日志 copy.yml +++ /dev/null @@ -1,125 +0,0 @@ -name: 翻译更新日志 - -on: - push: - branches: - - main - -jobs: - generate_changelog: - runs-on: ubuntu-latest - steps: - # 检出代码 - - name: 🛒 检出代码 - uses: https://git.aoun.ltd/actions/checkout@v4 - - # 设置时区 - - name: 设置时区 - env: - TZ: Asia/Shanghai - run: date # 验证时区设置是否生效 - - # 1. 使用 GitHub API 获取提交信息 - - name: 获取最新提交信息 - id: fetch_commits - run: | - COMMIT_URL="https://api.github.com/repos/coolsnowwolf/lede/commits" - # 通过 API 获取最近的提交 - COMMIT_DATA=$(curl -s "$COMMIT_URL") - # 提取最新提交的日期 - LATEST_DATE=$(echo "$COMMIT_DATA" | jq -r '.[0].commit.committer.date[:10]') - # 过滤与最新日期相同的所有提交消息,并排除包含“Signed-off-by”的行 - MESSAGES=$(echo "$COMMIT_DATA" | jq -r --arg date "$LATEST_DATE" '.[] | select(.commit.committer.date | startswith($date)) | .commit.message' | grep -v "Signed-off-by") - # 将所有提交消息合并为一个字符串,保留换行符 - FORMATTED_MESSAGES=$(echo "$MESSAGES") - echo "messages<> $GITHUB_OUTPUT - echo "$FORMATTED_MESSAGES" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - # 2. 调用翻译 API - - name: 翻译更新日志 - id: translate - env: - TRANSLATION_URL: "https://ollama.aoun.ltd/api/generate" - run: | - # 定义 PROMPT,多行内容使用 EOF 来保留格式 - PROMPT=$(cat <> $GITHUB_OUTPUT - echo "$TRANSLATED_TEXT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - # 3. 输出到更新日志文件 - - name: 生成更新日志 - run: | - echo "${{ steps.translate.outputs.translated_text }}" > ./更新日志.txt - cat ./更新日志.txt - - # 4. 创建中英文对照的更新日志,使用markdown格式的表格展示 - - name: 生成中英文对照的更新日志 - run: | - # 处理英文原文和中文翻译中的换行符为 `
` - ENGLISH_TEXT=$(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/
/g') - CHINESE_TEXT=$(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/
/g') - - # 创建 Markdown 表格 - echo "| 英文原文 | 中文翻译 |" > ./更新日志对照表格.md - echo "| --- | --- |" >> ./更新日志对照表格.md - echo "| $ENGLISH_TEXT | $CHINESE_TEXT |" >> ./更新日志对照表格.md - - # 输出表格内容,方便调试 - cat ./更新日志对照表格.md - - # 5. 更新 更新日志.md 文件 - - name: 更新 更新日志.md 文件 - run: | - # 生成要插入的新内容 - NEW_CONTENT="\n\n" - NEW_CONTENT+="| 英文原文 | 中文翻译 |\n" - NEW_CONTENT+="| --- | --- |\n" - NEW_CONTENT+="| $(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/
/g') | $(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/
/g') |\n\n" - NEW_CONTENT+="" - - # 替换更新日志.md 文件中的标记内容 - sed -i "//, //c\\$NEW_CONTENT" 更新日志.md - - # 显示更新后的 更新日志.md 内容 - cat 更新日志.md - - # 6. 配置 Git 用户信息并提交更改 - - name: 提交并推送更改 - #env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git config --global user.name '298977887' - git config --global user.email '298977887@qq.com' - git add 更新日志.md - git commit -m "🤖 更新 更新日志.md" - git push origin HEAD:main \ No newline at end of file diff --git a/.github/workflows/翻译更新日志.yml b/.github/workflows/翻译更新日志.yml index 0181831..ddfcd4d 100644 --- a/.github/workflows/翻译更新日志.yml +++ b/.github/workflows/翻译更新日志.yml @@ -1,4 +1,4 @@ -name: test +name: 翻译更新日志 on: # push: @@ -6,50 +6,120 @@ on: # - main jobs: - job_1: + generate_changelog: runs-on: ubuntu-latest steps: # 检出代码 - name: 🛒 检出代码 uses: https://git.aoun.ltd/actions/checkout@v4 - # 1. 下载并安装 Trojan-Go - - name: 📦 解压并安装 Trojan-Go - run: | - # 下载 Trojan-Go 二进制文件 - wget -O trojan-go.zip https://git.aoun.ltd/18152827937/Trojan-GO/raw/commit/ea063e62859270d123379dc69db57f29db2b192f/trojan-go-linux-amd64.zip - unzip trojan-go.zip -d trojan-go - sudo mv trojan-go/trojan-go /usr/local/bin/trojan-go - rm -rf trojan-go.zip trojan-go - - # 2. 配置代理参数 - - name: 🔧 配置 Trojan-Go 代理 - run: | - # 将多行 JSON 配置内容从 Secrets 中写入 trojan-go-config.json 文件 - echo "$TROJAN_GO_CONFIG" > trojan-go-config.json + # 设置时区 + - name: 设置时区 env: - TROJAN_GO_CONFIG: ${{ secrets.TROJAN_GO_CONFIG }} + TZ: Asia/Shanghai + run: date # 验证时区设置是否生效 - # 3. 启动 Trojan-Go 代理 - - name: 🔍 启动并保持 Trojan-Go 运行 + # 1. 使用 GitHub API 获取提交信息 + - name: 获取最新提交信息 + id: fetch_commits run: | - nohup trojan-go -config trojan-go-config.json > /tmp/trojan-go.log 2>&1 & disown - sleep 5 # 等待代理启动 - # 检查 Trojan-Go 是否在运行 - if pgrep -x "trojan-go" > /dev/null - then - echo "Trojan-Go 已成功启动并在运行中。" - else - echo "启动失败,检查日志文件 /tmp/trojan-go.log 以获取更多信息。" && cat /tmp/trojan-go.log && exit 1 - fi + COMMIT_URL="https://api.github.com/repos/coolsnowwolf/lede/commits" + # 通过 API 获取最近的提交 + COMMIT_DATA=$(curl -s "$COMMIT_URL") + # 提取最新提交的日期 + LATEST_DATE=$(echo "$COMMIT_DATA" | jq -r '.[0].commit.committer.date[:10]') + # 过滤与最新日期相同的所有提交消息,并排除包含“Signed-off-by”的行 + MESSAGES=$(echo "$COMMIT_DATA" | jq -r --arg date "$LATEST_DATE" '.[] | select(.commit.committer.date | startswith($date)) | .commit.message' | grep -v "Signed-off-by") + # 将所有提交消息合并为一个字符串,保留换行符 + FORMATTED_MESSAGES=$(echo "$MESSAGES") + echo "messages<> $GITHUB_OUTPUT + echo "$FORMATTED_MESSAGES" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT - # 安装 Python 依赖,使用清华大学镜像源 - - name: 📥 安装 Python 依赖 + # 2. 调用翻译 API + - name: 翻译更新日志 + id: translate + env: + TRANSLATION_URL: "https://ollama.aoun.ltd/api/generate" run: | - pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests + # 定义 PROMPT,多行内容使用 EOF 来保留格式 + PROMPT=$(cat <> $GITHUB_OUTPUT + echo "$TRANSLATED_TEXT" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + # 3. 输出到更新日志文件 + - name: 生成更新日志 run: | - python3 翻译更新日志.py > 更新日志.txt - cat 更新日志.txt \ No newline at end of file + echo "${{ steps.translate.outputs.translated_text }}" > ./更新日志.txt + cat ./更新日志.txt + + # 4. 创建中英文对照的更新日志,使用markdown格式的表格展示 + - name: 生成中英文对照的更新日志 + run: | + # 处理英文原文和中文翻译中的换行符为 `
` + ENGLISH_TEXT=$(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/
/g') + CHINESE_TEXT=$(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/
/g') + + # 创建 Markdown 表格 + echo "| 英文原文 | 中文翻译 |" > ./更新日志对照表格.md + echo "| --- | --- |" >> ./更新日志对照表格.md + echo "| $ENGLISH_TEXT | $CHINESE_TEXT |" >> ./更新日志对照表格.md + + # 输出表格内容,方便调试 + cat ./更新日志对照表格.md + + # 5. 更新 更新日志.md 文件 + - name: 更新 更新日志.md 文件 + run: | + # 生成要插入的新内容 + NEW_CONTENT="\n\n" + NEW_CONTENT+="| 英文原文 | 中文翻译 |\n" + NEW_CONTENT+="| --- | --- |\n" + NEW_CONTENT+="| $(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/
/g') | $(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/
/g') |\n\n" + NEW_CONTENT+="" + + # 替换更新日志.md 文件中的标记内容 + sed -i "//, //c\\$NEW_CONTENT" 更新日志.md + + # 显示更新后的 更新日志.md 内容 + cat 更新日志.md + + # 6. 配置 Git 用户信息并提交更改 + - name: 提交并推送更改 + #env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git config --global user.name '298977887' + git config --global user.email '298977887@qq.com' + git add 更新日志.md + git commit -m "🤖 更新 更新日志.md" + git push origin HEAD:main \ No newline at end of file diff --git a/发布文章.py b/发布文章.py new file mode 100644 index 0000000..5827a74 --- /dev/null +++ b/发布文章.py @@ -0,0 +1,59 @@ +import os +import xmlrpc.client +from datetime import datetime, timezone, timedelta + +# 设置你的 WordPress 网站和 XML-RPC URL +wp_url = os.environ['WORDPRESS_URL'] + +# 设置 WordPress 用户名和密码 +wp_username = os.environ['WORDPRESS_USERNAME'] +wp_password = os.environ['WORDPRESS_PASSWORD'] + +# 设置要更新的文章的ID +post_id = 785 # 替换为实际的文章ID + +# 创建一个客户端实例 +client = xmlrpc.client.ServerProxy(wp_url) + +# 获取现有的文章内容 +post = client.metaWeblog.getPost(post_id, wp_username, wp_password) + +# 从文件中读取新的文章内容 +with open('WP.txt', 'r', encoding='utf-8') as file: + new_content = file.read() + +# 从 DISTRIB_REVISION.txt 文件中读取固件版本 +with open('DISTRIB_REVISION.txt', 'r', encoding='utf-8') as file: + lines = file.readlines() + firmware_version = lines[1].strip() if len(lines) >= 2 else "Unknown" + +# 更新文章内容 +post['description'] = new_content + +# 获取当前中国时间 +# 设置你所在的时区的 UTC 偏移量 +utc_offset = timedelta(hours=8) +current_time = datetime.now(timezone(utc_offset)) +formatted_time = current_time.strftime("%Y年%m月%d日") + +# 更新文章内容 +post['title'] = f"{formatted_time}最新每天更新OpenWRT&LEDE x86/64 软路由精品稳定版固件下载含插件" +#post['description'] = "更新后的内容2" + +# 更新自定义字段 +custom_fields = post['custom_fields'] + +for field in custom_fields: + if field['key'] == 'wb_dl_firmware_version': + field['value'] = f'{firmware_version}' # 更新固件版本 + elif field['key'] == 'wb_dl_kernel_version': + field['value'] = '6.X' # 更新内核版本-适用平台 + elif field['key'] == 'wb_dl_file_size': + field['value'] = '1024MB' # 更新文件大小 + elif field['key'] == 'wb_dl_update_time': + field['value'] = f'{formatted_time}' # 更新更新日期 + +post['custom_fields'] = custom_fields + +# 发送更新请求 +client.metaWeblog.editPost(post_id, wp_username, wp_password, post, True) \ No newline at end of file diff --git a/更新日志.md b/更新日志.md index 8707de2..961f5d3 100644 --- a/更新日志.md +++ b/更新日志.md @@ -6,7 +6,7 @@ | 英文原文 | 中文翻译 | | --- | --- | -| mediatek: mt7988: add DT entries for WED

Add memory regions and devices used for wireless offloading to the
device tree for MT7988.

This allows using WED on devices with MT7988 SoC and MT7995E, MT7996E or
MT7992E wireless controllers.

Devices with 4 GiB of RAM (or more) will still need ajustments to avoid
running out of swiotlb entries.

generic: mtk_wed: fix path of MT7988 WO firmware

commit eee3c695f3 (linux-firmware: add offloading firmware for MT7988)
added mt7988_wo_{0,1}.bin in the 'mediatek/mt7988' directory while driver
currently expects the files in the 'mediatek' directory.

Import pending patch which changes the path in the driver header now
that the firmware has been added. | ### MT7988:添加 DT 进入口和相关设备

添加 MT7988 SoC 的 memory regions 和 wireless offloading 相关的 devices 到 device tree。

此配置使得可以在使用 WED 在具有 MT7988 SoC 和 MT7995E、MT7996E 或 MT7992E 的无线控制器的设备上。

设备4 GiB(或更大)RAM将仍需要调整,以避免 swiotlb entries 过载。

###_generic:修正 MT7988 WO firmware 路径

commit eee3c695f3 (linux-firmware:添加MT7988 无线下降firmware)

在驱动器期望的文件路径(mediatek/mt7988)中添加了 mt7988_wo_{0,1}.bin 的值。

导入等待 patch 的内容,该 patch 改变了驱动器头部中的路径,因为firmware 已被添加。

### update list
- ... | +| RAM: Set to 960M, which can meet the needs of more software installations. | RAM:设定960M,可以满足更多的软件安装需求。 |