The latest, HTML version of this document is always available at http://plagger.org/trac.cgi/wiki/PlaggerChangeLog
== 0.7.3 (2006/06/22) ==
=== Core ===
* Added Net::SMTP::TLS as a dependency
* rewrite_config doesn't die if there's permission error
* rewrite_config escapes regexp meta characters (Reported by s_fujiwara)
* Don't include t/core in the distro now
*
=== New Plugins ===
* Filter::FetchEnclosure::Curl: download enlcosures using Curl
* CustomFeed::MixiDiarySearch: CustomFeed handler for mixi.jp diary search
* Rule::Deduped: dedupe entries based on URL
* CustomFeed::2chSearch: CustomFeed to handle find.2ch.net SERP
* Notify::Beep: Beep your PC for feed notification using Audio::Beep
* Subscription::Bookmarks: Extract subscription from Bookmarks of IE, Firefox and Safari (miyagawa, youpy)
=== Plugins Updates ===
* Publish::Gmail: wrap MIME::Lite errors in eval
* Filter::FindEnclosures: Added yourfilehost.com, Mainichi Interactive and TypePad.com enclosure finder
* CustomFeed::Flickr: refactored from scratch and added enclosure support
* Filter::FetchEnclosure::ParallelUA: support Cookie sharing
* Filter::EntryFullText: misc upgrader files (topia, otsune, youpy, drawnboy)
* Notify::SSTP: added missing template (secondlife)
* Filter::2chRSSContent: Support id-less boards
* Publish::Gmail: don't send email when there's no entry #297
* Filter::EntryFullText: Added config parameter "force_upgrade"
* Rule::URLBL: support DNS caching
* Filter::TruePermalink: Don't rewrite permalink but link
* Publish::JavaScript: code tweaks and document updates
* Filter::EntryFullText: use Last-Modified to populate entry date even if there's no match
* Publish::CHTML: don't die if entry body contains non-sjis mappable entities. Change default to cp932
* Subscription::Planet: Added feedster.jp
* CustomFeed::Mixi: don't try to get unknown owner_id in RecentComment
== 0.7.2 (2006/06/02) ==
=== Core ===
* Make Cookies instances Singleton (suggested by Yappo)
* Calls env_proxy on Plagger::UserAgent so that HTTP_PROXY env variable is respected (woremacx)
* Add w3m cookie files support
* Aggregator::Simple globally overrides LibXML parser with Liberal if possible
* Recommend newest XML::Liberal 0.11 so that liberal XML parsing would take the best effect
* $ua->mirror can take $req so that plugins can add custom HTTP headers like Referer. #208
* Change flv MIME value to video/x-flv
* Media RSS support in RSS parsers to extract enclosures and thumbnails. #141
* XML::Feed, XML::Atom, XML::LibXML and XML::RSS::LibXML are now core required modules. #176
* Support Hatena Fotolife and Apple photocast namespaces for thumbnail extraction.
=== New Plugins ===
* Filter::LivedoorKeywordUnlink: strip and normalize links to livedoor keywords (miyagawa)
* Subscription::File: subscribe to URLs in plain text file (wolverian)
* Subscription::FOAF: subscribe to friends' weblogs in FOAF:knows (wolverian)
* Subscription::Feed: subscribe to item links in RSS/Atom Feeds (miyagawa)
* Filter::FetchEnclosure::Xango: Xango-based asynchronous POE downloader (dmaki)
* Filter::FetchEnclosure::Wget: use wget command line tool for async download (miyagawa)
* Filter::FetchEnclosure::ParallelUA: use LWP::Parallel for async download (miyagawa)
=== Plugins Updates ===
* Filter::2chRSSContent: Updated regexp so that it works without milliseconds (miagawa)
* Filter::FeedBurnerPermalink: Work with Atom 1.0 feed to extract permalink
* Subscription::Bloglines: Try with mark_read=0, then fallback to loop mode if it failed, to avoid data loss
* CustomFeed::YouTube: updated regexp for thumbnail servers (fujiwara)
* Filter::EntryFullText: move the place of hook before date parser to hack date format
* Filter::BreakEntriesToFeeds: Don't change feed title. #220
* Filter::FetchEnclosure: Added fake_referer config to add Referer header.
* Publish::Gmail: attaches inline img enclosures as multipart/related and replace img src with Content-IDs.
* Publish::Gmail: attach_enclosures is now optional, defaults to off.
* Fliter::RSSLiberalDateTime: Fixed bug around minus timezones
* Filter::EntryFullText: Support icon extraction
* Filter::EntryFullText: Added NoNetwork option to URI::Fetch so that it's much faster
* Filter::EntryFullText: thinkit.co.jp and pasonatech.co.jp (otsune)
* Subscription::Planet: Added new Bloglines feed search
* Filter::*Permalink: removed in favor of TruePermalink
== 0.7.1 (2006/05/24) ==
=== Core ===
* Added woremacx, topia and cheebow as AUTHORS
* Plagger::Cookies and Plagger::Mechanize allows Plagger to share cookies with your browser like Firefox, IE or Safari.
=== New Plugins ===
* Notify::UpdatePing: notify updates via XMLRPC pings (miyagawa)
* Notify::Tiarra: notify updates via Tiarra control socket (topia)
* Publish::PalmDoc: publish updates to PalmDoc (cheebow)
* Publish::OutlineText: publish updates as outline text (cheebow)
=== Plugins Updates ===
* Filter::Regexp: now you can use utf-8 regular expressions (woremacx)
* Widget::Delicious: Support one_click_post to automatically post by clicking (s_nobu)
* Filter::FindEnclosures: Now it's extensible using meta-plugins. Added youtube.pl as an example. Thanks to mizzy
* CustomFeed::Simple: deduplicate links by URLs. Don't add links associated with images without alt (miyagawa)
* Filter::TruePermalink: Added YouTube, MSN Mainichi
* Publish::MT: Fixed blog_id config bug. #252
* Subscription::LivedoorReader: Adds ApiKey as a sticky query to their API (suggested by mala)
* Publish::Gmail: Don't trim lines over 1000 by using quoted-printable.
* CustomFeed::GoogleNews: now accepts keyword search result page as well
* Filter::HatenaRSS: Update OPML URL. Uses Cookie sharing framework.
* CustomFeed::Frepa: Uses Cookie sharing.
* CustomFeed::Mixi: Uses Cookie sharing.
* CustomFeed::Yahoo360JP: Uses Cookie sharing.
* Subscription::LivedoorReader: Uses Cookie sharing.
* Notify::Campfire: Uses Cookie sharing.
== 0.7.0 (2006/05/17) ==
=== Core ===
* Shiny new Enclosure support!
* Dependency for MIME::Types
* Fix $cache->path_to auto creation bug
* Allow plugins/Foo/Bar.pm directory strcuture to be backward compatible
* Added regression and plugins tests suite for the first time
=== New Plugins ===
* Filter::FetchEnclosure: Download enclosures automatically to local
* CustomFeed::YouTube: Search YouTube and find enclosures (mizzy)
* Filter::RewriteEnclosureURL: Rewrite enclosure's URL when you republish downloaded enclosures
* Filter::POPFile: Use POPFile XMLRPC API to classify feeds (charsbar)
* Filter::TagsToTitle: Add tags to title as prefixes (charsbar)
* Filter::FindEnclosures: Automatically discover enclosures in entry content
* Filter::HEADEnclosureMetadata: Send HEAD requests to enclosures to get Length and correct filename
* Subscription::XPath: extract subscriptions from XHTML using XPath (youpy)
* Subscription::PlanetINI: extract subscriptions from Planet's config.ini file
=== Plugins Updates ===
* Publish::2chdat: Internal fix to use id_safe method
* Subscription::Bloglines: support enclosures taken from sync API
* Publish::Gmail: Attach enclosures if they're downloaded locally with FetchEnclosure
* Filter::TruePermalink: Now supports rewriting enclosure URL as well.
* Filter::TruePermalink: Support recursive mode and redirector resolution
* Publish::Feed: Support enclosure creation in RSS 2.0 and Atom feeds
* Filter::SpamAssassin: Nuked some options (charsbar)
* Filter::HatenaKeyword: Use title to extract keywords as well
* Filter::StripRSSAd: Added pheedo.jp pattern. Now can strip entry if it contains certain pattern.
*
== 0.6.6 (2006/05/12) ==
=== Core ===
* Added sites upgrade files (woremacx)
* Don't truncate newline after password rewrite #200
* Share $feed object between subscription and update
* encode detection now uses XML encoding declaration first
* Unhandled feed is removed from $context->subscription
* Plagger::Date->parse doesn't force preference timezone if parsed datetime is floating
* Load plugins from plugins/*/lib #212
=== New Plugins ===
* Filter::HatenaKeywordTag: Use Hatena Keyword API to auto-tag (secondlife)
* Search::Estraier: Search plugin to use Hyper Estraier Node API (miyagawa)
* Subscription::XOXO: load subscription from XOXO microformats (miyagawa)
* Publish::2chdat: Create 2ch subject.txt and *.dat files (miyagawa)
* Filter::2chRSSContent: Fix rss.s2ch.net feed content (miyagawa)
* Filter::Markdown: Filter entry body using Markdown syntax (s_nobu)
=== Plugins Updates ===
* Notify::IRC: added password config to plagger-ircbot #197
* Filter::TruePermalink: Updated Y! Blogsearch pattern. Added reedit.com
* rename Publish::Spotlight to Search::Spotlight #207
* CustomFeed::Mixi: support "ashiato". Update WWW::Mixi deps
* Rule::URLBL: now works with $args->{entry} to be used with Filter::Rule
* Publish::Planet: get members from subscription rather than update #198
* CustomFeed::BloglinesCitation: Handle local datetime PST #187
* Filter::EntryFullText: now work with rule
== 0.6.5 (2006/04/28) ==
=== Core ===
* Aggregator::Simple: Allow bad content-type feeds like text/plain (miyagawa)
* Aggregator::Simple: Hack nasty Unicode unflagness in Atom feed with XML::Feed (miyagawa, reported by otsune)
=== New Plugins ===
* Subscription::LivedoorReader: Fetch subscription via LDR (miyagawa)
* Filter::CompositeFeed: pack all the feeds into entries of single feed (miyagawa)
* Filter::AtomLinkRelated: Use link rel="related" as a link in Atom feeds (miyagawa)
=== Plugins Updates ===
* Filter::TruePermalink: minor updates in refrss (otsune) updated Yahoo! blog redirector (miyagawa)
* Filter::ResolveRelativeLink: don't die even if there's no link found
* Subscription::OPML: broken OPML feed support with XML::Liberal (miyagawa)
* Filter::EntryFullText: Lots of feed upgrade files (manabou, woremacx, kazeburo)
* Filter::StripRSSAd: support branded feed domain in FeedBurner (miyagawa)
* Widget::HatenaBookmarkUsersCount: Autoload Filter::HBUC (reported by otsune)
* CustomFeed::Frepa: defaults to all feed types
* Publish::Delicious: Fixed interval bug
== 0.6.4 (2006/04/19) ==
=== Core ===
* Fixed MANIFEST to include assets
* Reorganized assets directory naming. Keep cases of plugin names. #106
* More feed upgrader files (manabou, youpy)
* Update XML::RSS::LibXML to avoid non-UTF8 feed breakage (Thanks to dmaki, Reported by manabou)
=== New Plugins ===
* Filter::BloglinesContentNormalize: normalize HTML attributes in Bloglines body (miyagawa)
* Filter::TruePermalink: Permalink rewriting framework (youpy, miyagawa)
=== Plugins Updates ===
* Filter::StripRSSAd: now load pattern files from assets directory #179 (miyagawa)
* Filter::StripRSSAd: Add npr.org valueclick feed ads. Updated Google AdSense pattern
* CustomFeed::Mixi: Make cache TTL of fetch_body longer to avoid Footprint issue (miyagawa)
* Subscription::2chThread: Accept multiple thread URLs (youpy)
* Deprecate NamaanPermalink, 2chRSSPermalink and YahooBlogSearchPermalink in favor of TruePermalink (miyagawa)
* Subscription::Planet: nuked MSN Search, added Technorati Tag search
== 0.6.3 (2006/04/15) ==
=== Core ===
* EntryFullText: Fixed bug that date format is not properly decoded as UTF-8
* requires URI::Fetch 0.06. #168
* Added various sites upgrader files (miyagawa, s_nobu, ko, mamorou, nTeTs, youpy)
* Added atode.cc sample in examples directory
=== New Plugins ===
* Filter::BreakEntriesToFeeds: Break entries in each entry as a feed containing single entry (miyagawa)
* Filter::2chRSSPermalink: Fix rss.s2ch.net feeds permalink (youpy)
* Subscription::2chThreadList: Add 2ch threads to Subscription using rss.s2ch.net feeds (youpy)
=== Plugins Updates ===
* Subscription::Planet: Allow multiple keywords set in config files. Allow non utf-8 URI escape (Suggested by secondlife)
* CustomFeed::Mixi: Fix newline are not correctly extracted in Messages feed. Fixed first-time access bug without cookies
* Subscription::Bloglines: Fix atom:id bug when permaLink="false"
== 0.6.2 (2006/04/10) ==
=== Core ===
* When character set declared is invalid, falls back to auto detection (Reported by typester)
* Fix Atom feeds handling when there's no content
* requires URI::Fetch 0.06 which has better redirection support
* Fixed $plugin->assets_dir bug that it doesn't respect global config (Reported by s_nobu)
=== New Plugins ===
* Filter::HatenaDiaryKeywordUnlink: strip links to Hatena Diary Keywords (miyagawa)
* CustomFeed::GoogleNews: Create custom feeds off of Google News (miyagawa)
=== Plugins Updates ===
* CustomFeed::Yahoo360JP: Separate blast feed as a different feed (miyagawa)
* Filter::EntryFullText: Added lots of site upgrade files (miyagawa, typester, s_nobu)
* CustomFeed::Frepa: Fix buddy icon link to your own comment (miyagawa)
* Subscription::Bloglines: Fix $entry->permalink bug when atom:id is tag (miyagawa)
* Subscription::Config: now allows empty list of feeds (miyagawa)
== 0.6.1 (2006/04/03) ==
=== Core ===
* New Feed Upgrade framework: CustomFeed::Simple and Filter::EntryFullText
* Supports .pl and .yaml file based site upgrader scripts
* Plagger::Util has decode_content and extract_title
* Support metadata in config.yaml
* Support automatic config rewriting for password fields using Base64 for now
* New dependencies: Module::Pluggable::Fast and HTML::ResolveLink
* Uses Encode::Detect and falls back to Encode::Guess to guess charset of HTML
* New author: typester (Daisuke Murase)
* Added lots of site upgrade scripts
=== New Plugins ===
* Filter::YahooBlogSearchPermalink: Fixes permalink redirector of Y! Blog Search (.jp) (miyagawa)
=== Plugins Updates ===
* WebService::Bloglines: Fix guid stringification bug (typester)
* CustomFeed::iTunesRecentPlay: Amazon Web Services Integration (mizzy)
* CustomFeed::Frepa: Fixed blast error logic (secondlife)
* Subscription::Planet: Added Yahoo! Blog Search, Feedster and BlogPulse
== 0.6.0 (2006/04/02) ==
=== Core ===
* revamped CustomFeed API
* Aggregator::Simple supports RSS/Atom auto-discovery. #20
* Fixed CustomFeed multiple instances bug. #110
* Autoload Aggregator::Simple when no Aggregator is used. #125
* Added $context->is_loaded($plugin). #125
* $plugin->log is now supported
* Uses newly added $plugin->plugin_id method to avoid cache gotcha. #95
* $plugin->cache->path_to automatically creates sub directories. #118
* SmartFeed now uses permalink to dedupe entries
=== New Plugins ===
* Filter::FeedFlareStripper: Strip FeedFlare from FeedBurner feeds (miyagawa)
* Widget::BloglinesSubscription: Link to edit subscription of Bloglines #123 (miyagawa)
* Subscription::DBI: manage subscriptions using database (Franck Cuny)
* CustomFeed::SVNLog: Create feeds from subversion log (Michiya Honda)
* Filter::Profanity: replace profane terms to !%$@# (miyagawa)
* Filter::Thumbnail: create thumbnail screenshot to use as feed icon (miyagawa)
* Widget::BulkfeedsSpamReport: Report feed as Splog to Bulkfeeds. #135 (miyagawa)
* Filter::NamaanPermalink: extract permalink from redirector URL (miyagawa)
* Filter::Romanize: uses kakasi to filter content into Roman (miyagawa)
* Subscription::Planet: Aggregates entries from various RSS search engines (youpy)
* Subscription::PingServer: Load pinged feeds to ping servers as subscription (ko)
* Filter::Rule: generic rule based feed trimming (miyagawa)
* Publish::Takahashi: Published feed entry titles as takahashi.xul file (miyagawa)
* Filter::EntryFullText: Fetch Full-Text using site handler files (miyagawa)
* Rule::URLBL: rule used with Aggregator to skip URLBL'ed feeds (ko)
=== Plugins Updates ===
* Filter::StripRSSAd: More Google AdSense patterns, FeedBurner ads, seesaa.jp
* Filter::FeedBurnerPermalink: Now work with RSS 1.0 feeds. #122
* CustomFeed::Frepa: Update HTML pattern.
* Filter::Base: new base class to handle HTML-only filter. #88
* Publish::Speech: MacOSX impementation supported (Ryo Okamoto)
* Publish::Planet: don't use HTML::Tidy for now. Fixed templates
* Aggregator::Xango: Now requires Xango 1.04. Support RSS/Atom auto-discovery
* Publish::Gmail: overwrite X-Mailer header
* CustomFeed::Frepa: support FriendStatus and RecentComment (tokuhirom)
* CustomFeed::Mixi: support Message and RecentComment (tokuhirom)
* Subscription::Bloglines: Set RSS 2.0 guid as permalink (typester)
== 0.5.7 (2006/03/13) ==
=== Core ===
* $entry->id tries hard to get unique ID
* $entry->feed_link to point feed's link
* Rename define_recipes and recipes
=== New Plugins ===
* Publish::Maildir: Store updates to local mailbox (s_nobu)
* Publish::IMAP: Store updates to IMAP mailbox (s_nobu)
* CustomFeed::Debug: Create feed using config.yaml for debugging (naoya)
* Filter::Emoticon: filter emoticons of MSN, Yahoo! or Google Talk (naoya)
=== Plugin Updates ===
* Publish::MTWidget: fixed template rebuild bug (Thanks to charsbar)
== 0.5.6 (2006/03/08) ==
=== Core ===
* New AUTHORS: Yuichi Tateno, Gosuke Miyashita, Casey West, Jesse Vincent, Naoya Ito and Kenichi Ishigaki
* Make ~/.plagger directory not readable by other users. (Thanks to typester)
* Better package management and pod tests (obra)
* config examples/ directory (cwest)
* Templates and other plugins resource rename (cwest)
* SmartFeed now has $entry->source to point to source feed (miyagawa)
* $context->templatize($plugin, $file, $var) conveniene method (miyagawa)
* Plagger::Date now uses local timezone as a default, when there's no config
* Added aggregator.aggregate.filter experimental hook for Aggregator::Simple (miyagawa)
* Implement define_recipes, recipes and includes directive in config for DRY (Yappo, secondlife)
* $plugin->cache->path_to() to point plugin specifc temp file (miyagawa)
* Added 'plugin.init' hook (miyagawa)
=== New Plugins ===
* Notify::SSTP: Notify updates to Sakura Script Transfer Protocol (secondlife)
* Publish::Playlog: Use Atom Publishing Protocol to post iTunes playlog (mizzy)
* CustomFeed::iTunesRecentPlay: iTunes' recent playlist