Add README

master
Vitaliy Filippov 2014-12-19 15:29:57 +03:00
parent 874b7bf24a
commit a83fadbc4c
4 changed files with 74 additions and 12 deletions

73
README.md Normal file
View File

@ -0,0 +1,73 @@
What is FeedOnFeeds?
--------------------
FeedOnFeeds is a lightweight server-based RSS aggregator and reader,
allowing you to keep up with syndicated content (blogs, comics, and so
forth) without having to keep track of what you've read. Being
server-based means all of your feeds and history are kept in one
place, and being lightweight means you can install it pretty much
anywhere without needing a fancy dedicated server or the like.
FeedOnFeeds 0.5 is originally written by Steve Minutillo.
This is a fork of FeedOnFeeds 0.5 by Vitaliy Filippov.
FeedOnFeeds is distributed under the terms of GNU GPL v2 license, see LICENSE.
New features in this version compared to the original 0.5
---------------------------------------------------------
* Performance of all queries is greatly improved, basically almost everything
is fast even if you have lots of unread and/or tagged items (100000+)
* HTTP proxy support through standard environment variables http_proxy, no_proxy
* Password-protected feed support (HTTP basic/digest)
* Personal feed rename support (each user can rename feeds to his will)
* Possible to set tags for a feed when adding it
* The view is paged by default (you have to specify a big limit by hand to view all items)
* Mass feed tagging/untagging from the preferences page
* Per-feed and per-item collapse settings: you can set some feeds to show all items
collapsed by default or you can configure a regular expression which will specify
items that should be collapsed by default in each feed
* Most popular feed suggestions on the subscribe page
* Top reader statistics on the login page
* Very simple CSS-based mobile view
* Tables are using InnoDB, UTF-8 encoding, and foreign keys
* Code is cleaned of PHP warnings/notices and compatible with PHP 5.4+
TODO
----
* Implement safer authentication (sessions?) than current password-hash-in-cookie
* Replace SimplePie (not "simple" in any way) with something simpler and faster... (MagPie?)
* Dynamic feed update times, similar to https://github.com/RomanSixty/Feed-on-Feeds
* Use multi-cURL to download feeds in parallel
Requirements
------------
* A web server running PHP 5 or later (nginx + php5-fpm or Apache).
* PHP extensions: mysql/mysqlnd, XML, PCRE, cURL, Zlib, mbstring, iconv.
* MariaDB/MySQL 5 or later. MariaDB 5.5 or later with Barracuda storage format
(innodb_file_format = barracuda) is recommended.
Installation
------------
* Download a snapshot or checkout code from git repository into installation directory.
* Create 'cache' directory inside installation directory and make it writable by the web server.
* Create a MySQL database and a user with full access to it. If MySQL server is on the
same host it looks like:
CREATE DATABASE feedonfeeds;
GRANT ALL PRIVILEGES ON feedonfeeds.* TO feedonfeeds@localhost IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
* Copy fof-config-sample.php to fof-config.php and edit FOF_DB_HOST, FOF_DB_USER, FOF_DB_PASS
and FOF_DB_DBNAME as appropriate for your newly created database.
* Point your browser to `<FoF_URL>/install.php`.
Upgrade
-------
It is possible to upgrade an existing FeedOnFeeds 0.5 MySQL installation to this version.
Database will be converted automatically. Just overwrite all files in FoF installation
directory with this version and point your browser to `<FoF_URL>/install.php`.

10
TODO
View File

@ -1,10 +0,0 @@
Готово:
* Оптимизация запросов к БД:
** добавлена колонка item_published в fof_item_tag, чтобы при просмотре лент сортировка шла по индексу
** добавлена колонка feed_id в fof_item_tag, чтобы при суммировании числа записей в блогах feed_id брался без заглядывания в fof_item
Что можно сделать:
* Выпилить наконец чудо-аутентификацию вместо текущего аналога HTTP BASIC
* Выпилить SimplePie, заменив его простым MagPie
* Добавить поддержку multi-cURL
* И ещё остаются непрочитанные в тегах... (тег+тег)

View File

@ -18,7 +18,6 @@ define('FOF_DB_HOST', "host.example.com");
define('FOF_DB_USER', "username");
define('FOF_DB_PASS', "password");
define('FOF_DB_DBNAME', "database");
define('FOF_DB_CHARSET', "utf8");
/* You may write an auth plugin by defining function fof_require_user_hook() {}
* which should try to detect current user and then call fof_set_current_user($user);

View File

@ -27,7 +27,7 @@ function fof_db_connect()
$fof_connection = mysql_pconnect(FOF_DB_HOST, FOF_DB_USER, FOF_DB_PASS) or die("<br><br>Cannot connect to database. Please update configuration in <b>fof-config.php</b>. Mysql says: <i>" . mysql_error() . "</i>");
mysql_select_db(FOF_DB_DBNAME, $fof_connection) or die("<br><br>Cannot select database. Please update configuration in <b>fof-config.php</b>. Mysql says: <i>" . mysql_error() . "</i>");
fof_db_query("SET NAMES ".FOF_DB_CHARSET);
fof_db_query("SET NAMES utf8");
}
function fof_db_optimize()