當前位置:首頁 > 科技 > 正文

如何搭建屬于自己的 RSS 服務,高效精準獲取信息

如果你之前使用過其他 RSS 服務,那麼直接将訂閱源導入即可。方法是:在之前的 RSS 服務後台找到導出為 XML/OPML 的選項,然後在 Tiny Tiny RSS 中進入設置的 Feeds 标簽頁下的 OPML 闆塊,選擇相應文件導入即可。原有的文件夾結構會被保留。

導入後,可在 Feeds 标簽頁管理訂閱源。Tiny Tiny RSS 提供的管理選項非常詳盡,并可以通過拖動來實現排序、分類操作。點擊某個訂閱源,可以打開更詳盡的設置選項。其中比較實用的功能包括自定義訂閱源名稱、更新頻率等。

Tiny Tiny RSS 的訂閱管理

Tiny Tiny RSS 的訂閱管理

此外,Tiny Tiny RSS 還提供了一些用于辨識訂閱源「健康度」的實用功能。如果有某些訂閱源無法連接或長期不更新,那麼訂閱頁面中會分别多出 Feed with 和 feeds 的選項,點擊即可查看這些訂閱源的出錯記錄或最後更新時間,并直接批量退訂。

2.3 文章過濾

如前所述,強大的過濾功能是促使筆者轉投 Tiny Tiny RSS 的首要動力,也是高效處理大量 RSS 訂閱源的重要工具之一。Tiny Tiny RSS 的過濾功能分為匹配和動作兩個環節,即先根據一定的規則篩出特定文章,然後自動對其實行某種處理。前後兩個環節都是可以高度自定義的。

在設置頁面中,點擊 标簽即可進入過濾設置。首先通過 按鈕新建一個過濾器。彈出的窗口中, 部分用于指定規則的名稱,Match 部分用于設置匹配規則,而 Apply 部分則指對被匹配的文章應采取何種操作。

點擊 Match 部分的 Add 按鈕即可添加匹配規則。你可以指定匹配标題、全文還是兩者均匹配,每個匹配規則适用于哪些訂閱源。匹配規則支持正則表達式,例如,如果想過濾英文科技博客中常見的贊助廣告,那麼可以在過濾規則中填入 (S|s),這樣含有「」或「」的結果都會被匹配。同一個過濾器中可以容納多個匹配規則,多個規則間默認是相「與」的關系,如果想改為「或」的關系,則須勾選窗口下方的 Match any rule。

Tiny Tiny RSS 的過濾設置

Tiny Tiny RSS 的過濾設置

對于被篩出的文章,可以選擇的操作很多,如标為已讀、完全忽略、打上星标等等,并且可以同時适用多個操作。一個比較有趣的操作是 ,它會将文章發布到一個 RSS 源中(該 RSS 地址可在 Feeds 選項卡的 & 區域看到)。進而,結合 IFTTT、即刻等支持檢測特定 RSS 源更新的服務,就可實現特定主題實時推送、自動發送到稍後讀等高級功能。

用 IFTTT 即時推送 Tiny Tiny RSS 篩選出的主題

用 IFTTT 即時推送 Tiny Tiny RSS 篩選出的主題

不過,過濾功能是比較消耗資源的,如果設置過多的過濾條件,可能給你的主機帶來較大壓力,因此不應濫用該功能。換個角度來說,當你發現自己将精力不成比例地花在過濾功能上、而非靜心閱讀文章上時,最應該做的應該不是繼續調試過濾、而是清理訂閱源。

3. 用插件添加主題、全文輸出和多客戶端支持3.1 安裝主題

前面提到,RSS 服務質量的衡量尺度之一即是界面的設計水平。在這方面,Tiny Tiny RSS 隻能說是基本合格:其界面雖然功能全面、且總體上可稱之為簡潔明了,但細看還是給人一種開源軟件常有的「未經打磨」之感。好在 Tiny Tiny RSS 的界面完全基于 CSS,可自行定制或導入主題,這就為「美容」提供了可能。

Tiny Tiny RSS 用戶社區産生的主題并不多,但也有不乏幾個完成度較高的,如仿 和仿 的兩個主題。下面以前者為例演示如何安裝。

首先獲取主題文件:

$ wget https://github.com/levito/tt-rss-feedly-theme/archive/master.zip

然後解壓縮該主題[1]:

$ unzip master.zip

由于我們的 Tiny Tiny RSS 運行在相對隔離的 環境中,因此不能像平時那樣直接用 cp 命令拷貝文件。為此,首先執行:

$ docker ps

終端将返回當前運行的 容器列表。我們找到 IMAGE 一列為「/-ttrss」的那行記錄,記下同行中 ID 列下的内容。

找到 Tiny Tiny RSS 的 Container ID

找到 Tiny Tiny RSS 的 ID

然後,用 cp 命令将上述主題文件拷貝到容器中:

$ docker cp tt-rss-feedly-theme-master/feedly.css [[CONTAINER ID]]:/var/www/themes
$ docker cp tt-rss-feedly-theme-master/feedly [[CONTAINER ID]]:/var/www/themes

請注意将上面命令中的 [[ ID]] 替換為你在上一步中獲得的内容。

這時,我們就可以在 頁面的 Theme 選項中看到 .css 了。本文截圖中的界面均為該主題的效果。

3.2 配置 RSS 全文輸出

很多網站之所以不歡迎 RSS,一個主要的原因就是提供 RSS 會分走主站的流量;因此,一些網站即便保留了 RSS 訂閱源,也做得十分「不情不願」,隻「摳門」地給出前兩三段的内容,要看全文還得跳轉到網站才行。這顯然會破壞 RSS 的閱讀體驗。于是,獲取全文的功能就顯得十分必要了;很多 RSS 服務或客戶端也将其作為 訂閱的賣點之一。不過,通過 Tiny Tiny RSS,我們同樣可以免費實現這一效果。

