Tiny Tiny RSS: полные версии статей в ленте

После закрытия Google Reader многие стали использовать Tiny Tiny RSS (TTRSS) для чтения rss лент. TTRSS имеет возможность подключать плагины. Среди множества плагинов для добавления социальных кнопок встречаются и полезные, например, которые позволяют вытягивать полные версии статей из анонсов в rss лентах.

Есть как заточенные под определённые сайты, как например, af_habr. Который был написан ещё до разделения хабра на habrahabr, geektimes и megamozg. Сейчас этот плагин удалён из основного репозитория как устаревший. Однако у меня он всё ещё продолжает успешно работать, с небольшой правкой, расширяющей его работу также и на geektimes. Проблемы возникают только с некоторыми корпоративными блогами с изменённым дизайном.

diff --git a/tt-rss/plugins/af_habr/init.php b/tt-rss/plugins/af_habr/init.php
index d357956..6814e8f 100644
--- a/tt-rss/plugins/af_habr/init.php
+++ b/tt-rss/plugins/af_habr/init.php
@@ -16,7 +16,9 @@ class Af_Habr extends Plugin {
        function hook_article_filter($article) {
                $owner_uid = $article["owner_uid"];

-               if (strpos($article["link"], "habrahabr.ru") !== FALSE) {
+               if ((strpos($article["link"], "habrahabr.ru") !== FALSE) ||
+                   (strpos($article["link"], "megamozg.ru")  !== FALSE) ||
+                   (strpos($article["link"], "geektimes.ru") !== FALSE)) {
                        if (strpos($article["plugin_data"], "af_habr,$owner_uid:") === FALSE) {

                                $doc = new DOMDocument();

Есть и универсальные плагины, которые позволяют задать способ вытягивания полных версий статей. Таким плагином долгое время для меня был af_feedmod, который нынче переродился в виде плагина
feediron. Пример конфигурации:

{
    "geektimes": {
        "type": "xpath",
        "xpath": "div[contains(@class,'content') and contains(@class, 'html_format')]"
    },
    "habrahabr": {
        "type": "xpath",
        "xpath": "div[contains(@class,'content') and contains(@class, 'html_format')]"
    },
    "xakep": {
        "type": "xpath",
        "xpath": "article\/div[@class='bdaia-post-content']",
        "cleanup": [
            "footer",
            "div[@id='xakepcut']",
            "img[contains(@class, 'lazy') and contains(@class ,'lazy-hidden')]"
        ],
        "force_noscript": true
    },
    "opennet": {
        "type": "xpath",
        "xpath": "*[@id='r_memo']"
    }
}

Если добавить в конфигурацию правила для habrahabr и geektimes(как это сделано в примере), то в таком случае af_habr необходимо, конечно, отключить.

Среди других возможностей feediron стоит отметить возможность прогнать содержимое статьи через readability, возможность переформатировать статью. Всё это задаётся в конфигурации.

Comments

comments powered by Disqus