Отличная штука Tiny Tiny RSS.
Собирает из сети обновления сайтов, которые поддерживают RSS или Atom.
Нюанс: TTRSS надо ставить на какой-нибудь сервер, в моём случае он крутится на мощностях хостинга, там же где и сайт.
Или ставьте на свой собственный сервак. Некоторые умельцы даже ставят на роутер.
А уже из браузера подключаемся к нему и читаем ленты. Имеется и клиент для андроида.
1. Клонируем репозиторий себе в домашнюю папку на локальную машину
git clone https://tt-rss.org/git/tt-rss.git tt-rss
2. Копируем её на хостинг в корень сайта
3. Создаём базу данных SQL через админку хостера, например
4. Запускаем инсталлятор TT-RSS из браузера
http://your.site.com/tt-rss/install/
там всё понятно.
5. Заходим в установленный TT-RSS username: admin, password: password
http://your.site.com/tt-rss/
и сразу меняем пароль админа и заводим нового пользователя без админских прав, перелогиниваемся.
6. Надо, чтобы список TTRSS обновлялся когда открыт в браузере. Иногда это единственный путь. Но андроид-клиенты (или любые другие, подключающиеся через API) не смогут обновлять ленты :(
Открываем файл config.php и значение SIMPLE_UPDATE_MODE устанавливаем в true.
!!! Периодическое обновление лент автоматом: настраиваем в админке хостера запуск скрипта обновления через Cron с дополнительными параметрами, например каждые 15 минут
*/15 * * * * /usr/bin/php /path/to/tt-rss/update.php --feeds --quiet
7. Дефолтную тему можно заменить на более лёгкую.
Разворачиваем архив в папку /tt-rss/themes и в настройках TT-RSS через GUI выбираем её, сохраняем. Правда, у меня она не хотела подхватываться. Тогда я переименовал night.css в night.css.bak, а feedly.css в night.css (чтоб дефолтную не трогать).
Радуемся, пьём коньяк.
------------------------------------------------------------------------
Нижеследующий текст для меня уже не актуален. Но пусть лежит на память :)
Теперь надо через Cron настроить автообновление лент через определённый промежуток времени. Спасибо источнику на Хабре.
Создаём скрипт update_with_params.php
#!/usr/bin/env php
<?php
ob_implicit_flush(true);
echo "PHP version: " . phpversion() . PHP_EOL;
echo "Max execution time: ".ini_get("max_execution_time")." seconds" . PHP_EOL;define( 'UPDATE_IMPLICIT_PARAMS', 'feeds' );
require_once "update.php";
?>
и кладём его в папку tt-rss.
Затем добавляем в файл update.php после строки
$options = getopt("", $longopts);
вот этот код
if (defined('UPDATE_IMPLICIT_PARAMS')) {
$impl_params = array_map("trim", explode(",", UPDATE_IMPLICIT_PARAMS));if( !is_array($options) )
$options=array();$options = array_merge( $options, array_fill_keys($impl_params, ''));
}
У меня случились грабли с версиями PHP, вот так лечится:
создаём ещё один скрипт update_external.php с текстом (заменить mysite.ru/tt-rss на своё) и кладём в ту же папку tt-rss
#!/usr/bin/env php
<?php
echo "PHP version: " . phpversion() . PHP_EOL;
echo "Max execution time: ".ini_get("max_execution_time")." seconds" . PHP_EOL;$url = "http://mysite.ru/tt-rss/update_with_params.php";
$ch = curl_init($url);try
{
if ( $ch === FALSE )
throw new Exception('failed to initialize');
$startTime = microtime(true);
$result = curl_exec($ch);
echo 'Execution time '. (microtime(true) - $startTime) . ' sec' . PHP_EOL;if (FALSE === $result )
throw new Exception('Curl error ' . curl_errno($ch) . ' , ' . curl_error($ch) );$code = curl_getinfo($ch, CURLINFO_HTTP_CODE );
if ( $code != 200 )
throw new Exception( "Page returned error code $code" );}
catch(Exception $e)
{
trigger_error( sprintf('ERROR #%d: %s\n', $e->getCode(), $e->getMessage()), E_USER_ERROR );
}curl_close($ch);
?>
Далее через админку хостера настраиваем cron указав ему на скрипт update_external.php