事實上,Tiny Tiny RSS 原本已經内置了基于 的全文輸出服務,但可惜這家服務在前段時間已經跑路,關閉了 API 接口,我們隻能另請高明。目前,比較好的替代方案是 ,這也是 、 等主流 RSS 閱讀器在近期更新中改用的方案。

首先, 的全文輸出服務是免費的,但需要配合 API 密鑰使用,這可以在注冊後在其網站的 Web 頁面看到。

接着,為 Tiny Tiny RSS 安裝全文輸出插件,其方法與安裝主題完全相同[2]:

$ git clone https://github.com/WangQiru/mercury_fulltext.git
$ docker cp mercury_fulltext [[CONTAINER ID]]:/var/www/plugins

安裝後,到 Tiny Tiny RSS 的設置頁面中啟用名為 的插件。這時,在設置頁面的 Feeds 選項卡下,就會多出一個該插件的設置區域。我們将之前獲得的 API 密鑰填入文本框中,并點擊 Save 保存配置。

Mercury 的設置

的設置

完成上述準備工作後,就可以針對特定的訂閱源啟用全文輸出了。方法是:在訂閱源管理中,點擊需要獲取全文的訂閱源,在彈出的 Edit Feed 對話框中,勾選 選項卡中的 Get via 。

該插件的效果如下(The Verge):

全文輸出 The Verge 的效果

全文輸出 The Verge 的效果3.3 讓更多客戶端支持 Tiny Tiny RSS

在 RSS 的使用體驗中,客戶端是十分重要的一環;缺少第三方客戶端支持的 RSS 服務注定隻能是「孤家寡人」。然而,作為一個小衆的開源軟件,Tiny Tiny RSS 在這方面顯然不能與那些商業服務相比。主流的客戶端軟件中,隻有 Fiery Feed 提供了對 Tiny Tiny RSS 的原生支持。

好在開放的插件系統這時再次發揮了作用。借助第三方插件,Tiny Tiny RSS 可以将自己模拟為另一個自建 RSS 工具——Fever,而後者的客戶端支持更為全面,包括 、 等。[3]

第一步仍然是安裝插件:

$ git clone https://github.com/rannen/tinytinyrss-fever-plugin.git
$ docker cp fever [[CONTAINER ID]]:/var/www/plugins

安裝後,在 Tiny Tiny RSS 的設置頁面啟用名為 fever 的插件。保存後,再次進入設置時, 選項卡下會多出一個名為 Fever 的闆塊。在該闆塊的文本框中,設置一個專用于該插件的密碼,然後點擊 Save。該文本框下方同時給出了一個獨立的服務器地址,其格式類似于 。将其記下以備後用。

在 Reeder 中配置 Tiny Tiny RSS

在 中配置 Tiny Tiny RSS

這時,在 等 app 中,隻要在添加 RSS 賬号時選擇 Fever,在服務器地址欄填入上述地址,即可配合這些你慣用的 app 使用 Tiny Tiny RSS 了;文件夾、标為已讀、星标等功能均被良好支持。

在 Reeder 中使用 Tiny Tiny RSS 的效果

在 中使用 Tiny Tiny RSS 的效果4. 總結

以上就是使用 Tiny Tiny RSS 自建 RSS 服務的全過程。可以看出,雖然聽起來很 geeky,但實際操作比想象的簡單很多,稍微熟悉後不到半個小時就可架起服務并使用。從我兩個月的使用體驗看,它基本已經完全代替了之前對 和 的需求,且無論是靈活性還是性價比都是第三方服務無法比拟的。

當然,一旦涉及到這種 DIY 操作,總是要回應的質疑是:這麼做值得嗎?畢竟,「RSS 已死」不是什麼新鮮論調了。這麼說的人中,有的是 RSS 曾經的忠實用戶,感慨曾經活躍的第三方軟件和服務逐漸冷卻;有的是新世代新聞、閱讀服務的開發者,鄙棄 RSS 的老舊和刻闆。

然而,RSS 說到底是一個協議。而協議隻在一種情況下可以被宣告死亡:再也沒有人使用的時候。誠然,如果隻論 RSS 最「原教旨」的形态,其占有率确實幾乎可以忽略不計了;但當下那些看起來更「現代」的資訊工具,盡管可以在界面、交互上不斷翻新,但其本質仍然是一個時間線上的信息流,其中每篇内容包含的要素仍然是标題、時間、正文等 RSS 已經涵蓋的要素。易言之,它們歸根結底都是 RSS 的衍生物。從這個角度看,RSS 沒有死、也不會死。

必須承認,新技術加持下的現代工具在配置和使用上都遠比 RSS 來得便利和舒适。但,在獲得便利的同時,你也将選擇的權利讓渡給了機器,将偏好和隐私讓渡給了第三方;在追求舒适的另一面,是被無限信息流淹沒的寶貴時間,和被算法推薦不斷強化的「回音壁」效應。相反,RSS 是有限的,因此也是克制的;是刻闆的,因此也是高效的;是不智能的,因此也是包容的。

在今天,堅持使用 RSS,能讓你真正認真思考自己對信息的需求,在喧鬧而充滿誤導和誘惑的信息海洋中守住自己對信息獲取的控制權;而自建 RSS 服務,則是維護這種控制權的終極途徑。

注:

你可能想看:

有話要說...

取消
掃碼支持 支付碼