Skip to main content

TurboGears controller and widgets for feed handling.

Project description

Turbofeeds is a TurboGears 1 extension which provides support for generating RSS and Atom feeds and matching display widgets.

TurboFeeds was formerly the feed sub-package of the main TurboGears distribution. It was extracted from the TG core to ease updating, enhancing, and maintaining both projects.

TurboFeeds is mostly backwards-compatible with the turbogears.feed package, but has lots of fixes and a few new features, most importantly support for Genshi templates. It works with both the TurboGears 1.0 and the 1.1 branch.

Installation

To install TurboFeeds from the Cheeseshop use easy_install:

[sudo] easy_install TurboFeeds

This requires the setuptools package to be installed. If you have not done so already, download the ez_setup.py script and run it to install setuptools.

If you want to get the latest development version, you can check out the trunk from the Subversion repository with:

svn co http://svn.turbogears.org/projects/TurboFeeds/trunk TurboFeeds

For bug reports and feature requests, please go to the TurboGears trac at http://trac.turbogears.org/.

To open a ticket, you’ll need a trac account. Please select “TurboFeeds” as the ticket component.

Usage

Controller:

from turbogears import controllers, expose
from turbofeeds import FeedController, FeedHeadLinks, FeedLinks

class MyFeedController(FeedController):
    def get_feed_data(self, **kwargs):
        entries = []
        # Fill ``entries`` with dicts containing at least items for:
        #
        #   title, link, summary and published
        #
        # For example, supposing ``entry`` is a database object
        # representing a blog article:
        entries.append(dict(
            title = entry.title,
            author = dict(name = entry.author.display_name,
                email = entry.author.email_address),
            summary = entry.post[:30],
            published = entry.published,
            updated = entry.updated or entry.published,
            link = 'http://blog.foo.org/article/%s' % entry.id
        ))
        return dict(entries=entries)

class Root(controllers.RootController):
    feed = MyFeedController(
        base_url = '/feed',
        title = "my fine blog",
        link = "http://blog.foo.org",
        author = dict(name="John Doe", email="john@foo.org"),
        id = "http://blog.foo.org",
        subtitle = "a blog about turbogears"
    )
    feedlheadinks = FeedHeadLinks(controller=feed)
    feedlinks = FeedLinks(controller=feed,
        title = "Click link to access the feed in %(type)s format")

    @expose('.templates.mypage')
    def mypage(self):
        return dict(
            feedheadlinks=self.feedheadlinks,
            feedlinks=self.feedlinks)

Template:

<head>
  ${feadheadlinks()}
  ...
</head>
<body>
  <h2>Feed links</h2>
  ${feedlinks('%(type)s feed', url_params=dict(format='full'))}
  ...
</body>

Documentation

The TurboFeeds source is thoroughly documented with doc strings. The source distribution comes with epydoc-generated API documentation included.

You can also refer to the documentation for the original turbogears.feed package on the TurboGears documentation wiki:

http://docs.turbogears.org/1.0/FeedController

All information on this page is also still valid for TurboFeeds, you just have to replace:

from turbogears.feed import FeedController

with:

from turbofeeds import FeedController

Credits

  • The turbogears.feed package was first introduced in TurboGears version 0.9a1 and was added by Elvelind Grandin.

  • Christopher Arndt turned it into the TurboGears extension TurboFeeds.

  • Other contributors include:

    Florent Aide, Simon Belak, Kevin Dangoor, Charles Duffy, Alberto Valverde, Jorge Vargas

    Please notify the maintainer, if you think your name should belong here too.

  • The feed icons used by the CSS for the FeedLinks widget where taken from http://www.feedicons.com/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

TurboFeeds-0.2b.zip (140.4 kB view hashes)

Uploaded Source

TurboFeeds-0.2b.tar.bz2 (52.2 kB view hashes)

Uploaded Source

Built Distribution

TurboFeeds-0.2b-py2.5.egg (34.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page