Skip to content

lerouxb/seymour

Repository files navigation

Seymour is a minimal feed aggregator that I wrote years ago. It is
unmaintained, but clearly I'm a hoarder, so here it is..

It supports multiple accounts either with the usual email/password combo or via
OpenID. The interface is a simple two-column layout where the feeds that contain
unread items appear listed on the left. Clicking on a feed loads the unread
items from that feed in the main column on the right.

You can only view one feed at a time and you can only mark the entire feed as
read. Only the latest 20 items get displayed or remembered. Updated items don't
get bumped back to unread if you already marked as read (but they do get
updated, so people that haven't marked the items as read yet will see the
updated contents). These are all intended features.

Authenticated feeds are not supported - I do not want to store your emails in my
database.

Seymour is optimised for reading and there's even a mobile variant that gets
triggered automatically for mobile user agents OR you can go to the app's domain
with 'm.' prepended to it. (Assuming it is mapped) Images get loaded in so that
their dimensions can be found and CSS classes then get added to help with sizing
them to fit and for text to flow properly around images. Certain bits of dodgy
html and attributes get stripped, a tags automatically get class="external"
and target="_blank" added to them and so on. The main column's font is big and
readable and it stretches to fill the screen. Content often looks and reads
better in Seymour than it does on the original sites.


REQUIREMENTS

* Python version 2.5 or above, but not 3. (also tested on Python 2.6)

* Django 1.0 or above (also tested with Django 1.1)
  Ubuntu package: python-django
  Homepage: http://www.djangoproject.com/

* MySQL Server 5.0 or above (Also tested with 5.1, might even work with 4.x)
  Ubuntu package: mysql-server
  Homepage: http://www.mysql.com/
  (other databases will probably require some SQL query tweaks)

* MySQLdb
  Ubuntu package: python-mysqldb
  Homepage: http://mysql-python.sourceforge.net/

* PIL
  Ubuntu package: python-imaging
  Homepage: http://www.pythonware.com/products/pil/

* feedparser
  Ubuntu package: python-feedparser
  Homepage: python-feedparser

* feedfinder
  Not included in Ubuntu at the time of writing, see thirdparty directory.
  Homepage: http://www.aaronsw.com/2002/feedfinder/

* PyCAPTCHA
  Not included in Ubuntu at the time of writing, see thirdparty directory.
  Homepage: http://pypi.python.org/pypi/PyCAPTCHA/

* Python OpenID
  Ubuntu package: python-openid
  Homepage: http://openidenabled.com/python-openid/

* preferably a webserver (tested on lighttpd+FastCGI and Apache+mod_wsgi)


INSTALLATION

Place seymour somewhere and make sure the seymour package inside it is in your
Python path.

Copy the example_deploy directory somewhere, rename settings.py.default to
settings.py and edit all the usernames, names, paths, email addresses, urls,
etc. inside these files to reflect your installation. Make sure this directory
is also in your python path (it is a Python package in itself)

Note that you can override templates (typically the home.html one) by placing
them in the installation's own templates dir. You can override the CSS files by
changing the META_ROOT, but it is better to just map /static/ somewhere in your
webserver setup so that your webserver serves up those files. You can add extra
URLs (and controllers and things) by changing ROOT_URLCONF. And so on and so
forth.

There's an example wsgi file in the wsgi directory in case you want to use
apache and mod_wsgi to host your app. On that note there's also an example
apache site config file (for /etc/apache2/sites-available).

In MySQL, create a database for your app in MySQL with:

create database exampledb default character set utf8;
grant all privileges on exampledb.* to exampleuser identified by 'examplepassword';

cd to seymour and:

export DJANGO_SETTINGS_MODULE=example.settings
./manage.py syncdb

(this will set up the database tables that you need)

You should setup a cron job to regularly call update_feeds.sh.
(wean.me runs it every 3 hours)


DEV SERVER

To run the dev server, simply cd to seymour and:

export DJANGO_SETTINGS_MODULE=example.settings
./manage.py runserver

This will run a dev server listening on localhost:8000

(Just make sure that you have settings.SEYMOUR_DOMAIN set accordingly, because
the middleware will try and redirect you there if you're on a different host)

About

A hosted feed reader written in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published