Table of Contents

Feed Aggregator

Package Installation

tux:~/pythonmodules# wget http://feedparser.googlecode.com/files/feedparser-4.1.zip
--23:38:36--  http://feedparser.googlecode.com/files/feedparser-4.1.zip
           => `feedparser-4.1.zip'
Resolving feedparser.googlecode.com... 64.233.187.82
Connecting to feedparser.googlecode.com[[:64.233.187.82]]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 258,511 [[:application:x-zip]]

100%[[:=======================================================>]] 258,511      230.76K/s             

23:38:37 (230.07 KB/s) - `feedparser-4.1.zip' saved [[:258511:258511]]

tux:~/pythonmodules# mkdir feedparser         
tux:~/pythonmodules# cd feedparser
tux:~/pythonmodules/feedparser# unzip ../feedparser 
feedparser          feedparser-4.1.zip  
tux:~/pythonmodules/feedparser# unzip ../feedparser-4.1.zip 
Archive:  ../feedparser-4.1.zip
  inflating: LICENSE                 
  inflating: README                  
  inflating: feedparser.py           
  inflating: setup.py                
...
  inflating: docs/uncommon-atom.html  
  inflating: docs/uncommon-rss.html  
  inflating: docs/version-detection.html  
tux:~/pythonmodules/feedparser# python setup.py install --prefix=/usr/local
running install
running build
running build_py
creating build
creating build/lib
copying feedparser.py -> build/lib
running install_lib
copying build/lib/feedparser.py -> /usr/local/lib/python2.3/site-packages
byte-compiling /usr/local/lib/python2.3/site-packages/feedparser.py to feedparser.pyc
tux:~/pythonmodules/feedparser# cd ..
tux:~/pythonmodules# wget http://www.feedjack.org/download/Feedjack-0.9.12.tar.gz
--23:42:56--  http://www.feedjack.org/download/Feedjack-0.9.12.tar.gz
           => `Feedjack-0.9.12.tar.gz'
Resolving www.feedjack.org... 65.111.171.221
Connecting to www.feedjack.org[[:65.111.171.221]]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41,964 [[:application:x-gzip]]

100%[[:=======================================================>]] 41,964       113.52K/s             

23:42:59 (113.10 KB/s) - `Feedjack-0.9.12.tar.gz' saved [[:41964:41964]]

tux:~/pythonmodules# tar xzvf Feedjack-0.9.12.tar.gz 
Feedjack-0.9.12/
Feedjack-0.9.12/Feedjack.egg-info/
Feedjack-0.9.12/Feedjack.egg-info/top_level.txt
...
Feedjack-0.9.12/setup.cfg
Feedjack-0.9.12/ez_setup.py
Feedjack-0.9.12/AUTHORS
tux:~/pythonmodules# cd Feedjack-0.9.12
tux:~/pythonmodules/Feedjack-0.9.12# wget http://pypi.python.org/packages/2.3/s/setuptools/setuptools-0.6c8-py2.3.egg
--23:46:11--  http://pypi.python.org/packages/2.3/s/setuptools/setuptools-0.6c8-py2.3.egg
           => `setuptools-0.6c8-py2.3.egg'
Resolving pypi.python.org... 82.94.237.219
Connecting to pypi.python.org[[:82.94.237.219]]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1,041,747 [[:text:plain]]

100%[[:=======================================================>]] 1,041,747    264.05K/s    ETA 00:00

23:46:16 (263.43 KB/s) - `setuptools-0.6c8-py2.3.egg' saved [[:1041747:1041747]]

tux:~/pythonmodules/Feedjack-0.9.12# python setup.py install --prefix=/usr/localrunning install
Checking .pth file support in /usr/local/lib/python2.3/site-packages/
/usr/bin/python -E -c pass
TEST PASSED: /usr/local/lib/python2.3/site-packages/ appears to support .pth files
running bdist_egg
running egg_info
...
Installed /usr/local/lib/python2.3/site-packages/Feedjack-0.9.12-py2.3.egg
Processing dependencies for Feedjack==0.9.12
Finished processing dependencies for Feedjack==0.9.12

Apache Configuration

/etc/apache2/sites-available/planet.oclug.on.ca

<VirtualHost *:80>
        ServerName planet.oclug.on.ca
        ServerAdmin info@oclug.on.ca

        # static content is served from this directory
        DocumentRoot /usr/local/lib/python2.3/site-packages/Feedjack-0.9.12-py2.3.egg/feedjack/

        <Location "/">
                SetHandler python-program
                PythonHandler django.core.handlers.modpython
                SetEnv DJANGO_SETTINGS_MODULE feedjack_settings
                PythonPath "[[:':home:webdude:oclug_django_site:']] + sys.path"

                PythonInterpreter planet_oclug
                # Debugging stuff
                PythonDebug Off
        </Location>

        # Disable Django handling of these dirs, they will be served from
        # DocumentRoot instead.
        <Location "/static/">
                SetHandler None
        </Location>
        Alias /static/feedjack/default/img/faces/ /var/local/avatars/

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/planet.oclug.on.ca-access.log combined
        ErrorLog /var/log/apache2/planet.oclug.on.ca-error.log
        ServerSignature On
</VirtualHost>

<VirtualHost *:80>
        ServerName articles.oclug.on.ca
        ServerAdmin info@oclug.on.ca

        # static content is served from this directory
        DocumentRoot /usr/local/lib/python2.3/site-packages/Feedjack-0.9.12-py2.3.egg/feedjack/

        <Location "/">
                SetHandler python-program
                PythonHandler django.core.handlers.modpython
                SetEnv DJANGO_SETTINGS_MODULE feedjack_settings
                PythonPath "[[:':home:webdude:oclug_django_site:']] + sys.path"

                PythonInterpreter planet_oclug
                # Debugging stuff
                PythonDebug Off
        </Location>

        # Disable Django handling of these dirs, they will be served from
        # DocumentRoot instead.
        <Location "/static/">
                SetHandler None
        </Location>
        Alias /static/feedjack/default/img/faces/ /var/local/avatars/

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/articles.oclug.on.ca-access.log combined
        ErrorLog /var/log/apache2/articles.oclug.on.ca-error.log
        ServerSignature On
</VirtualHost>

Feed Updating Script

/etc/cron.hourly/update_planets

#!/bin/sh

# Update planet.oclug.on.ca etc.

PYTHONPATH=/home/webdude/oclug_django_site DJANGO_SETTINGS_MODULE=settings \
        /usr/local/bin/feedjack_update.py > /dev/null