The latest, HTML version of this document is always available at http://plagger.org/trac.cgi/wiki/PlaggerChangeLog

0.7.17 (2006/12/04)

Core

  • Summary::Simple: Fix HTML extraction so it respect attributes (nikc)
  • Force stringify ID in safe_id
  • Namespace::MediaRSS: Try mrss namespace with and without the trailing slash

New Plugins

  • Filter::HTMLTidy: use HTML::Tidy to scrub HTML document

Plugins Updates

  • CustomFeed?::Debug: reuse feed object to work with SmartFeed?
  • Publish::Planet: update template to use Plagger::Text
  • Filter::EntryFullText?: grab TITLE from HTML if there's no title set
  • CustomFeed?::Simple: make URLs extracted with XPath absolute
  • Subscription::HatenaGroup?: use Plagger::FeedParser? rather than XML::Feed
  • CustomFeed?::YouTube?: update regexp (mizzy)
  • Subscription::LivedoorReader?: don't use strip_html
  • Publish::Excel: don't use strip_html
  • CustomFeed?::Simple: don't set title if it's already set in Subscription (typester)
  • Publish::Feed: added taguri_base config
  • Bundle::Planet: pass URI domain to taguri_base
  • Filter::DegradeYouTube?: update regexp
  • CustomFeed?::Mailman: updated regexp to work with wrapped subject
  • Publish::Gmail: added timeout config for mailroute when used with SMTP-TLS

0.7.16 (2006/11/26)

Core

  • Plagger::Date->parse_dwim now supports Japanese date format
  • $plugin->load_assets ignore .svn directory by default
  • update DateTime? and DateTime?::Locale dependencies

New Plugins

  • Summary::Japanese: Summary generator using Lingua::JA::Summarize::Japanese::Extract (miyagawa, ko)
  • Summary::AppleScript?: Summary generator using MacOSX summary service (otsune)
  • Filter::DegradeYoutube?: degrade YouTube? embed video HTML (tokuhirom)

Plugins Updates

  • Filter::EntryFullText?: Update patterns for Slashdot.jp, pmachine
  • Filter::TruePermalink?: added ?fr=rdf (otsune)
  • CustomFeed?::POP3: Made it more liberal to parse Date: header
  • Filter::Babelfish: Fixed bug around Plagger::Text
  • Filter::HatenaDiaryKeywordUnlink?: Support annonymous diary (kentaro)
  • CustomFeed?::Mixi: reworked regular expression to work with site updates. Now image links are added to enlcousres
  • CustomFeed?::Debug: Allow "entries" key. Auto set type on enclosures if not set.
  • Filter::EntryFullText?: support Japanese date format per Plagger::Date updates
  • Subscription::Bloglines: 'dont_use_notifier_api' to work around Notifer API bug
  • Fitler::2chRSSContent: work around with s2ch.net URL changes
  • Notify::IRC: Update defaulte templates colors (typester)
  • CustomFeed?::Mixi: bumped WWW::Mixi deps
  • CustomFeed?::MixiDiarySearch?: HTML updates
  • Filter::EntryFullText?: XPath support now works with non-Node element (nikc)
  • Publish::Feed: fixed bugs that it emits empty category tags and nobody author elemen

0.7.15 (2006/11/01)

Core

  • bump up Encode::Detect dependency so it's easier to install

New Plugins

Plugins Updates

  • CustomFeed?::YouTube?: Update queries unencoded in YAML (mizzy)
  • Summary::Simple: Get the first sentence if it's plain text
  • Filter::StripRSSAd: support pheedo variant ads, RSScache.com
  • Publish::Gmail: now allows non-UTF8 encoding by setting 'encoding'
  • CustomFeed?::Mixi: Updated regular expression to keep up with the site updates
  • Publish::Maildir: fixed enclosure bugs
  • Filter::Markdown: fixed configuration pass bug
  • Filter::GuessTimeZoneByDomain?: bump up DateTime?::TimeZone? requirement
  • Publish::Gmail: don't die if enclosure URL is not found and thus not saved in the local
  • CustomFeed?::Script: added SSL expire example code
  • Subscriptoin::Planet: Update Google Blog search to use Japanese version
  • Filter::EntryFullText?: show debug message if YAML mandatory key is not found
  • Publish::Feed: fixed a critical bug that the content is always b64 encoded

0.7.14 (2006/10/17)

