七叶笔记 » golang编程 » 使用Golang编写的简单RSS / Atom阅读器,高度可配置的主题

使用Golang编写的简单RSS / Atom阅读器,高度可配置的主题

GORSS

Go RSS阅读器

使用Golang编写的简单RSS / Atom阅读器,高度可配置的主题

特征

  • OPML支持加载提要URL(opmlFile在gorss.conf中)
  • 支持XDG配置
  • RSS和Atom支持(通过github.com/mmcdole/gofeed)
  • 可配置单词的重点
  • 键盘快捷键高度可配置
  • 用于自定义执行外部应用程序的自定义键
  • 在浏览器中打开链接
  • 标记文章并在 webbrowser 中打开全部标记的文章
  • 主题支持
  • 预览RSS的内容
  • 由SQLite数据库支持
  • 将文章标记为已读
  • 全部标记为已读/未读

用法

在发行页面下可以找到带有针对 Linux 和OSX预先构建的二进制文件的Tarball。

只需从tarball 运行gorss_linux或运行gorss_osx二进制文件即可。

您还可以手动指定主题,配置和数据库。

./gorss -config go rss .conf -theme default.theme -db mydb.db
 

如果不使用上面的参数启动,Gors期望拥有gorss.conf和它自己default.theme相同的目录gorss。

要生成并运行,请使用 makefile

make run
 

为了make release在OSX上针对Linux 进行交叉编译,您需要安装以下内容:

brew install FiloSottile/musl-cross/musl-cross
 

该数据库gorss.db将在系统的“数据主目录”目录中自动创建。您可以-db通过二进制参数指定要使用的数据库。

配置示例(默认配置)

可以将配置文件指定为标志,默认为gorss.conf。

./gorss -config my.conf
{
 "highlights": [
 "emulation",
 "truck",
 "google",
 "network",
 "math",
 "toyota"
 ],
 "OPMLFile": "../example_ompl.xml",
 "feeds": [
 "news.ycombinator.com/rss",
 "sweclockers.com/feeds/nyheter",
 ],
 "feedWindowSizeRatio": 2,
 "articlePreviewWindowSizeRatio": 5,
 "articleWindowSizeRatio": 2,
 "previewWindowSizeRatio": 1,
 "daysToKeepDeletedArticlesInDB": 1,
 "daysToKeepReadArticlesInDB": 1,
 "skipArticlesOlderThanDays": 10,
 "secondsBetweenUpdates": 300,
 "skipPreviewInTab": true,
 "keyOpenLink": "Backspace2",
 "keyMarkLink": "Enter",
 "keyOpenMarked": "o",
 "keyDeleteArticle": "d",
 "keyMoveDown": "s",
 "keyMoveUp": "w",
 "keySortByDate": "r",
 "keySortByUnread": "e",
 "keySortByTitle": "t",
 "keySortByFeed": "y",
 "keyUpdateFeeds": "Ctrl+U",
 "keyMarkAllRead": "Ctrl+R",
 "keyMarkAllUnread": "Ctrl+T",
 "keyTogglePreview": "q",
 "keySelectFeedWindow": "1",
 "keySelectArticleWindow": "2",
 "keySelectPreviewWindow": "3",
 "keyToggleHelp": "h",
 "keySwitchWindows": "Tab",
 "keyQuit": "Esc",
 "customCommands": [
 { 
 "key": "j",
 "Cmd": "echo 'ARTICLE.Content' 'ARTICLE.Link' > /tmp/ test 2.txt"
 },
 { 
 "key": "k",
 "Cmd": "echo 'ARTICLE.Title' 'ARTICLE.Feed' > /tmp/test.txt"
 }
 ]
}
 

自定义命令

可以添加自定义命令,例如上面示例配置中的示例。

给定的变量将替换为给定文章的内容。没有逃逸的事情,所以要小心!

可用变量为:

  • ARTICLE.Content -文章内容
  • ARTICLE.Link -文章链接
  • ARTICLE.Feed -提要名称
  • ARTICLE.Title -文章标题

主题是高度可配置的,并包含3个示例主题。您可以以特定主题作为参数来开始。

./gorss -theme my.theme
 

主题使用JSON配置,下面是默认示例:

{
 "feedNames": [
 "#8ed2c8",
 "#46aa9f",
 "#2e6294",
 "#3b9293"
 ],
 "date": "#a25478",
 "time": "#f96bad",
 "articleBorder": "#4b7d81",
 "previewBorder": "#4b7d81",
 "feedBorder": "#4b7d81",
 "feedBorderTitle": "#fcedd5",
 "articleBorderTitle": "#fcedd5",
 "previewBorderTitle": "#fcedd5",
 "highlights": "#c90036",
 "tableHead": "#b2b37d",
 "title": "#fcedd5",
 "unreadFeedName": "#FFFFFF",
 "totalColumn": "#FFFFFF",
 "unreadColumn": "#FFFFFF",
 "previewText": "#FFFFFF",
 "previewLink": "#39537e",
 "statusBackground": "#4b7d81",
 "statusText": "#fcedd5",
 "statusKey": "#f6d270",
 "statusBrackets": "#bfceab",
 "feedIcon": "",
 "articleIcon": "",
 "previewIcon": "",
 "linkMarker": "",
 "unreadMarker": ""
}
 

[截图]

开源地址:

 

更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。

相关文章