1028.yml
All checks were successful
发布wordpress文章 / generate_changelog (push) Successful in 7s

This commit is contained in:
298977887 2024-10-29 00:14:19 +08:00
parent 2ceb675d13
commit 31212b0ffa
5 changed files with 239 additions and 161 deletions

View File

@ -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=$(<README.md)
echo "wp_content<<EOF" >> $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 "更新失败"

View File

@ -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<<EOF" >> $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 <<EOF
你是一位熟悉技术文档、硬件描述和设备树配置的专业翻译员,请准确且简洁地将以下内容从英文翻译成简体中文。
要求:
1. 务必使用 text 文本格式,但不要使用 \`\`\` 等语言标记。
2. 遵循技术术语的准确性,不意译,不简化。
3. 保持原文的标题和分段结构。
4. 保证每一项内容之间留有一行空行,适当使用换行符 \`\\n\` 使段落清晰分隔。
5. 不要添加任何额外的描述或解释,直接翻译每条内容即可。
以下是需要翻译的内容:
${{ steps.fetch_commits.outputs.messages }}
EOF
)
# 使用 jq 构建 JSON 数据
JSON_PAYLOAD=$(jq -n \
--arg model "llama3.2" \
--arg prompt "$PROMPT" \
'{model: $model, prompt: $prompt, stream: false}')
# 调用翻译 API
RESPONSE=$(curl -s -X POST "$TRANSLATION_URL" \
-H "Content-Type: application/json" \
-d "$JSON_PAYLOAD")
# 获取翻译的文本内容
TRANSLATED_TEXT=$(echo "$RESPONSE" | jq -r '.response // "翻译失败"')
# 将翻译结果设置为输出
echo "translated_text<<EOF" >> $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: |
# 处理英文原文和中文翻译中的换行符为 `<br>`
ENGLISH_TEXT=$(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/<br>/g')
CHINESE_TEXT=$(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/<br>/g')
# 创建 Markdown 表格
echo "| 英文原文 | 中文翻译 |" > ./更新日志对照表格.md
echo "| --- | --- |" >> ./更新日志对照表格.md
echo "| $ENGLISH_TEXT | $CHINESE_TEXT |" >> ./更新日志对照表格.md
# 输出表格内容,方便调试
cat ./更新日志对照表格.md
# 5. 更新 更新日志.md 文件
- name: 更新 更新日志.md 文件
run: |
# 生成要插入的新内容
NEW_CONTENT="<!--action-update-start-->\n\n"
NEW_CONTENT+="| 英文原文 | 中文翻译 |\n"
NEW_CONTENT+="| --- | --- |\n"
NEW_CONTENT+="| $(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/<br>/g') | $(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/<br>/g') |\n\n"
NEW_CONTENT+="<!--action-update-end-->"
# 替换更新日志.md 文件中的标记内容
sed -i "/<!--action-update-start-->/, /<!--action-update-end-->/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

View File

@ -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<<EOF" >> $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 <<EOF
你是一位熟悉技术文档、硬件描述和设备树配置的专业翻译员,请准确且简洁地将以下内容从英文翻译成简体中文。
要求:
1. 务必使用 text 文本格式,但不要使用 \`\`\` 等语言标记。
2. 遵循技术术语的准确性,不意译,不简化。
3. 保持原文的标题和分段结构。
4. 保证每一项内容之间留有一行空行,适当使用换行符 \`\\n\` 使段落清晰分隔。
5. 不要添加任何额外的描述或解释,直接翻译每条内容即可。
# 翻译更新日志
- name: 📦 运行翻译更新输出更新日志txt文件
以下是需要翻译的内容:
${{ steps.fetch_commits.outputs.messages }}
EOF
)
# 使用 jq 构建 JSON 数据
JSON_PAYLOAD=$(jq -n \
--arg model "llama3.2" \
--arg prompt "$PROMPT" \
'{model: $model, prompt: $prompt, stream: false}')
# 调用翻译 API
RESPONSE=$(curl -s -X POST "$TRANSLATION_URL" \
-H "Content-Type: application/json" \
-d "$JSON_PAYLOAD")
# 获取翻译的文本内容
TRANSLATED_TEXT=$(echo "$RESPONSE" | jq -r '.response // "翻译失败"')
# 将翻译结果设置为输出
echo "translated_text<<EOF" >> $GITHUB_OUTPUT
echo "$TRANSLATED_TEXT" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
# 3. 输出到更新日志文件
- name: 生成更新日志
run: |
python3 翻译更新日志.py > 更新日志.txt
cat 更新日志.txt
echo "${{ steps.translate.outputs.translated_text }}" > ./更新日志.txt
cat ./更新日志.txt
# 4. 创建中英文对照的更新日志使用markdown格式的表格展示
- name: 生成中英文对照的更新日志
run: |
# 处理英文原文和中文翻译中的换行符为 `<br>`
ENGLISH_TEXT=$(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/<br>/g')
CHINESE_TEXT=$(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/<br>/g')
# 创建 Markdown 表格
echo "| 英文原文 | 中文翻译 |" > ./更新日志对照表格.md
echo "| --- | --- |" >> ./更新日志对照表格.md
echo "| $ENGLISH_TEXT | $CHINESE_TEXT |" >> ./更新日志对照表格.md
# 输出表格内容,方便调试
cat ./更新日志对照表格.md
# 5. 更新 更新日志.md 文件
- name: 更新 更新日志.md 文件
run: |
# 生成要插入的新内容
NEW_CONTENT="<!--action-update-start-->\n\n"
NEW_CONTENT+="| 英文原文 | 中文翻译 |\n"
NEW_CONTENT+="| --- | --- |\n"
NEW_CONTENT+="| $(echo "${{ steps.fetch_commits.outputs.messages }}" | sed ':a;N;$!ba;s/\n/<br>/g') | $(echo "${{ steps.translate.outputs.translated_text }}" | sed ':a;N;$!ba;s/\n/<br>/g') |\n\n"
NEW_CONTENT+="<!--action-update-end-->"
# 替换更新日志.md 文件中的标记内容
sed -i "/<!--action-update-start-->/, /<!--action-update-end-->/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

59
发布文章.py Normal file
View File

@ -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)

View File

@ -6,7 +6,7 @@
| 英文原文 | 中文翻译 |
| --- | --- |
| mediatek: mt7988: add DT entries for WED<br><br>Add memory regions and devices used for wireless offloading to the<br>device tree for MT7988.<br><br>This allows using WED on devices with MT7988 SoC and MT7995E, MT7996E or<br>MT7992E wireless controllers.<br><br>Devices with 4 GiB of RAM (or more) will still need ajustments to avoid<br>running out of swiotlb entries.<br><br>generic: mtk_wed: fix path of MT7988 WO firmware<br><br>commit eee3c695f3 (linux-firmware: add offloading firmware for MT7988)<br>added mt7988_wo_{0,1}.bin in the 'mediatek/mt7988' directory while driver<br>currently expects the files in the 'mediatek' directory.<br><br>Import pending patch which changes the path in the driver header now<br>that the firmware has been added. | ### MT7988添加 DT 进入口和相关设备<br><br>添加 MT7988 SoC 的 memory regions 和 wireless offloading 相关的 devices 到 device tree。<br><br>此配置使得可以在使用 WED 在具有 MT7988 SoC 和 MT7995E、MT7996E 或 MT7992E 的无线控制器的设备上。 <br><br>设备4 GiB或更大RAM将仍需要调整以避免 swiotlb entries 过载。<br><br>###_generic修正 MT7988 WO firmware 路径<br><br>commit eee3c695f3 (linux-firmware添加MT7988 无线下降firmware)<br><br>在驱动器期望的文件路径mediatek/mt7988中添加了 mt7988_wo_{0,1}.bin 的值。 <br><br>导入等待 patch 的内容,该 patch 改变了驱动器头部中的路径因为firmware 已被添加。<br><br>### update list<br>- ... |
| RAM: Set to 960M, which can meet the needs of more software installations. | RAM设定960M可以满足更多的软件安装需求。 |
<!--action-update-end-->