Core

  • include YAML::Loader in inc
  • Introduced new spell typo checker Test::Spelling
  • Merged hackathon-summary for a pluggable summary generation
  • Added Plagger::Text object for title, author, entry, summary and body
  • Better html2text function using HTML::TreeBuilder? and (optional) HTML::FormatText?
  • Plagger::Date parse* method now doesn't set Timezones by default
  • Move namespecific parsing logic into Namespace::* plugins

New Plugins

  • Summary::Auto: Auto-extract summaries
  • Summary::Simple: Default summary extractor using regular expression
  • Summary::English: Wrapper for Lingua::EN::Summarize
  • Summary::HatenaBookmark?: Extract summary using Hatena Bookmark
  • Summary::TextOriginal?: Wrapper for Text::Original
  • Summary::TrackbackRDF: Extract summary from Trackback RDF data
  • Filter::GuessTimeZoneByDomain?: guess timezones of entry using URL domains
  • Filter::ForceTimeZone?: force timezone regardless of they're UTC/Olson/Floating
  • Namespace::HatenaFotolife?: Hatena fotolife module handler
  • Namespace::ApplePhotocast?: Apple Photocast module handler
  • Namespace::MediaRSS: Media RSS module handler
  • Bundle::Defaults: Default plugins loader
  • Filter::Kansai: Converts Japanese text body to Kansai Dialect

Plugins Updates

0.7.13 (2006/10/09)

Core

  • Example of Kwalify schema file in examples/schema.yaml
  • Dumpes template path in Plagger::Template for debug-aid

New Plugins

  • Filter::LivedoorClipUsersCount?: get livedoor Clip users count via API (otsune)
  • CustomFeed?::Script: Call script via shell to get the feed as RSS/Atom or YAML (miyagawa)
  • Publish::iCal: Simple Feed to iCal generator (miyagawa, kentaro)
  • Notify::OpenBrowser?: Open updated entries in a browser, cross-platform. (kazeburo, miyagawa, youpy)

Plugins Updates

  • Publish::CHTML: workaround for symlinks in Win32 (charsbar)
  • Publish::2chdat: Fixed typo and added escape for <> in the content
  • CustomFeed?::AmazonAssociateReportJP: Fixed follow_link (otsune)
  • Notify::UpdatePing?: Wrap ping sending code to trap errors (otsune)
  • Publish::MT: fixed POD
  • Publish::Palmdoc: Fixed UTF-8 error on feed title (cheebow)
  • Subscription::PingServer?: Fixed unused dependency
  • Filter::FindEnclosures?: Added stage6 and dailymotion assets (taro)
  • CustomFeed?::Frepa: Updated regular expression to deal with site updates (nipotan)
  • Publish::PDF: Added 'html.tt' template which was missing
  • Publish::PDF: now accepts 'filename' as a parameter

0.7.12 (2006/09/15)

Core

  • [Backward Incompatible] Updated $feed->id implementation to return unique ID
  • Requires XML::RSS::LibXML 0.23
  • allow '-' as a config name to read from STDIN

New Plugins

  • Search::Grep: Search engine using flat file and grep (ko)
  • Filter::UnicodeNormalize?: Normalize entry body using Unicode::Normalize (otsune)

Plugins Updates

  • Misc plugins updates to use Plagger::Util filename_for
  • Subscription::LivedoorReader?: modified_on can be null
  • BloglinesContentNormalize?: hack space before empty elements
  • Rule::URLBL: fixed bug with non-HTTP URLs
  • Filter::StripRSSAd: Update for Bloglines
  • CustomFeed?::Simple: Support XPath based link extraction
  • Publish::CHTML: use id_safe for safe feed ID generation
  • Filter::EntryFullText?: support XPath with custom_feed_follow_xpath
  • Filter::TruePermalink?: Don't die if it detects infinite reditrection loop

0.7.11 (2006/08/30)

Core

  • Makefile.PL now prioritizes "default" plugins first, then otherwise alphabetically sorted
  • testcritic test is now not in distribution since it's unnecessary and annoys people
  • Updated POD document of some core modules (Mark Fowler)
  • $ua->mirror(URI, $path) now works
  • t::TestPlagger?: allow strings rather than regexp in file_contains
  • tools/plugin-start: optionally call svn/svk if it's detected

New Plugins

  • Notify::Command: generic command caller plugin for notification (miyagawa)

