本地/云端部署 AI 翻译 RSS 订阅源工具

年初的时候,增写过一文《使用 GitHub Action + Google Translate 实现翻译 RSS 订阅源全文》部分解决了从非中文 RSS 订阅源获取消息的问题。

当时的脚本很粗糙,问题也不少,因为工作啥的太忙我也没动力修,最近本想抽空更新一下,结果发现rcy1314大佬已经造好轮子了,在原有的谷歌翻译上,增加了openAI,百度,必应翻译,修正了原来代码翻译出错等问题。于是在此基础上,我增加了部分适配自己习惯的修改,部署到自己的服务器上。


GitHub Action 部署

请直接参考《使用 GitHub Action + Google Translate 实现翻译 RSS 订阅源全文

Linux 服务器部署(以宝塔面板为例)

首先是确保已安装python3.x版本,然后确保升级pip到最新版本,以及你的网络能正常访问这些订阅源和翻译接口。

主要是使用python(翻译脚本)、nginx(提供网页访问)、cron(定时执行shell),

你可以用你自己习惯的环境替代本文中的组件。

PS:我个人习惯是将虚拟环境和项目实体分开放置,也可以按照你的习惯将虚拟环境放在代码目录下。能看明白这句话的人应该不需要我教怎么做了吧(#逃

拉取代码

SSH登录你的服务器,依次执行如下代码

# 切换至宝塔默认网页目录 
cd /www 
# 拉取最新代码 
git clone https://github.com/tjsky/Rss-Translation.git 

建立虚拟环境并安装依赖

避免使用宝塔时在root用户下使用pip可能会导致权限问题和与系统包管理器的冲突。

  1. 安装虚拟环境工具(virtualenv)
pip install virtualenv 
  1. 创建一个新的虚拟环境:
virtualenv rssenv 

这将在当前目录下创建一个名为”rssenv”的虚拟环境。

  1. 激活虚拟环境:
source rssenv/bin/activate 

这将激活虚拟环境,并将您的终端提示符更改为虚拟环境名称类似这样

(rssenv) root@vps:/www# ▮ 
  1. 安装依赖
cd Rss-Translation 
pip install -r requirements.txt 

初始化 RSS 订阅配置

  1. 删除本项目原有的 rss 文件目录下的 xml 文件
  2. 在 test.ini 文件中添加需要翻译的 RSS 订阅信息。

[cfg] 
base = "rss/" 
 
[source001] 
url= "http://feeds.bbci.co.uk/news/rss.xml" 
name= "BBC_Top_Stories_rss" 
max= "5" 
action = "auto" 
md5= "" 
  • 第一行的内容不要动。
  • base = “rss/”:生成的文件存放目录
  • [source001]:订阅序号,从001开始增长,注意请确保编号不要重复,不然代码会报错
  • name = “BBC_Top_Stories_rss”:生成订阅的名称,其中name为英文名不要添加后缀!!!!,本项目生成的文件为固定的.xml格式文件,不需要name有后缀,此外name也不要过长。
  • url = “http://feeds.bbci.co.uk/news/rss.xml”:RSS订阅链接

    – max = “5”:每次RSS订阅源获取的更新条数,如果你的订阅源为全文订阅(就是会显示一大堆文字的话),请适当减少这个数字的大小,因为脚本使用的翻译接口,有最大字符数限制,一次更新太多(翻译太多)会导致后面的文字没有被翻译。
  • md5 = “”:留空即可,将来脚本会自己计算这个数字写入
  • action = “auto”:翻译方向,设置为auto会将任意文字翻译为中文,如果想指定可以看这个

    源语言->目标语言。比如:en->zh-CN意思就是从英语翻译为中文简体。

修改运行参数

打开README.md文件,请将12行之前的东西按你的实际情况和喜好修改

保持第13行是## 已转换翻译源,第14行是- source001就行。

翻译脚本修改订阅源列表是根据行号的,他默认是从第13行开始改。

测试翻译

  1. 进入对应的python虚拟环境(前边有写)
  2. 测试翻译(这里以使用bing翻译为例)
python3 Bingtrans.py 
  1. 应该可以看到前边 base 项所设置的 rss 文件夹内出现了翻译后的xml文件。

宝塔面板设定定时任务

在面板计划任务中设置以下命令(注意需要换行,写成5行)

cd /www 
source rssenv/bin/activate 
cd /Rss-Translation 
python3 Bingtrans.py 
python3 md2html.py README 

这些命令的含义:

1. 切换到工作目录\www

2. 进入虚拟环境rssenv

3. 切换到项目目录\www\Rss-Translation

4. 执行翻译脚本,这里是必应翻译,你可以改成百度或者谷歌啥的

5. 将README.md转化为README.html得到一个订阅源列表网页

部署订阅源网站

  1. 在面板添加站点内添加一个站点,绑定域名
  2. 在站点设置-站点目录里将网站目录修改为/www/Rss-Translation,点保存按钮。
  3. 在站点设置-默认文档里增加README.html,点添加按钮。
  4. 这个时候你应该可以访问你的域名时就会看到这样的网页了

  5. 每条项目的 -> 左侧的是原始订阅链接,右侧是转换后的链接,这个链接和其他的RSS订阅链接一样用就好了。

本地 win 系统下部署

首先是确保已安装python3.x版本,然后确保升级pip到最新版本。

拉取代码

  1. 打开资源管理器,找一个你喜欢的目录(这里假设你选择了D:\github),以下步骤会在该目录下创建两个文件夹分别为 rssenv 和 Rss-Translation 。
  2. 在资源管理器地址框里输入cmd,并回车,开启命令提示行(用终端也行)

3.拉取项目最新代码

# 拉取项目最新代码 
git clone https://github.com/tjsky/Rss-Translation.git 

建立虚拟环境并安装依赖

避免你玩其他 Python 项目时出现项目依赖冲突问题

  1. 安装虚拟环境工具(virtualenv)
pip install virtualenv 
pip install virtualenvwrapper 
# virtualenvwrapper一定要在virtualenv后安装 
  1. 创建一个新的虚拟环境:
virtualenv rssenv 

这将在当前目录下创建一个名为”rssenv”的虚拟环境。

  1. 激活虚拟环境:
D:\github\rssenv\bin\activate 

这将激活虚拟环境,并将您的终端提示符更改为虚拟环境名称类似这样

(rssenv) D:\github> ▏ 
  1. 安装依赖
cd Rss-Translation 
pip install -r requirements.txt 

初始化 RSS 订阅配置

  1. 删除本项目原有的 rss 文件目录下的 xml 文件
  2. 在 test.ini 文件中添加需要翻译的 RSS 订阅信息。

[cfg] 
base = "rss/" 
 
[source001] 
url= "http://feeds.bbci.co.uk/news/rss.xml" 
name= "BBC_Top_Stories_rss" 
max= "5" 
action = "auto" 
md5= "" 
  • 第一行的内容不要动。
  • base = “rss/”:生成的文件存放目录
  • [source001]:订阅序号,从001开始增长,注意请确保编号不要重复,不然代码会报错
  • name = “BBC_Top_Stories_rss”:生成订阅的名称,其中name为英文名不要添加后缀!!!!,本项目生成的文件为固定的.xml格式文件,不需要name有后缀,此外name也不要过长。
  • url = “http://feeds.bbci.co.uk/news/rss.xml”:RSS订阅链接

    – max = “5”:每次RSS订阅源获取的更新条数,如果你的订阅源为全文订阅(就是会显示一大堆文字的话),请适当减少这个数字的大小,因为脚本使用的翻译接口,有最大字符数限制,一次更新太多(翻译太多)会导致后面的文字没有被翻译。
  • md5 = “”:留空即可,将来脚本会自己计算这个数字写入
  • action = “auto”:翻译方向,设置为auto会将任意文字翻译为中文,如果想指定可以看这个

    源语言->目标语言。比如:en->zh-CN意思就是从英语翻译为中文简体。

修改运行参数

打开README.md文件,请将12行之前的东西按你的实际情况和喜好修改

保持第13行是## 已转换翻译源,第14行是- source001就行。

翻译脚本修改订阅源列表是根据行号的,他默认是从第13行开始改。

测试翻译

  1. 进入对应的python虚拟环境(前边有写)
  2. 测试翻译(这里以使用bing翻译为例)
python3 Bingtrans.py 
  1. 应该可以看到前边 base 项所设置的 rss 文件夹内出现了翻译后的xml文件。

  1. 获得订阅源列表网页
python md2html.py README 

应该可以看到Rss-Translation目录下出现了一个README.html,双击打开。

制作一键启动脚本

在Rss-Translation目录下新建一个run.txt文件并将后缀名改成.bat(小心别改成run.bat.txt了)

复制并根据实际情况修改后保存。

D:\github\rssenv\bin\activate 
python Bingtrans.py 
python md2html.py README 

这些命令的含义:

1. 进入虚拟环境rssenv

2. 执行翻译脚本,这里是必应翻译,你可以改成百度或者谷歌啥的

3. 将README.md转化为README.html得到一个订阅源列表网页

定期运行 RSS 翻译并隐藏 CMD 窗口运行

隐藏CMD窗口运行

新建文本文件并改名为run.vbe,打开文件写入如下代码,并保存.(第17行设定运行bat为run.bat)

set ws=wscript.createobject("wscript.shell") 
 
' 获取脚本路径 
Function scriptPath(strFileName) 
  ' 将类Unix路径 / 替换为 \ 
  strFileName = Replace(strFileName, "/", "\") 
 
  Dim iPos 
  ' 从路径末尾开始搜索\,这样从第一个字符到这个位置 
  ' 就是我们所需要的 
  iPos = InStrRev(strFileName, "\") 
  ' 使用Left保留需要的部分 
  scriptPath = Left(strFileName, iPos) 
End Function 
 
cmd = """"+scriptPath(WScript.ScriptFullName)+"\run.bat"" /start" 
 
ws.run cmd,0 
定期运行
  1. 打开任务计划程序(直接在开始菜单里搜就行,或者在开始菜单图标上右键→计算机管理→任务计划程序)
  2. 右侧创建任务
    • 常规:名字随便写,选择不管用户是否登录都要运行
    • 触发器:新建,选择每天,每隔一天发生一次,重复任务间隔1小时

    • 操作:选择前边你设定的那个run.vbe文件的位置
    • 条件:勾选“只有在以下网络连接时才启动-任何链接”

The post 本地/云端部署 AI 翻译 RSS 订阅源工具 appeared first on 秋风于渭水.

本文转自: https://www.tjsky.net/tutorial/801?pk_campaign=feed&pk_kwd=%25e6%259c%25ac%25e5%259c%25b0-%25e4%25ba%2591%25e7%25ab%25af%25e9%2583%25a8%25e7%25bd%25b2-ai-%25e7%25bf%25bb%25e8%25af%2591-rss-%25e8%25ae%25a2%25e9%2598%2585%25e6%25ba%2590%25e5%25b7%25a5%25e5%2585%25b7
仅做个人收藏,版权归原作者所有