lerouxb / seymour Goto Github PK
View Code? Open in Web Editor NEWA hosted feed reader written in Python
License: MIT License
A hosted feed reader written in Python
License: MIT License
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)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.