Plugins Updates

  • Publish::Feed: fixed RSS 2.0 webMaster validity problem
  • Search::Rast: moved some code to plugin.init. updated document
  • Subscription::XPath: Accept non-absolute link as well
  • Filter::StripRSSAd: some spacing fix for bloglines nasty content updates
  • Filter::BloglinesContentNormalize?: strip &#13; added by Bloglines

0.7.10 (2006/08/29)

Core

  • Added Test::Perl::Critic test
  • Fixed 2 args open to 3 args to follow PBP
  • Added video/mp4 MIME type to mime_type_of
  • Fixed bug in mime_type_of in extracting mp3 from "foo.bar.mp3"
  • Refactored enclosure detection code to Util. Added ogg to known list by hardcoding
  • bumped up XML::Atom and XML::Liberal requirement
  • tools/chimp-smoker: fixed bug in get_branch
  • Encode::Detect is no more recommended module by default
  • Fixed ConfigLoader? bug that it doesn't do rewrite_config correctly (by charsbar)

Plugins Updates

  • Filter::TruePermalink?: refactored assets loading code. Store redirection result even if it's empty
  • Fitler::TruePermalink?: Don't handle HTTP response body when it checks redirection, to skip huge files like mp3
  • Filter::EntryFullText?: refactored assets loading code.
  • Fitler::StripRSSAd: refactored assets loading code. Renamed pattern files to .pat
  • Filter::StripRSSAd: Added slashdot.jp and pheedo.jp handler
  • Publish::Feed: use permalink to set to entry link

0.7.9 (2006/08/24)

Core

  • Fixed BaseDirURI logic to allow empty dirname on Mac OSX (Yappo)
  • Added tests to lots of plugins thanks to Testathoners
  • Added Plagger::Walker util class to serialize feed data
  • Merged from hackathon-mt branch. Added Plagger->set_context method
  • Split bootstrap into new() and run() to be used in persisten programs
  • Added $context->search() stub to get Plagger::Feed object from Search::* backends
  • Added bin/plagger-search prototype CLI
  • Added bin/plagger-atom-stream-consumer, very experimental AtomStream? consumer
  • Updated Plagger::Template->new() parameter
  • assets_path: can now be localized per plugins using config:assets_path
  • lots of fixes to tests so it can work on Windows
  • decode config.yaml as UTF-8 automatically before run, unless you specify global:no_decode_utf8=1
  • chimps-client: create lock dir to avoid double excecution
  • Split feed parsing logic from Aggregator::Simple to Plagger::FeedParser? so plugins can use.
  • Added $ua->fetch_parse($feed) and $ua->find_parse($url)
  • Fixed misusage of Term::Encoding (Yappo)
  • Support entry level image in RSS 0.91 and 2.0

New Plugins

  • Publish::JSON: Serialize feed to JSON (miyagawa)
  • Publish::Serializer: Dump feed to various format using Data::Serializer (naoya, miyagawa)
  • Notify::Audio: Play sound files when feed comes. Support playing enclosure files as well (miyagawa, youpy)

