已重构翻译文件配置、更新Action环境依赖,已测试运行翻译文件,可随时切换翻译接口【切换翻译需在工作流yml文件中更改ls_show步骤下运行的python文件】
为防止运行加载过慢出现错误,代码中添加了避免重复翻译及使用集合来去除重复项
默认规则:如果 RSS 文件已存在,将去除原有xml重复内容更新最新内容
注意:免费的翻译API会有请求次数限制!如果定时运行时间过于频繁,可能会导致action更新抓取一些站点时被限制及封禁!免费的翻译包括bing翻译和谷歌翻译
已改为定时每3小时运行一次(建议每6-12小时运行),增加谷歌翻译接口、mtranslate谷歌翻译接口及百度翻译接口、Open ai翻译接口
12.9-修复特殊字符转译
12.30-修复由于缺少libxml2和libxslt开发包导致的BUG
-
修复了使用set_cfg()方法修改配置文件数据时的bug
-
使用了 jinja2 模板引擎来生成 RSS 格式的输出,并对 XML 数据进行了安全处理,添加了运行命令pip install lxml外一个解析库 html5lib:pip install html5lib
-
对Feed的生成做了一些修改,扩展RSS的一些属性,如通过strftime格式化时间输出。并且将Feed的构成改成了字符串拼接的方式,更加简洁易懂。
-
代码使用了try-except语句进行容错处理,确保代码不会因为单个翻译出错而出现错误。
-
更换了翻译接口,使用pygtrans模块代替googletrans模块
-
将字符串输入到md5()函数中,使用encode()函数将字符串转换为UTF-8编码。
-
使用os.path.join()方法代替基本字符串拼接的方式来构建输出目录。
-
在处理HTML数据时,使用了更准确的BeautifulSoup的解析模式。
- 集成了百度翻译API密钥和应用ID,修改为自己的即可使用
- 优势:收费的api翻译更多更准确和不限制api次数
- 设置源语言和目标语言为百度翻译API支持的语言代码
- 修改tran方法中的BaiduTran实例化部分,传入源语言和目标语言参数
- 集成了open ai翻译API密钥修改为自己的即可使用
- 修改调用模型为gpt-3.5-turbo
- 优化传入源语言和目标语言参数
添加翻译文件依赖库
pip install mtranslate
pip install lxml
pip install html5lib
pip install jinja2
pip install googletrans
pip install googletrans==4.0.0-rc1
pip install beautifulsoup4 pygtrans feedparser rfeed
pip install --upgrade feedparser
pip install requests
-
其中googletrans为谷歌翻译库,requests为百度翻译库,mtranslate
和
jinja2为bing翻译必须库 -
使用 git status --porcelain 指令来检查代码库中是否存在新的更改需要提交,如果有,则执行 git add,git commit 和 git push 命令。否则,输出 “No changes, skip push.” 的消息。
-
为可随时切换不同翻译api,添加多个翻译文件所需模块
-
在运行代码前,先删除本项目原有的rss文件目录下的xml文件(并确认已安装库文件)可查看工作流文件中Install dependencies步骤下配置【一般不需要改动】
⚠️ ⚠️ ⚠️ :清空xml文件后,只有md5值变动【说明rss源更新了信息】后,运行文件才会让xml被生产,所以一开始如果想生成新的xml文件就需要test.ini中md5值为空或是旧的,否则会造成写入README.md文件时转换的RSS源信息找不到xml文件!! -
在test.ini 文件中添加需要翻译的 RSS 订阅信息。例如:
[cfg]
base = "rss/"
[BBC]
url= "https://feeds.bbci.co.uk/news/rss.xml"
name= "BBC_zh"
max= "5"
action = "auto"
md5= ""
其中name为英文名不要添加后缀!!!!,本项目生成的文件为固定的.xml格式文件,不需要name有后缀,此外name也不要字符过长避免识别有误
base参数为生成的文件存放目录,max参数为rss最大条目数(请不要设置超过20,使用免费翻译的api时RSS条目超过一定数量会出现不完整翻译),md5请设置为空!
3.打开 GitHub 仓库的界面,进入“Settings” > “Secrets”,点击“New repository secret”按钮,创建名为 WORK_TOKEN 的 secret。【设置-开发者设置-生成个人经典令牌】
4.将生成的 Token及U_EMAIL(你的github邮箱)、U_NAME(你的github用户名)复制黏贴到Action-操作机密和变量中,然后运行action即可
注:我把jekyll-gh-pages.yml生成页面工作流关闭了自动运行,如果你是直接fork的,如果更新页面需要手动运行Deploy
另外这个项目是支持全文翻译的!但源本身不是全文输出的源就没办法,包括像上面提到的全文过多字符的源用免费的翻译api(谷歌)是无法全部翻译!你可以使用付费的api来满足更高的需求。
全文翻译查看示例:
-
用于解析RSS的库和在使用的python版本不兼容
-
添加的rss源字符串过多(如全文输出的rss源),api无法翻译,如果缺少subtitle属性,可以将rss_description设置为空字符串,如rss_description = ''
-
环境依赖无或版本过旧,可更新后替换
-
Python翻译库不兼容,可以更换为其它(TextBlob、IBM Watson、Bing Translator、andex Translate API等)
-
如果直接出现http服务器链接失败大概率是因为github本身问题或action运行被限制,等待一段时间后再运行。
如要本地使用(请确保你有python环境及python运行网络SSL) 并确保你有安装翻译接口所需的模块,例如以下模块(检查文件确保包含文件内的导入模块): 如:
- configparser
- pygtrans
- beautifulsoup4
- urllib
如果提示没有安装模块,你可以通过以下方式来安装:
pip install configparser
pip install pygtrans
pip install beautifulsoup4
pip install urllib
最后运行python文件即可。
跟本地使用步骤是差不多的,首先是确保已安装python3.x版本,然后确保升级pip到最新版本
为了避免使用宝塔时在root用户下使用pip可能会导致权限问题和与系统包管理器的冲突。
-
安装虚拟环境工具(virtualenv):
pip install virtualenv
-
创建一个新的虚拟环境:
virtualenv myenv
这将在当前目录下创建一个名为"myenv"的虚拟环境。
-
激活虚拟环境:
source myenv/bin/activate
这将激活虚拟环境,并将您的终端提示符更改为虚拟环境名称。
可以使用以下命令退出虚拟环境:
deactivate
安装依赖同样在虚拟环境下使用,如安装
pip install configparser
pip install pygtrans
pip install beautifulsoup4
pip install urllib
安装好后就可以使用命令运行文件了,我推荐my-mtranslate谷歌翻译
在面板计划任务中设置以下命令
cd /你的文件路径 source myenv/bin/activate python3 my-mtranslate.py
最后查看rss文件夹内文件更新情况
• TG频道AI工作
• 独立黑客社区更新