关于RSS翻译转换订阅项目的说明

⭐说明⭐

这个项目RSS翻译转换订阅是在原rss-translate基础上修改和重构的,已重构翻译的文件配置、更新Action环境依赖,已测试运行翻译文件,可随时切换翻译接口【切换翻译只需在工作流yml文件中更改ls_show步骤下运行的python文件即可】

为防止运行加载过慢出现错误,代码中添加了避免重复翻译及使用集合来去除重复项

注意:免费的翻译API会有请求次数限制!如果定时运行时间过于频繁,可能会导致action更新抓取一些站点时被限制及封禁!免费的翻译包括bing翻译和谷歌翻译

可在工作流文件中随时更改定时运行时间(建议每12小时运行),增加谷歌翻译接口Bing翻译接口百度翻译接口

Bing翻译接口文件调整:

  • 修复了使用set_cfg()方法修改配置文件数据时的bug
  • 使用了 jinja2 模板引擎来生成 RSS 格式的输出,并对 XML 数据进行了安全处理,添加了运行命令pip install lxml外一个解析库 html5lib:pip install html5lib
  • 对Feed的生成做了一些修改,扩展RSS的一些属性,如通过strftime格式化时间输出。并且将Feed的构成改成了字符串拼接的方式,更加简洁易懂。
  • 代码使用了try-except语句进行容错处理,确保代码不会因为单个翻译出错而出现错误。

google翻译接口文件调整:

  • 更换了翻译接口,使用pygtrans模块代替googletrans模块。
  • 安全地将字符串输入到md5()函数中,使用encode()函数将字符串转换为UTF-8编码。
  • 使用os.path.join()方法代替基本字符串拼接的方式来构建输出目录。
  • 在处理HTML数据时,使用了更准确的BeautifulSoup的解析模式。

百度翻译接口文件调整:

  • 集成了百度翻译API密钥和应用ID,修改为自己的即可使用
  • 优势:收费的api翻译更多更准确和不限制api次数
  • 设置源语言和目标语言为百度翻译API支持的语言代码
  • 修改tran方法中的BaiduTran实例化部分,传入源语言和目标语言参数

工作流文件调整:

添加翻译文件依赖库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
          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为百度翻译库,mtranslatejinja2为bing翻译必须库

  • 使用 git status –porcelain 指令来检查代码库中是否存在新的更改需要提交,如果有,则执行 git add,git commit 和 git push 命令。否则,输出 “No changes, skip push.” 的消息。

  • 为可随时切换不同翻译api,添加多个翻译文件所需模块

使用说明

  1. 在运行代码前,删除本项目原有的rss文件目录下的xml文件并确认已安装库文件,可查看工作流文件中Install dependencies步骤下配置【一般不需要改动】

  2. 在test.ini 文件中添加需要翻译的 RSS 订阅信息。例如:

1
2
3
4
5
6
7
8
9
[cfg]
base = "rss/"

[BBC]
url= "https://feeds.bbci.co.uk/news/rss.xml"
name= "BBC_zh"
max= "5"
action = "auto"
md5= ""

其中name可随意,以英文名为主可不添加后缀(和原项目相比),生成的文件为固定的xml格式文件,base为生成的文件存放目录,max为rss最大条目数(请不要设置超过20,使用免费翻译的api时RSS条目超过一定数量会出现不完整翻译),md5请设置为空

3.打开 GitHub 仓库的界面,进入“Settings” > “Secrets”,点击“New repository secret”按钮,创建名为 WORK_TOKEN 的 secret。

4.将生成的Personal Access Token及U_EMAIL、U_NAME复制黏贴到Action-操作机密和变量中,然后运行action即可

目前仍存在的Bug

  • 一些外网RSS源由于字符等问题可能导致覆写文件时某些元素错误,建议先查看已转换xml文件下raw格式链接,但不影响订阅,也可以用其它工具进行RSS转换

关于bug报错及修复:

  • 用于解析RSS的库和在使用的python版本不兼容
  • 添加的rss源字符串过多(如全文输出的rss源),api无法翻译,如果缺少subtitle属性,可以将rss_description设置为空字符串,如rss_description = ‘’
  • 环境依赖无或版本过旧,可更新后替换
  • Python翻译库不兼容,可以更换为其它(TextBlob、IBM Watson、Bing Translator、andex Translate API等)

本地

如要本地使用(请确保你有python环境及SSL证书)
并确保你有安装以下模块(检查文件确保包含文件内的导入模块):
如:

  • configparser
  • pygtrans
  • beautifulsoup4
  • urllib

如果提示没有安装模块,你可以通过以下方式来安装:

1
2
3
4
pip install configparser
pip install pygtrans
pip install beautifulsoup4
pip install urllib

最后运行python文件即可。

个人喜好RSS阅读页:无历史数据,可点击 rss feed for you 来订阅页面