Plugins Updates

  • Publish::Gmail: support APOP authentication in POP before SMTP
  • Filter::Delicious: use Plagger::UA for caching.
  • CustomFeed?::Yahoo360JP: removed from the distro since no one is using it and it's broken
  • Widget::Simple: Added lots of widgets (hsbt, jiro, drawnboy)
  • Filter::EntryFullText?: Fixed XHTML numeric entities issue when using XPath (spotted by otsune)
  • Filter::2chRSSContent: Strip AD entry
  • CustomFeed?::YouTube?: fix regexp to get page content (mizzy)
  • Subscription::OPML: Fixed bug where containers are not correctly loaded because of array reference
  • Subscriptoin::OPML: Ditch XML::OPML and rewrite OPML parser using XML::LibXML::SAX
  • Filter::EntryFullText?: extract_capture defaults to 'body' (suggested by otsune)
  • Search::Rast: implemented searcher.search API (Yappo)
  • Filter::TruePermalink?: Fixed ref=rss YAML. Removed redirectors.yaml and instead introduced 'follow_redirect' config (default: 1)
  • Notify::IRC: use color code scheme to colorize feed title and author (#movabletype)

0.7.8 (2006/08/18)

Core

  • More fixes to Chimps client to deal with dependencies
  • Win32 fix to $t::TestPlagger?::BaseDirURI
  • Deal with Unicode filenames on Win32
  • DWIM config filter for t::TestPlagger?
  • Cookies parser warns if cookie file is not found (reported by otsune)
  • Fix to t/core/cache.t for more time interval (charsbar)
  • More tests to more plugins!
  • Set cache base to File::Temp::tempdir in tests
  • Bump up XML::Feed requirement to 0.12
  • refactored include/recipes handler to Plagger::ConfigLoader? so bin/* scripts can use
  • Fixed Aggregator::Simple bug to deal with single MediaRSS element in Flickr feeds
  • Added tools/plugin-start.pl to start a new plugin module
  • test_requires_network() now can take an argument host to test (youpy)
  • Update include_deps in Makefile.PL to include YAML dependencies

New Plugins

  • UserAgent?::RequestHeader?: Add arbitary HTTP request header based on URL (miyagawa)
  • Filter::ExtractAuthorName?: Extract author name from RFC 2822 address in RSS 2.0 (miyagawa)
  • Widget::Simple: config based simple Widget creator (miyagawa)

Plugin Updates

  • Publish::CHTML: Insert generated time in HTML (otsune)
  • Filter::BreakEntriesToFeeds?: Support rules (suggested by otsune)
  • Search::Estraier: use "estmaster stop". Work with estmaster 1.3.x config files (reported by youpy)
  • Filter::Delicious: scrape big users count (taro)
  • Filter::Thumbnail: Add 'set_per_entry' config

0.7.7 (2006/08/10)

Core

  • Misc test fixes to work on Win32 (reported by charsbar)
  • use File::HomeDir? on Win32 if available rather than $ENV{HOME}
  • Plagger::Date->set_time_zone now doesn't die even if it can't figure out TZ
  • require HTML::Parser 3.51 to handle nasty HTML entities in tag attributes (reported by mizzy)
  • Fix core/cache.t to sleep a little bit (suggested by charsbar)
  • require XML::Feed 0.11 to handle Atom links without @rel (jwang)
  • Fix to Publish::Feed to emit valid Atom 1.0
  • Fix parsing RSS 2.0 category tags with @domain (reported by typester)
  • Add Plagger::UserAgent? hooks
  • Support Atom 1.0 category extraction (reported by jwang)
  • SUpport Atom 1.0 entry date handling without published (reported by jwang)

New Plugins

Plugins Updates

  • Notify::IRC: move to publish.entry so Rule plugin can work per entry (reported by clkao)
  • EntryFullText?: Coule updates to sites (otsune)
  • Filter::Babelfish: use Filter::GuessLanguage? (charsbar)
  • CustomFeed?::YouTube?: HTML layout update (yoshiki)
  • Publish::MT: hack SOAP::Transport::HTTP to use Plagger::UserAgent? instead of LWP

0.7.6 (2006/08/07)

Core

  • $context->run_hook can now take callbacks to pass result value
  • Use title specified in Subscription (Suggested by John Wang) #344
  • Aggregator::Simple: looks_like_feed handles RSS 1.0 feed more generously
  • CustomFeed?::Simple: fixed UUV warnings
  • Now plugin dependencies are defined in separate files in deps/
  • Plagger::Date now supports $date->format( DateTime?::Format object )
  • SmartFeed?::All: dedupe_entries now respects feed source domain, older date entry and full content feed. #333
  • Publish::Feed: Make sure that generated Atom 1.0 and RSS feeds are valid using feedvalidator

New Plugins

  • Search::KinoSearch?: Use KinoSearch? as a search backend (miyagawa)
  • Filter::Babelfish: Use WWW::Babelfish to translate entry content (charsbar)
  • Notify::NetSend?: Use NetSend? to notify entries (jiro)
  • Publish::Excel: Store feed entries body to .xls spreadsheet (jiro)

Plugins Updates

  • EntryFullText?: Fix YouTube? handler.
  • Search::Estraier: Added unit test. Support searcher.search API
  • StripRSSAd: Add namaan.net ad entry stripper
  • Publish::SWF: Added j/k keyboard shortcut (akihito)

0.7.5 (2006/07/26)

Core

  • Merge from branches/refactoring-planet
  • Plagger::UserAgent? now deals with local files to get their MIME type correct
  • Big refactoring done for $plugin->templatize() usage. #229
  • Start using Test::Base for unit tests and convert most of existent tests to TB based
  • Plagger->bootstrap() now returns $context
  • Added $plugin->load_assets method in a base class
  • decode $content before feed auto-discovery to avoid HTML::Parser warnings
  • Bump up XML::Feed requirement to 0.09 so it can generate RSS 2.0 with content:encoded. #104
  • remove inc from svn
  • $feed->primary_author to return feed author by invsesting entries authors

New Plugins

  • Bundle::Planet: to load bunch of plugins under the table to create Planet site with a few lines of config
  • Filter::StripTagsFromTitle?: Strip tags found in title. #289
  • Filter::HTMLScrubber: standalone HTML filter to scrub HTML, merged from feature-server (typester)
  • Publish::FOAFRoll: generate foafroll RDF ala Planet

Plugin Updates

  • Publish::Planet: accept style_url as a list. #316
  • Publish::Planet: Fixed typo in sixapart-std template. #309
  • Publish::Planet: members_list is now deprecated and on by default
  • Publish::Planet: Bye to HTML::Tidy and HTML::Scrubber
  • Publish::Planet: 'skin' config is now renamed to 'theme'
  • Publish::Planet: skip non-http URLs
  • Subscription::Planet: add URL based search. #286
  • Subscription::Planet: language based goruping. #288
  • Bundle::Planet: Add OPML generation support
  • Bundle::Planet: Add FOAFRoll generation support
  • Aggregator::Null: fixed the fatal bug so it works
  • Rule::Fresh: now you can use human readable duraion format like '7 days'. Requires Time::Duration::Parse
  • Publish::Feed: 'full_content' config (defaults to 1) specified whether to publish fullcontent in the feeds
  • Publish::Feed: now generate Atom 1.0 by default if you use XML::Atom >= 0.20
  • Publish::OPML: Now OPML validator compatible

0.7.4 (2006/07/24)

Core

  • Support parsing multiple enclosures in RSS 2.0
  • require URI::Fetch 0.071 which is not broken
  • Aggregator::Simple: More Liberal RSS 2.0 detection code
  • Rule::Deduped: Use entry's datetime as a part of key if it's there
  • Purge cache on the global destruction phase of every run. #306
  • Fix Mac dependencies
  • RSS 2.0 feed will have the 1st enclosure with the URL defined. #325
  • CustomFeed?::Simple now resolves relative link before parsing. #325
  • SmartFeed? now allows setting 'link' (otsune, Dave Cross)
  • Don't override XML::LibXML with Liberal other than feed parsing. #324, #328
  • plugin_path now can be a scalar
  • Use Term::Encoding to detect terminal encoding automatically if available. #329
  • Updated Encode.pm dependency for callbacks.
  • Filter::EntryFullText? now allows to write XPath expression to extract entry body (youpy)
  • Replace 'FOREACH foo IN bar' with 'FOREACH foo = bar' for TT backward compatibility (cmarcelo)

New Plugins

  • CustomFeed?::PerlMonks?: Newest nodes on perlmonks (Jeff Bisbee)
  • Publish::LivedoorClip?: Post entries to Livedoor Clip (Yappo)
  • Notify::Balloon: Notify updates using BalloonNotify? on Win32 (miyagawa)
  • Publish::PowerPoint?: Publish slides off of feeds (charsbar)
  • Publish::SWF: Publish Flash .swf file off of feed entries (akihito)

Plugins Updates

  • Notify::IRC: better document, ick_taken error handling (Thanks to Jeff Bisbee), update template
  • Notify::IRC: refactored internal code and check IKC on init (Jeff Bisbee)
  • Subscription::LivedoorReader?: Better JSON error handling
  • CustomFeed?::Debug: Now being able to set datetime
  • Widget::Delicious: Update the post URI to v4. No username needed anymore.
  • Widget::HatenaBookmarkUsersCount?: Use image based API if XMLRPC is not enabled (default)
  • Publish::Gmail: use permalink rather then entry.link
  • CustomFeed?::AmazonAssociateReportJP: Added ordersReport (otsune)
  • CustomFeed?::YouTube?: update regular expressions (mizzy)
  • Filter::BreakEntriesToFeeds?: Added 'use_entry_title' config

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

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

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

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 as a custom feed (mizzy)
  • SmartFeed?::All: All updates as one feed (miyagawa, cwest)
  • Publish::CSV: publish updates as Comma Separated Value format (naoya)
  • Filter::HatenaFormat?: filter hatena format (naoya)
  • Publish::MT: publish updates using MT XML-RPC API (naoya)
  • Publish::Planet: Planet-Planet clone in Plagger (cwest)
  • Publish::OPML: publish OPML files based on subscription (miyagawa)
  • CustomFeed?::FlickrSearch?: Use Flickr API to create custom feeds (cwest)
  • CustomFeed?::AmazonAssociateReportJP: Fetch Amazon's associate report (naoya)
  • Filter::ImageInfo?: fetch information of $feed->image and $entry->icon (miyagawa)
  • Subscription::HatenaGroup?: fetch Hatena Group blogs as subscription (tokuhirom)
  • Filter::BlogPet?: Strip BlogPet's post (naoya)
  • Filter::SpamAssassin?: Use SpamAssassin? to strip spam posts (charsbar)
  • Filter::RSSLiberalDateTime: parses pubDate sring liberally (miyagawa)

Plugins Updates

  • Aggregator::Xango: Added conditional GET support #93 (Daisuke)
  • CustomFeed?::Mixi: Support links to deleted entry #96 (miyagawa)
  • Aggregator::Simple: Fixed error handling bug when URL is 404 #97 (miyagawa)
  • CustomFeed?::POP3: Create one feed per one mail (tokuhirom)
  • Publish::Gmail: Fixed bad MAIL FROM: when used with Sendmail (Thanks to maru.gs)
  • Subscription::Config: Support array of just URLs (miyagawa)
  • Publish::PSP: template typo fix in permalink (miyagawa)
  • Rule::Fresh: no datetime field means it's fresh (miyagawa)
  • Subscription::Bloglines: Liberal parser support. Fallbacks to loop mode when it still finds error (miyagawa

)

  • Aggregator::Simple: uses XML::RSS::Liberal if it's installed (miyagawa)
  • Publish::Gmail: resizes feed and entry images when it's too big (miyagawa)
  • Filter::StripRssAd?: Support Pheedo ads pattern (miyagawa)
  • Rule::Fresh: Handle empty dates better (cwest)
  • Aggregator::Simple: handle Atom 1.0 date fields (miyagawa, cwest)
  • Widget::HatenaBookmarkUsersCount?: Support '#' in the URL (otsune)
  • CustomFeed?::Frepa: Fixed to support Frepa's new HTML (miyagawa)

0.5.5 (2006/03/03)

Core

  • Added --version and shorter -c & -v to plagger script
  • $entry->body_text now decode HTML entities correctly. #82
  • New Plagger::Cache framework, accessible via $plugin->cache
  • Added cookie_jar method to cache. $plugin->cache->cookie_jar
  • config.yaml is now found using FindBin?, rather than the current directory (Naoya Ito)
  • New AUTHORS: Yoshiki Kurihara, Fumiaki Yoshimatsu, Masafumi Otsune, Takeshi Nagayama and fuba

New Plugins

  • Filter::HatenaDiaryKeywordLink?: Automatically link Hatena Diary Keywords in entry body (tokuhirom)
  • Publish::Feed: Output Atom and RSS feeds using XML::Feed (clouder)
  • Filter::ResolveRelativeLink?: Fix relative links in entry body (miyagawa)
  • CustomFeed?::Yahoo360JP: Login to Yahoo! 360 Japan and fetch blogs and blasts (miyagawa)
  • Filter::BulkfeedsTerms?: Use Bulkfeeds API to fetch specific terms in entry (miyagawa)
  • Filter::2chNewsokuTitle: Add prefix and postfix to entry title ala 2ch.net Newsoku style (miyagawa)
  • Notify::Eject: eject your CD drive to notify feed updates! :-) (Yappo, fumiakiy, otsune)
  • Publish::Pipe: use UNIX pipe to notify the updates to commands (e.g: lpr, /usr/bin/say) (youpy)
  • Notify::Campfire: Notify feed updates to 37 signals' Campfire chat service (nagayama)
  • Filter::Regexp: Update entry body by a regular expression in config (miyagawa)
  • Publish::HatenaBookmark?: post updates to Hatena Bookmark using Atom Protocol (fuba)
  • CustomFeed?::POP3: Fetch email using POP3 protocl and creates feed off of it (tokuhirom)
  • Filter::RSSTimeZoneString: Fix RSS 2.0 bad timezone string in RFC 822 date format (miyagawa)
  • Filter::FloatingDateTime?: Fix floating datetime (dc:date and such) to your local timezone (kazeburo)

Plugins Updates

  • Publish::Delicious: fix UTF-8 escape bug.
  • Subscription::Bloglines: Added 'fetch_meta' option to fetch folder structure and feed URL
  • Subscription::Bloglines: Fix annoying UTF-8 bad sequences by upgrading to WebService?::Bloglines 0.10
  • Filter::TTP: Added 'text_only' option to filter text element only in HTML. #76
  • Fitler::StripRSSAd: Now it works with Bloglines subscription. Added Google AdSense? pattern.
  • Publish::IRC, Publish::MSAgent and Publish::Growl are now renamed to Notify::*
  • Publish::Gmail: fixed typo in "Permalink" footer
  • CustomFeed?::Mixi, CustomFeed?::Frepa now uses Cache framework to store persistent cookies
  • CustomFeed?::Frepa: support PNG buddyicon
  • Publish::Gmail: do POP before SMTP authentication only once per whole publish
  • Subscription::OPML and Aggregator::Simple now use URI::Fetch and Cache framework for conditional GET

0.5.4 (2006/02/27)

Core

  • Makefile.PL has a much better dependencies definition #59 (Thanks to Daisuke Maki)
  • Fixed multiple categories handling bug in Aggregator::Simple (Thanks to koyachi)
  • Added body_text, title_text convinience methods to Feed and Entry
  • Now uses FindBin? module to find templates directory in a better way (youpy)
  • New authors: Daisuke Maki, Tokuhiro Matsuno and Tsutomu Koyachi

New Plugins

  • Aggregator::Xango - POE based high-speed parallel crawling (daisuke)
  • Publish::PDF - Create PDF files based on feeds (miyagawa)
  • Publish::Speech - Make the feeds as an audio using Text-to-Speech (miyagawa)
  • Publish::MSAgent - Let Microsoft Agent speak feeds content (miyagawa)
  • Publish::Growl - Send feed notifications to Mac OSX Growl (kazeburo)
  • Filter::tDiaryComment - strip comments from tDiary RSS (tokuhirom)
  • Filter::TTP - replace ttp: with http: (tokuhirom)
  • Filter::DeliciousFeedTags? - split del.icio.us "foo bar baz" tags into array (miyagawa)
  • Publish::Delicious - post entries to del.icio.us automatically (koyachi)

Plugins Updates

  • Publish::Spotlight: Now it fallbacks to osascript when Mac::Glue is not installed
  • Publish::MTWidget: Added an option to rebuild the blog templates after updating widgets
  • Publish::Gmail: Added an option to support POP3 before SMTP (tokuhirom)

0.5.3 (2006/02/25)

Core

  • Added aggregator.finalize, publish.entry and publish.init hook
  • Added Plagger::Rule::Fresh to match with 'fresh' entries (thanks to youpy)
  • Fixed bug with SmartFeed? creating duplicated entries #61
  • Support log:level global configuration flag to set min loglevel

Plugins

  • Added Publish::Spotlight to create WebBookmark? searchable with Spotlight (youpy)
  • Added Search::Namazu to create HTML files searchable with Namazu (miyagawa)
  • Added Search::Rast to index entries with Rast (Yappo)
  • Added Publish::MTWidget to publish Movable Type Sidebar Manager widget (miyagawa)
  • Added an option 'show_icon: 1', to show users pic in Frepa and Mixi custom feeds
  • Fixed Subscription::Mailman to handle subject prefixes without index
  • Publish::IRC now has 'announce: action' option to use CTCP ACTION rather than NOTICE
  • Filter::StripRSSAd now strips Rakuten Hiroba (plaza.rakuten.co.jp) ad pattern
  • Fixed CustomFeed?::Frepa to complete the trimmed title under fetch_body mode
  • Fixed typo in Subscription::HatenaRSS

0.5.2 (2006/02/22)

  • Added Subscription::HatenaRSS plugin to fetch subscription from Hatena RSS (http://r.hatena.ne.jp/)
  • Added Subscription::Odeo plugin to fetch subscription from Odeo (http://www.odeo.com/): #43
  • Added Publish::IRC plugin to notify updates to IRC channel: #46 (Masayoshi Sekimura)
  • Fixed critical bug that Rule::Expression is broken: #51
  • Fixed Mailman CustomFeed? bug around English localization: #49
  • Added Filter::RSSStripAd plugin to strip ads of Google AdSense? or RssAd?.jp: #33

0.5.1 (2006/02/17)

  • Updated package name from "plagger" to "Plagger"
  • Fixed MANIFEST problem that doesn't contain "config.yaml.sample"

0.5.0 (2006/02/17)

  • First release