Giter VIP home page Giter VIP logo

seymour's Introduction

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)

seymour's People

Contributors

lerouxb avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.