pyAggr3g470r ============ #### A simple Python news aggregator. Presentation ------------ [pyAggr3g470r](https://bitbucket.org/cedricbonhomme/pyaggr3g470r/) is a news aggregator with a web interface based on [Flask](http://flask.pocoo.org/). Features -------- * the database is managed with [SQLAlchemy](http://www.sqlalchemy.org/); * feeds batch import with OPML files; * export all your feeds to OPML; * e-mail notification; * export articles to HTML; * favorite articles; * share articles with Google +, Pinboard and reddit. Deployment ---------- This application can be deployed both on Heroku and on a traditional server. Deploying the application on Heroku ''''''''''''''''''''''''''''''''''' .. code:: bash $ git clone https://bitbucket.org/cedricbonhomme/pyaggr3g470r.git $ cd pyaggr3g470r $ heroku create $ heroku addons:add heroku-postgresql:dev $ heroku config:set HEROKU=1 $ git push heroku master $ heroku run init $ heroku ps:scale web=1 Deploying the application on a traditional server ''''''''''''''''''''''''''''''''''''''''''''''''' Configuration is done via the file *conf/conf.cfg*. .. code:: bash $ git clone https://bitbucket.org/cedricbonhomme/pyaggr3g470r.git $ cd pyaggr3g470r $ cp conf/conf.cfg-sample conf/conf.cfg $ sudo apt-get install postgresql postgresql-server-dev-9.1 postgresql-client $ sudo pip install --upgrade -r requirements.txt $ sudo -u postgres createuser Enter name of role to add: username Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) y Shall the new role be allowed to create more new roles? (y/n) n $ createdb pyAggr3g470r $ sudo -u postgres psql postgres=# ALTER USER username WITH ENCRYPTED PASSWORD 'password'; postgres=# GRANT ALL PRIVILEGES ON DATABASE pyAggr3g470r TO username; postgres=# \q $ export DATABASE_URL="postgres://username:password@127.0.0.1:5432/pyAggr3g470r" $ python db_create.py $ python runserver.py * Running on http://0.0.0.0:5000/ * Restarting with reloader Launch the script ``install.sh`` in order to install automatically all requirements. In order to prevent all dependencies problems and to keep your system stable, the libraries will be installed in a Python virtual environment (with [virtualenv](http://www.virtualenv.org)). The installation will use the configuration file for the database setup. Then point your browser to the address [http://127.0.0.1:5000/](http://127.0.0.1:5000/) and login with the email address *firstname.lastname@mail.com* and the password *secret*. You can update your profile at the address [http://127.0.0.1:5000/profile/](http://127.0.0.1:5000/profile/). As already said, you can configure pyAggr3g470r (database name, proxy, user agent, etc.) in the file *conf/conf.cfg*. For example if you want to use pyAggr3g470r with Tor/Privoxy, you just have to set the value of *http_proxy* (most of the time: ``http_proxy = 127.0.0.1:8118``). Else leave the value blank. However, the default configuration should be good, so you really just have to run the script *install.sh*. Automatic updates ----------------- You can fetch new articles with [cron](https://en.wikipedia.org/wiki/Cron) and the script *fetch.py*. For example if you want to check for updates every 30 minutes, add this line to your cron rules (``crontab -e``): */30 * * * * cd ~/.pyaggr3g470r/ ; python fetch.py firstname.lastname@mail.com You must give the email address you use to login to pyAggr3g470r. Donation -------- If you wish and if you like pyAggr3g470r, you can donate via bitcoin [1GVmhR9fbBeEh7rP1qNq76jWArDdDQ3otZ](https://blockexplorer.com/address/1GVmhR9fbBeEh7rP1qNq76jWArDdDQ3otZ). Thank you! License ------- [pyAggr3g470r](https://bitbucket.org/cedricbonhomme/pyaggr3g470r/) is under [GPLv3](http://www.gnu.org/licenses/gpl-3.0.txt) license. Contact ------- [My home page](http://cedricbonhomme.org/).