This document describes Plagger, a pluggable RSS/Atom aggregation and remixing platform. Plagger allows users to create custom applications by combining subscription, filtering, and publishing plugins in different configurations. Examples provided include aggregating Bloglines feeds to Gmail, an IRC bot that notifies about new RSS items, creating a planet site by merging many feeds, and downloading videos from YouTube feeds. The core features of Plagger include automatic RSS/Atom feed discovery and support for various feed formats. Plugins can be combined like Lego blocks to build many different types of applications.
6. Speaking of
RSS/Atom aggregator
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
7. Who here is
using Bloglines?
(or any other web-based aggregators)
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
8. Who here
thinks that it sucks?
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
9. Plagger is for you.
see Bloglines2gmail
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
10. Who here has
ever written a tool
using XML::RSS?
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
11. Welcome aboard.
There's a chance that you can transform
your script into a Plagger plugin.
And I can give you a svn commit bit!
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
12. Why Pluggable?
Just for a feed aggregation?
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
54. Config for RSS bot (2/3)
# I don't like to be notified of same items
# more than once!
- module: Filter::Rule
rule:
module: Fresh
mtime:
path: /tmp/rssbot.time
autoupdate: 1
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
82. Subscription::Bookmarks
Read bookmarks file of IE, Firefox and Safari
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
83. Aggregator
Aggregate and parse the feeds
listed in subscription(s)
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
84. Aggregator::Simple
The quot;dumbquot; aggregator
Using LWP and XML::Feed
Might be okay < 20 feeds
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
85. Aggregator::Xango
The quot;fastquot; aggregator using Xango.pm
the POE based scalable web crawler
For > 100 feeds
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
86. CustomFeed
Feed formats other than RSS/Atom
Scrapers
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
87. CustomFeed::POP3
Each email is a feed.
Attachments are enclosures.
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
88. CustomFeed::MySpace*
Your friends journal as feed
(* indicates it's not developed yet)
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
89. CustomFeed::FlickrSearch
Search results as feed
Each photo found is an entry
(with enclosures).
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
90. Filter
Normalize / Repair feed metadata
Upgrade feed content
Filter feed content using text filters
Invoke some action on entries
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
92. Filter::EntryFullText
Upgrade content-less feed to fulltext feed
by fetching individual HTML
and extracting the content body
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
93. Filter::TruePermalink
Resolves nasty redirection URL
to the quot;truequot; permalink
(e.g. http://…/go.php?url=….)
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
94. Filter::FindEnclosures
Find enclosures from content body
<a href=quot;http://…./foo.mp3quot;>episode #1</a>
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
95. Filter::RSSLiberalDateTime
Deal with broken rss datetime format
<pubDate>2006/06/27 01:45:22 +0900</pubDate>
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
96. Publish
Publish aggregated entry to online services
Convert feeds to other formats
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
97. Publish::Feed
Republish feed in RSS/Atom
Good to use with scrapers
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
98. Publish::Delicious
Auto-post entries to your del.icio.us
using its REST API
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006
99. Publish::iCal*
Publish iCal feeds out of RSS/Atom
Tatsuhiko Miyagawa 2006/06/27 YAPC::NA 2006