暗无天日

=============>DarkSun的个人博客

Newsboat:一款终端RSS阅读器

Newsboat是一款功能十分强大的基于终端的RSS/Atom feed阅读器。

在archlinux上你可以通过 sudo pacman -S newsboat 来直接安装它。

使用newsboat阅读RSS/Atom feed

使用newsboat阅读RSS/Atom feed十分的简单,只需要下面几步:

  1. 用一个文本文件存放feed url,每行一个url

    比如我创建一个rss.txt,内容如下

    http://planet.emacsen.org/atom.xml
    http://liutos.github.io/atom.xml
    http://blog.binchen.org/?feed=rss2
    http://feeds.feedburner.com/ruanyifeng
    http://sspai.com/feed
    http://planet.python.org/rss10.xml 
    

    如果feed url需要用户和密码的认证,则以下面这种格式来写

    http://username:password@hostname.domain.tld/feed.rss
    

    由于 @ 在URL中有特殊意义,因此若用户名中包含了 @, 则需要用 %40 来代替。

  2. 使用newsboat读取rss.txt中的feed url

    newsboat -ru rss.txt
    

    这里:

    -r
    表示启动时刷新feeds
    -u
    指定包含feed urls的文件

    然后你就会看到这么一个界面

    screenshot-35.png

    在这个界面上按上下键导航,然后按回车进入

    screenshot-36.png

    在这个界面上,依然是用上下键导航,按回车看feed的具体内容

    screenshot-37.png

    最下面还有一行提示,按 o 可以用浏览器打开原地址查看文章内容(默认用lynx打开,不过可以通过配置修改)

    按下 q 会跳到上一层目录,直到程序退出。

接入inoreader

如果只是这样当然不算什么,最让我觉得意外的是它居然还能接入inoreader,方法是创建一个配置文件,比如config,然后往里面加入以下内容:

urls-source "inoreader"
inoreader-login "your-inoreader-account"
inoreader-password "your-password"

然后在启动 newsboat 时用 -C 参数指定这个配置文件就行了

newsboat -r -C config

screenshot-38.png

podcast

更让人觉得神奇的是,newsboat居然还支持podcast。

podcast将内容存放在一个特殊的名为 enclosure 的标签中,newsboat能够识别出该标签中的信息。

当打开一个podcast时,它是这个样子的

screenshot-39.png

可以看到它识别出了博客的下载地址。

然后,按下 e 键来将该博客加入下载队列($HOME/.newsboat/queue)。

screenshot-40.png

然后我们需要用 podboat 来真正下载加入到下载队列中的这些播客文件. podboatnewsboat 包中自带的,无需另外安装。 它和 newsboat 公用同一个配置文件

podboat -C config

screenshot-41.png

d 开始下载指定的博客,然后按下 p 就可以收听播客了。

screenshot-42.png

当收听完播客后按下 P 键,可以清除掉所有已经收听过的播客URL,也可以按下 D 键将指定的URL删除掉。

但是需要注意的是,将URL从QUEUE中删除并不意味着下载下来的博客文件也被删除掉了,你需要手工删除掉它(默认放在~目录下,不过可以配置)

rm ~/15232488215106.mp3

配置

newsboat提供了相当多的配置项让你定制newsboat的行为,比较常用的配置有下面这些

browser "w3m %u"                #配置用哪个浏览器浏览feed
delete-read-articles-on-quit yes #退出后删除已经阅读的文章
download-full-page yes           #全文下载
download-timeout 60              #下载超时时间
error-log "~/.newsboat/error.log" #设置错误日志的存放文件
keep-articles-days 30             #保留多长天内的文章

#inoreader
urls-source "inoreader"         #指定从哪读取feed urls
inoreader-login "lujun9972@gmail.com" #inoreader登陆用户名
inoreader-min-items 100               #从inoreader中每个feed下加载多少篇文章
inoreader-password ""                 #inoreader登陆密码
inoreader-passwordfile  "~/.inoreader-password" #从哪个文件中读取inoreader的登陆密码
inoreader-passwordeval ""                       #通过执行哪个命令来读取inoreader的登陆密码
inoreader-show-special-feeds "yes"              #显示"Starred items" 和 "Shared items" 这两个特殊的feed
# 按下Ctrl-E可以对文章加flag,flag的范围可以是从A-Za-z共52个字符。
inoreader-flag-share "a"                        #为文章加"a" flag则表示"share"该文章
inoreader-flag-star "b"                         #为文章加"b" flag则表示"star"该文章

# podcast
player mpg123                   #设置播放博客的播放器
download-path "~/Downloads/%h/%n" #下载博客的路径