Changeset 856
- Timestamp:
- 05/30/06 15:14:41
- Files:
-
- branches/feature-server/plagger (modified) (previous)
- branches/feature-server/plagger/AUTHORS (modified) (1 diff)
- branches/feature-server/plagger/Changes (modified) (1 diff)
- branches/feature-server/plagger/MANIFEST (modified) (18 diffs)
- branches/feature-server/plagger/MANIFEST.SKIP (modified) (1 diff)
- branches/feature-server/plagger/Makefile.PL (modified) (6 diffs)
- branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/impress.yaml (modified) (1 diff)
- branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/itmedia.yaml (modified) (1 diff)
- branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/mycom_journal.yaml (modified) (1 diff)
- branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/nikkansports.yaml (modified) (1 diff)
- branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/slashcode.pl (added)
- branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/youtube.yaml (added)
- branches/feature-server/plagger/assets/plugins/Filter-FindEnclosures (added)
- branches/feature-server/plagger/assets/plugins/Filter-FindEnclosures/youtube.pl (added)
- branches/feature-server/plagger/assets/plugins/Filter-StripRSSAd/pheedo_jp (added)
- branches/feature-server/plagger/assets/plugins/Filter-StripRSSAd/pheedo_jp_ad_entry.yaml (added)
- branches/feature-server/plagger/assets/plugins/Filter-TruePermalink/cnet_podcast.yaml (added)
- branches/feature-server/plagger/assets/plugins/Filter-TruePermalink/imenu.yaml (added)
- branches/feature-server/plagger/assets/plugins/Filter-TruePermalink/msn-mainichi.yaml (added)
- branches/feature-server/plagger/assets/plugins/Filter-TruePermalink/redirectors.yaml (added)
- branches/feature-server/plagger/assets/plugins/Filter-TruePermalink/yahoo_blog_search.yaml (modified) (1 diff)
- branches/feature-server/plagger/assets/plugins/Filter-TruePermalink/youtube.yaml (added)
- branches/feature-server/plagger/assets/plugins/Notify-Tiarra (added)
- branches/feature-server/plagger/assets/plugins/Notify-Tiarra/irc_notify.tt (added)
- branches/feature-server/plagger/assets/plugins/Publish-PalmDoc (added)
- branches/feature-server/plagger/assets/plugins/Publish-PalmDoc/palmdoc.tt (added)
- branches/feature-server/plagger/examples/bloglines2gmail.yaml (modified) (1 diff)
- branches/feature-server/plagger/examples/livedoorreader2gmail.yaml (modified) (1 diff)
- branches/feature-server/plagger/examples/podcast.yaml (added)
- branches/feature-server/plagger/examples/yapcvideo.yaml (added)
- branches/feature-server/plagger/lib/Plagger.pm (modified) (8 diffs)
- branches/feature-server/plagger/lib/Plagger/Cache.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Cookies.pm (added)
- branches/feature-server/plagger/lib/Plagger/Enclosure.pm (added)
- branches/feature-server/plagger/lib/Plagger/Entry.pm (modified) (2 diffs)
- branches/feature-server/plagger/lib/Plagger/Feed.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Mechanize.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin.pm (modified) (2 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Aggregator/Simple.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/CustomFeed/AmazonAssociateReportJP.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/CustomFeed/Frepa.pm (modified) (6 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/CustomFeed/GoogleNews.pm (modified) (2 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/CustomFeed/Mixi.pm (modified) (3 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/CustomFeed/Simple.pm (modified) (2 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/CustomFeed/Yahoo360JP.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/CustomFeed/YouTube.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/2chRSSContent.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/BreakEntriesToFeeds.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/EntryFullText.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/FeedBurnerPermalink.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/FetchEnclosure.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/FindEnclosures.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/HEADEnclosureMetadata.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/HatenaKeywordNewsokuTag.pm (deleted)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/HatenaKeywordTag.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/LivedoorKeywordUnlink.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/Markdown.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/POPFile.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/RSSTimeZoneString.pm (modified) (3 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/Regexp.pm (modified) (2 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/RewriteEnclosureURL.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/SpamAssassin.pm (modified) (5 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/StripRSSAd.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/TagsToTitle.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Filter/TruePermalink.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Notify/Campfire.pm (modified) (3 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Notify/Tiarra.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Notify/UpdatePing.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/2chdat.pm (modified) (3 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/Feed.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/Gmail.pm (modified) (6 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/HatenaBookmark.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/IMAP.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/MT.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/Maildir.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/OutlineText.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Publish/PalmDoc.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm (modified) (4 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Subscription/HatenaRSS.pm (modified) (3 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Subscription/LivedoorReader.pm (modified) (5 diffs)
- branches/feature-server/plagger/lib/Plagger/Plugin/Subscription/Odeo.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Subscription/PlanetINI.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Subscription/XOXO.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/Plugin/Subscription/XPath.pm (added)
- branches/feature-server/plagger/lib/Plagger/Plugin/Widget/Delicious.pm (modified) (2 diffs)
- branches/feature-server/plagger/lib/Plagger/Rule/URLBL.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/TT/Plagger/Util.pm (modified) (1 diff)
- branches/feature-server/plagger/lib/Plagger/UserAgent.pm (modified) (3 diffs)
- branches/feature-server/plagger/lib/Plagger/Util.pm (modified) (4 diffs)
- branches/feature-server/plagger/t/core (added)
- branches/feature-server/plagger/t/core/cookies.t (added)
- branches/feature-server/plagger/t/core/cookies.txt (added)
- branches/feature-server/plagger/t/core/googlevideo.xml (added)
- branches/feature-server/plagger/t/core/monkey.rss (added)
- branches/feature-server/plagger/t/core/mrss.t (added)
- branches/feature-server/plagger/t/plugins (added)
- branches/feature-server/plagger/t/plugins/CustomFeed-GoogleNews (added)
- branches/feature-server/plagger/t/plugins/CustomFeed-GoogleNews/test.t (added)
- branches/feature-server/plagger/t/plugins/Filter-FeedBurnerPermalink (added)
- branches/feature-server/plagger/t/plugins/Filter-FeedBurnerPermalink/feedburner.t (added)
- branches/feature-server/plagger/t/plugins/Filter-FetchEnclosure (added)
- branches/feature-server/plagger/t/plugins/Filter-FetchEnclosure/fetch.t (added)
- branches/feature-server/plagger/t/plugins/Filter-FindEnclosures (added)
- branches/feature-server/plagger/t/plugins/Filter-FindEnclosures/object.t (added)
- branches/feature-server/plagger/t/plugins/Filter-LivedoorKeywordUnlink (added)
- branches/feature-server/plagger/t/plugins/Filter-LivedoorKeywordUnlink/livedoor.t (added)
- branches/feature-server/plagger/t/plugins/Notify-UpdatePing (added)
- branches/feature-server/plagger/t/plugins/Notify-UpdatePing/ping.t (added)
- branches/feature-server/plagger/t/plugins/Subscription-ConfigINI (added)
- branches/feature-server/plagger/t/plugins/Subscription-ConfigINI/config.ini (added)
- branches/feature-server/plagger/t/plugins/Subscription-ConfigINI/subscription.t (added)
- branches/feature-server/plagger/t/regression (added)
- branches/feature-server/plagger/t/regression/mime-lite-chop.t (added)
- branches/feature-server/plagger/t/regression/mime-type-dup.t (added)
- branches/feature-server/plagger/tools (added)
- branches/feature-server/plagger/tools/release.pl (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/feature-server/plagger/AUTHORS
r599 r856 24 24 Daisuke Murase (typester) 25 25 Manabu Ishii 26 woremacx 27 Tatsuya Noda 28 Motokazu Sekine (cheebow) branches/feature-server/plagger/Changes
r655 r856 1 1 The latest, HTML version of this document is always available at http://plagger.org/trac.cgi/wiki/PlaggerChangeLog 2 3 == 0.7.1 (2006/05/24) == 4 5 === Core === 6 7 * Added woremacx, topia and cheebow as AUTHORS 8 * Plagger::Cookies and Plagger::Mechanize allows Plagger to share cookies with your browser like Firefox, IE or Safari. 9 10 === New Plugins === 11 12 * Notify::UpdatePing: notify updates via XMLRPC pings (miyagawa) 13 * Publish::PalmDoc: publish updates to PalmDoc (cheebow) 14 * Publish::OutlineText: publish updates as outline text (cheebow) 15 16 === Plugins Updates === 17 18 * Filter::Regexp: now you can use utf-8 regular expressions (woremacx) 19 * Widget::Delicious: Support one_click_post to automatically post by clicking (s_nobu) 20 * Filter::FetchEnclosures: Now it's extensible using meta-plugins. Added youtube.pl as an example. Thanks to mizzy 21 * CustomFeed::Simple: deduplicate links by URLs. Don't add links associated with images without alt (miyagawa) 22 * Filter::TruePermalink: Added YouTube, MSN Mainichi 23 * Publish::MT: Fixed blog_id config bug. #252 24 * Subscription::LivedoorReader: Adds ApiKey as a sticky query to their API (suggested by mala) 25 * Publish::Gmail: Don't trim lines over 1000 by using quoted-printable. 26 * CustomFeed::GoogleNews: now accepts keyword search result page as well 27 * Filter::HatenaRSS: Update OPML URL. Uses Cookie sharing framework. 28 * CustomFeed::Frepa: Uses Cookie sharing. 29 * CustomFeed::Mixi: Uses Cookie sharing. 30 * CustomFeed::Yahoo360JP: Uses Cookie sharing. 31 * Subscription::LivedoorReader: Uses Cookie sharing. 32 * Notify::Campfire: Uses Cookie sharing. 33 34 == 0.7.0 (2006/05/17) == 35 36 === Core === 37 38 * Shiny new Enclosure support! 39 * Dependency for MIME::Types 40 * Fix $cache->path_to auto creation bug 41 * Allow plugins/Foo/Bar.pm directory strcuture to be backward compatible 42 * Added regression and plugins tests suite for the first time 43 44 45 === New Plugins === 46 47 * Filter::FetchEnclosure: Download enclosures automatically to local 48 * CustomFeed::YouTube: Search YouTube and find enclosures (mizzy) 49 * Filter::RewriteEnclosureURL: Rewrite enclosure's URL when you republish downloaded enclosures 50 * Filter::POPFile: Use POPFile XMLRPC API to classify feeds (charsbar) 51 * Filter::TagsToTitle: Add tags to title as prefixes (charsbar) 52 * Filter::FindEnclosures: Automatically discover enclosures in entry content 53 * Filter::HEADEnclosureMetadata: Send HEAD requests to enclosures to get Length and correct filename 54 * Subscription::XPath: extract subscriptions from XHTML using XPath (youpy) 55 * Subscription::PlanetINI: extract subscriptions from Planet's config.ini file 56 57 === Plugins Updates === 58 59 * Publish::2chdat: Internal fix to use id_safe method 60 * Subscription::Bloglines: support enclosures taken from sync API 61 * Publish::Gmail: Attach enclosures if they're downloaded locally with FetchEnclosure 62 * Filter::TruePermalink: Now supports rewriting enclosure URL as well. 63 * Filter::TruePermalink: Support recursive mode and redirector resolution 64 * Publish::Feed: Support enclosure creation in RSS 2.0 and Atom feeds 65 * Filter::SpamAssassin: Nuked some options (charsbar) 66 * Filter::HatenaKeyword: Use title to extract keywords as well 67 * Filter::StripRSSAd: Added pheedo.jp pattern. Now can strip entry if it contains certain pattern. 68 * 69 == 0.6.6 (2006/05/12) == 70 71 === Core === 72 73 * Added sites upgrade files (woremacx) 74 * Don't truncate newline after password rewrite #200 75 * Share $feed object between subscription and update 76 * encode detection now uses XML encoding declaration first 77 * Unhandled feed is removed from $context->subscription 78 * Plagger::Date->parse doesn't force preference timezone if parsed datetime is floating 79 * Load plugins from plugins/*/lib #212 80 81 === New Plugins === 82 83 * Filter::HatenaKeywordTag: Use Hatena Keyword API to auto-tag (secondlife) 84 * Search::Estraier: Search plugin to use Hyper Estraier Node API (miyagawa) 85 * Subscription::XOXO: load subscription from XOXO microformats (miyagawa) 86 * Publish::2chdat: Create 2ch subject.txt and *.dat files (miyagawa) 87 * Filter::2chRSSContent: Fix rss.s2ch.net feed content (miyagawa) 88 * Filter::Markdown: Filter entry body using Markdown syntax (s_nobu) 89 90 === Plugins Updates === 91 92 * Notify::IRC: added password config to plagger-ircbot #197 93 * Filter::TruePermalink: Updated Y! Blogsearch pattern. Added reedit.com 94 * rename Publish::Spotlight to Search::Spotlight #207 95 * CustomFeed::Mixi: support "ashiato". Update WWW::Mixi deps 96 * Rule::URLBL: now works with $args->{entry} to be used with Filter::Rule 97 * Publish::Planet: get members from subscription rather than update #198 98 * CustomFeed::BloglinesCitation: Handle local datetime PST #187 99 * Filter::EntryFullText: now work with rule 2 100 3 101 == 0.6.5 (2006/04/28) == branches/feature-server/plagger/MANIFEST
r669 r856 11 11 assets/plugins/Filter-EntryFullText/blog_goo_ne_jp.yaml 12 12 assets/plugins/Filter-EntryFullText/blog_tech.rikunabi_next.yaml 13 assets/plugins/Filter-EntryFullText/business-i.yaml 13 14 assets/plugins/Filter-EntryFullText/chugoku-np.yaml 14 15 assets/plugins/Filter-EntryFullText/chuspo_dragons.yaml … … 31 32 assets/plugins/Filter-EntryFullText/japan_linux_com.yaml 32 33 assets/plugins/Filter-EntryFullText/japan_zdnet_com.yaml 34 assets/plugins/Filter-EntryFullText/kyodo.yaml 33 35 assets/plugins/Filter-EntryFullText/kyoko_shimbun_news.yaml 36 assets/plugins/Filter-EntryFullText/kyoto-np.yaml 34 37 assets/plugins/Filter-EntryFullText/linuxjournal.yaml 35 38 assets/plugins/Filter-EntryFullText/livedoorblog.pl 39 assets/plugins/Filter-EntryFullText/mainichi-msn.yaml 40 assets/plugins/Filter-EntryFullText/mycom_journal.yaml 36 41 assets/plugins/Filter-EntryFullText/netkeiba.yaml 37 42 assets/plugins/Filter-EntryFullText/news_com.yaml 38 43 assets/plugins/Filter-EntryFullText/newsforge.yaml 39 44 assets/plugins/Filter-EntryFullText/nikkansports.yaml 45 assets/plugins/Filter-EntryFullText/nikkei.yaml 40 46 assets/plugins/Filter-EntryFullText/nytimes.yaml 47 assets/plugins/Filter-EntryFullText/okinawatimes_day.yaml 41 48 assets/plugins/Filter-EntryFullText/osaka_nikkansports.yaml 42 assets/plugins/Filter-EntryFullText/pcweb_mycom.yaml43 49 assets/plugins/Filter-EntryFullText/physorg.yaml 44 50 assets/plugins/Filter-EntryFullText/plaza_rakuten.yaml … … 46 52 assets/plugins/Filter-EntryFullText/rbbtoday_com.yaml 47 53 assets/plugins/Filter-EntryFullText/reuters.yaml 54 assets/plugins/Filter-EntryFullText/ryukyushimpo.yaml 48 55 assets/plugins/Filter-EntryFullText/sanspo.yaml 49 56 assets/plugins/Filter-EntryFullText/sciam.yaml 50 57 assets/plugins/Filter-EntryFullText/searchenginejournal.yaml 51 58 assets/plugins/Filter-EntryFullText/sixapart.pl 59 assets/plugins/Filter-EntryFullText/slashcode.pl 52 60 assets/plugins/Filter-EntryFullText/slashdot_jp.yaml 53 61 assets/plugins/Filter-EntryFullText/sponichi.yaml … … 56 64 assets/plugins/Filter-EntryFullText/theinquirer.yaml 57 65 assets/plugins/Filter-EntryFullText/theregister.yaml 66 assets/plugins/Filter-EntryFullText/ti-da_net.yaml 58 67 assets/plugins/Filter-EntryFullText/usatoday.yaml 59 68 assets/plugins/Filter-EntryFullText/wired_com.yaml 69 assets/plugins/Filter-EntryFullText/worldtimes.yaml 60 70 assets/plugins/Filter-EntryFullText/www_nikkeibp.yaml 61 71 assets/plugins/Filter-EntryFullText/yakult.yaml 62 72 assets/plugins/Filter-EntryFullText/yomiuri.yaml 73 assets/plugins/Filter-EntryFullText/youtube.yaml 63 74 assets/plugins/Filter-EntryFullText/zakzak.yaml 64 75 assets/plugins/Filter-EntryFullText/zzz_google_adsense.pl 76 assets/plugins/Filter-FindEnclosures/youtube.pl 65 77 assets/plugins/Filter-StripRSSAd/feedburner 66 78 assets/plugins/Filter-StripRSSAd/google_adsense 67 79 assets/plugins/Filter-StripRSSAd/google_adsense2 68 80 assets/plugins/Filter-StripRSSAd/pheedo 81 assets/plugins/Filter-StripRSSAd/pheedo_jp 82 assets/plugins/Filter-StripRSSAd/pheedo_jp_ad_entry.yaml 69 83 assets/plugins/Filter-StripRSSAd/plaza_rakuten 70 84 assets/plugins/Filter-StripRSSAd/rssad_jp … … 72 86 assets/plugins/Filter-StripRSSAd/valueclick 73 87 assets/plugins/Filter-TruePermalink/2chrss.yaml 88 assets/plugins/Filter-TruePermalink/cnet_podcast.yaml 89 assets/plugins/Filter-TruePermalink/imenu.yaml 90 assets/plugins/Filter-TruePermalink/msn-mainichi.yaml 74 91 assets/plugins/Filter-TruePermalink/namaan.yaml 75 92 assets/plugins/Filter-TruePermalink/rd_yahoo.yaml 76 93 assets/plugins/Filter-TruePermalink/reddit.yaml 94 assets/plugins/Filter-TruePermalink/redirectors.yaml 77 95 assets/plugins/Filter-TruePermalink/refrss.yaml 78 96 assets/plugins/Filter-TruePermalink/tech_souken.yaml … … 80 98 assets/plugins/Filter-TruePermalink/yahoo_blog_search2.yaml 81 99 assets/plugins/Filter-TruePermalink/yahoo_us_rd.yaml 100 assets/plugins/Filter-TruePermalink/youtube.yaml 82 101 assets/plugins/Notify-IRC/irc_notify.tt 102 assets/plugins/Notify-Tiarra/irc_notify.tt 83 103 assets/plugins/Publish-CHTML/chtml_entry.tt 84 104 assets/plugins/Publish-CHTML/chtml_feed.tt … … 89 109 assets/plugins/Publish-MTWidget/mt_widget.tt 90 110 assets/plugins/Publish-OPML/opml.tt 111 assets/plugins/Publish-PalmDoc/palmdoc.tt 91 112 assets/plugins/Publish-Planet/default/static/css/handheld.css 92 113 assets/plugins/Publish-Planet/default/static/css/print.css … … 104 125 bin/spotlight_comment.scpt 105 126 Changes 106 examples/aggregator.yaml107 127 examples/atode.yaml 108 128 examples/bloglines2gmail.yaml … … 110 130 examples/livedoorreader2gmail.yaml 111 131 examples/planet.yaml 132 examples/podcast.yaml 133 examples/search.yaml 134 examples/xoxo-planet.yaml 135 examples/xoxo2opml.yaml 136 examples/yapcvideo.yaml 112 137 inc/Module/AutoInstall.pm 113 138 inc/Module/Install.pm … … 127 152 lib/Plagger/Cache/Null.pm 128 153 lib/Plagger/CacheProxy.pm 154 lib/Plagger/Cookies.pm 129 155 lib/Plagger/Crypt.pm 130 156 lib/Plagger/Crypt/Base64.pm 131 157 lib/Plagger/Date.pm 158 lib/Plagger/Enclosure.pm 132 159 lib/Plagger/Entry.pm 133 160 lib/Plagger/Feed.pm 161 lib/Plagger/Mechanize.pm 134 162 lib/Plagger/Operator.pm 135 163 lib/Plagger/Plugin.pm … … 152 180 lib/Plagger/Plugin/CustomFeed/SVNLog.pm 153 181 lib/Plagger/Plugin/CustomFeed/Yahoo360JP.pm 182 lib/Plagger/Plugin/CustomFeed/YouTube.pm 154 183 lib/Plagger/Plugin/Filter/2chNewsokuTitle.pm 184 lib/Plagger/Plugin/Filter/2chRSSContent.pm 155 185 lib/Plagger/Plugin/Filter/2chRSSPermalink.pm 156 186 lib/Plagger/Plugin/Filter/AtomLinkRelated.pm … … 167 197 lib/Plagger/Plugin/Filter/FeedBurnerPermalink.pm 168 198 lib/Plagger/Plugin/Filter/FeedFlareStripper.pm 199 lib/Plagger/Plugin/Filter/FetchEnclosure.pm 200 lib/Plagger/Plugin/Filter/FindEnclosures.pm 169 201 lib/Plagger/Plugin/Filter/FloatingDateTime.pm 170 202 lib/Plagger/Plugin/Filter/HatenaBookmarkTag.pm … … 173 205 lib/Plagger/Plugin/Filter/HatenaDiaryKeywordUnlink.pm 174 206 lib/Plagger/Plugin/Filter/HatenaFormat.pm 207 lib/Plagger/Plugin/Filter/HatenaKeywordTag.pm 208 lib/Plagger/Plugin/Filter/HEADEnclosureMetadata.pm 175 209 lib/Plagger/Plugin/Filter/ImageInfo.pm 210 lib/Plagger/Plugin/Filter/Markdown.pm 176 211 lib/Plagger/Plugin/Filter/NamaanPermalink.pm 177 212 lib/Plagger/Plugin/Filter/Pipe.pm 213 lib/Plagger/Plugin/Filter/POPFile.pm 178 214 lib/Plagger/Plugin/Filter/Profanity.pm 179 215 lib/Plagger/Plugin/Filter/Regexp.pm 180 216 lib/Plagger/Plugin/Filter/ResolveRelativeLink.pm 217 lib/Plagger/Plugin/Filter/RewriteEnclosureURL.pm 181 218 lib/Plagger/Plugin/Filter/Romanize.pm 182 219 lib/Plagger/Plugin/Filter/Romanize/Japanese.pm … … 186 223 lib/Plagger/Plugin/Filter/SpamAssassin.pm 187 224 lib/Plagger/Plugin/Filter/StripRSSAd.pm 225 lib/Plagger/Plugin/Filter/TagsToTitle.pm 188 226 lib/Plagger/Plugin/Filter/tDiaryComment.pm 189 227 lib/Plagger/Plugin/Filter/Thumbnail.pm … … 202 240 lib/Plagger/Plugin/Notify/MSAgent.pm 203 241 lib/Plagger/Plugin/Notify/SSTP.pm 242 lib/Plagger/Plugin/Notify/Tiarra.pm 243 lib/Plagger/Plugin/Notify/UpdatePing.pm 244 lib/Plagger/Plugin/Publish/2chdat.pm 204 245 lib/Plagger/Plugin/Publish/CHTML.pm 205 246 lib/Plagger/Plugin/Publish/CSV.pm … … 215 256 lib/Plagger/Plugin/Publish/MTWidget.pm 216 257 lib/Plagger/Plugin/Publish/OPML.pm 258 lib/Plagger/Plugin/Publish/OutlineText.pm 259 lib/Plagger/Plugin/Publish/PalmDoc.pm 217 260 lib/Plagger/Plugin/Publish/PDF.pm 218 261 lib/Plagger/Plugin/Publish/Pipe.pm … … 224 267 lib/Plagger/Plugin/Publish/Speech/Win32.pm 225 268 lib/Plagger/Plugin/Publish/Takahashi.pm 269 lib/Plagger/Plugin/Search/Estraier.pm 226 270 lib/Plagger/Plugin/Search/Namazu.pm 227 271 lib/Plagger/Plugin/Search/Rast.pm … … 240 284 lib/Plagger/Plugin/Subscription/PingServer.pm 241 285 lib/Plagger/Plugin/Subscription/Planet.pm 286 lib/Plagger/Plugin/Subscription/PlanetINI.pm 287 lib/Plagger/Plugin/Subscription/XOXO.pm 288 lib/Plagger/Plugin/Subscription/XPath.pm 242 289 lib/Plagger/Plugin/Widget/BloglinesSubscription.pm 243 290 lib/Plagger/Plugin/Widget/BulkfeedsSpamReport.pm branches/feature-server/plagger/MANIFEST.SKIP
r669 r856 16 16 \.bak$ 17 17 \.orig$ 18 plugins/.*\.pm$ 19 tools/release\.pl 20 t/plugins 21 t/regression 22 ^# branches/feature-server/plagger/Makefile.PL
r692 r856 23 23 requires('HTML::ResolveLink'); 24 24 requires('Date::Parse'); 25 requires('MIME::Types', 1.16); 25 26 26 27 build_requires(Test::More => 0.42); … … 36 37 recommends('Test::Pod::Coverage'), 37 38 ], 39 'Cookie sharing with Firefox' => [ 40 -default => 0, 41 recommends('HTTP::Cookies::Mozilla'), 42 ], 43 ); 44 45 features( 38 46 'Subscription::Bloglines' => [ 39 47 -default => 1, 40 48 recommends('WebService::Bloglines', 0.11), 41 recommends('XML::Liberal', 0.0 6),49 recommends('XML::Liberal', 0.09), 42 50 ], 43 51 'Subscription::OPML' => [ … … 49 57 recommends('XML::Feed', 0.08), 50 58 recommends('XML::Atom'), 51 recommends('XML::RSS::LibXML', 0. 19),59 recommends('XML::RSS::LibXML', 0.20), 52 60 recommends('XML::RSS::Liberal'), 53 61 ], … … 214 222 recommends('DateTime::Locale'), 215 223 ], 224 'Subscription::PlanetINI' => [ 225 -default => 0, 226 recommends('Config::INI::Simple'), 227 ], 228 'Notify::UpdatePing' => [ 229 -default => 0, 230 recommends('XMLRPC::Lite'), 231 ], 232 'Publish::PalmDoc' => [ 233 -default => 0, 234 recommends('Palm::PalmDoc'), 235 ], 216 236 ); 217 237 218 238 if ($^O eq 'darwin') { 219 239 features( 240 'Cookie sharing with Safari' => [ 241 -default => 0, 242 recommends('HTTP::Cookies::Safari'), 243 ], 220 244 'Search::Spotlight' => [ 221 245 -default => 1, 222 246 recommends('Mac::Glue'), 223 247 ], 224 );225 features(226 248 'Publish::Speech' => [ 227 249 -default => 0, … … 234 256 } elsif ($^O eq 'MSWin32') { 235 257 features( 258 'Cookie sharing with MSIE' => [ 259 -default => 0, 260 recommends('HTTP::Cookies::Microsoft'), 261 ], 236 262 'Publish::Speech' => [ 237 263 -default => 0, … … 247 273 ); 248 274 } 275 276 tests 't/*.t t/*/*.t t/*/*/*.t'; 249 277 250 278 auto_include; branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/impress.yaml
r651 r856 1 1 author: kazeburo 2 handle: http:// \w+\.watch\.impress\.co\.jp/2 handle: http://(\w+\.watch|k-tai)\.impress\.co\.jp/ 3 3 extract: <!--\s?本文開始\s?-->(.*)<!--\s?本文終了\s?--> 4 4 extract_capture: body branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/itmedia.yaml
r586 r856 1 1 author: manabou 2 handle: http://www\.itmedia\.co\.jp/news/articles 3 extract: <div class="newart">.*?<h1>(.*?)</h1>.*?<!--BODY-->(.*?)<!--BODYEND--> 4 extract_capture: title body 2 handle: http://(\w+)\.itmedia\.co\.jp/(\w+)/articles 3 extract: <div class="newart">.*?(?:<div id="update">(\d{4}年\d\d月\d\d日 \d\d時\d\d分) 更新</div>)?.*?<h1>(.*?)</h1>\s*<h5>(.*?)</h5>\s*(?:<div id="update">(\d{4}年\d\d月\d\d日 \d\d時\d\d分) 更新</div>)?.*?<!--BODY-->(.*?)<!--BODYEND--> 4 extract_capture: date1 title summary date2 body 5 extract_after_hook: $data->{date} = $data->{date1} || $data->{date2} 6 extract_date_format: %Y年%m月%d日 %H時%M分 branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/mycom_journal.yaml
r694 r856 1 # upgrade http:// pcweb.mycom.co.jp/haishin/rss/index.rdf1 # upgrade http://journal.mycom.co.jp/haishin/rss/index.rdf 2 2 author: Nobuhito Sato 3 3 handle: http://journal\.mycom\.co\.jp/ branches/feature-server/plagger/assets/plugins/Filter-EntryFullText/nikkansports.yaml
r559 r856 9 9 - %Y年%m月%d日%H時%M分 10 10 - %Y/%m/%d %H:%M 11 11 extract_date_timezone: Asia/Tokyo branches/feature-server/plagger/assets/plugins/Filter-TruePermalink/yahoo_blog_search.yaml
r612 r856 1 1 author: Tatsuhiko Miyagawa 2 2 match: http://rd\.yahoo\.co\.jp/rss/l/blogsearch 3 rewrite: s!^http://rd\.yahoo\.co\.jp/rss/l/blogsearch/search/ \*!!3 rewrite: s!^http://rd\.yahoo\.co\.jp/rss/l/blogsearch/search/.*?\*\-http%3A!http:! 4 4 branches/feature-server/plagger/examples/bloglines2gmail.yaml
r402 r856 2 2 plugin_path: 3 3 - /home/miyagawa/plagger/plugins 4 #template_path: /home/miyagawa/plagger/templates4 assets_path: /home/miyagawa/plagger/assets 5 5 timezone: Asia/Tokyo 6 6 log: branches/feature-server/plagger/examples/livedoorreader2gmail.yaml
r626 r856 2 2 plugin_path: 3 3 - /home/miyagawa/plagger/plugins 4 #assets_path: /home/miyagawa/plagger/assets4 assets_path: /home/miyagawa/plagger/assets 5 5 timezone: Asia/Tokyo 6 6 log: branches/feature-server/plagger/lib/Plagger.pm
r693 r856 1 1 package Plagger; 2 2 use strict; 3 our $VERSION = '0. 6.5';3 our $VERSION = '0.7.1'; 4 4 5 5 use 5.8.1; … … 41 41 if (-e $opt{config} && -r _) { 42 42 $config = YAML::LoadFile($opt{config}); 43 $self->load_include($config);44 $self->{conf} = $config->{global};45 $self->{conf}->{log} ||= { level => 'debug' };46 43 $self->{config_path} = $opt{config}; 44 } elsif (ref($opt{config}) && ref($opt{config}) eq 'SCALAR') { 45 $config = YAML::Load(${$opt{config}}); 46 } elsif (ref($opt{config}) && ref($opt{config}) eq 'HASH') { 47 $config = $opt{config}; 47 48 } else { 48 49 croak "Plagger->bootstrap: $opt{config}: $!"; 49 50 } 50 51 52 $self->load_include($config); 53 $self->{conf} = $config->{global}; 54 $self->{conf}->{log} ||= { level => 'debug' }; 55 56 no warnings 'redefine'; 51 57 local *Plagger::context = sub { $self }; 52 58 … … 65 71 sub rewrite_config { 66 72 my $self = shift; 73 74 unless ($self->{config_path}) { 75 $self->log(warn => "config is not loaded from file. Ignoring rewrite tasks."); 76 return; 77 } 67 78 68 79 open my $fh, $self->{config_path} or $self->error("$self->{config_path}: $!"); … … 136 147 137 148 # use config filename as a base directory for cache 138 my $base = ( basename($config) =~ /^(.*?)\.yaml$/ )[0] ;149 my $base = ( basename($config) =~ /^(.*?)\.yaml$/ )[0] || 'config'; 139 150 my $dir = $base eq 'config' ? ".plagger" : ".plagger-$base"; 140 151 … … 159 170 $ent = File::Spec->catfile($path, $ent); 160 171 if (-f $ent && $ent =~ /\.pm$/) { 161 my $pkg = $self->extract_package($ent) 162 or die "Can't find package from $ent"; 163 (my $base = $ent) =~ s!^$path/!!; 164 $self->plugins_path->{$pkg} = $ent; 172 $self->add_plugin_path($ent); 165 173 } elsif (-d $ent) { 166 174 my $lib = File::Spec->catfile($ent, "lib"); … … 168 176 $self->log(debug => "Add $lib to INC path"); 169 177 unshift @INC, $lib; 178 } else { 179 my $rule = File::Find::Rule->new; 180 $rule->file; 181 $rule->name('*.pm'); 182 my @modules = $rule->in($ent); 183 for my $module (@modules) { 184 $self->add_plugin_path($module); 185 } 170 186 } 171 187 } … … 177 193 $self->load_plugin($plugin) unless $plugin->{disable}; 178 194 } 195 } 196 197 sub add_plugin_path { 198 my($self, $file) = @_; 199 200 my $pkg = $self->extract_package($file) 201 or die "Can't find package from $file"; 202 $self->plugins_path->{$pkg} = $file; 203 $self->log(debug => "$file is added as a path to plugin $pkg"); 179 204 } 180 205 … … 220 245 $module = "Plagger::Plugin::$module"; 221 246 222 if (my $path = $self->plugins_path->{$module}) { 247 if ($module->isa('Plagger::Plugin')) { 248 $self->log(debug => "$module is loaded elsewhere ... maybe .t script?"); 249 } elsif (my $path = $self->plugins_path->{$module}) { 223 250 eval { require $path } or die $@; 224 251 } else { branches/feature-server/plagger/lib/Plagger/Cache.pm
r590 r856 36 36 if (@path > 1) { 37 37 my @chunk = @path[0..$#path-1]; 38 mkpath(File::Spec->catfile( @chunk), 0, 0700);38 mkpath(File::Spec->catfile($self->{base}, @chunk), 0, 0700); 39 39 } 40 40 File::Spec->catfile($self->{base}, @path); branches/feature-server/plagger/lib/Plagger/Entry.pm
r384 r856 17 17 tags => [], 18 18 meta => {}, 19 enclosures => [], 19 20 }, $class; 20 21 } … … 69 70 } 70 71 72 sub add_enclosure { 73 my($self, $enclosure) = @_; 74 75 # don't add enclosure with the same URL again and again 76 unless ($enclosure->url && grep { $_->url && $_->url eq $enclosure->url } $self->enclosures) { 77 push @{ $self->{enclosures} }, $enclosure; 78 } 79 } 80 81 sub enclosure { 82 my $self = shift; 83 wantarray ? @{$self->{enclosures}} : $self->{enclosures}->[0]; 84 } 85 86 sub enclosures { 87 my $self = shift; 88 wantarray ? @{$self->{enclosures}} : $self->{enclosures}; 89 } 90 91 sub has_enclosure { 92 my $self = shift; 93 scalar @{$self->{enclosures}} > 0; 94 } 95 71 96 1; 72 97 branches/feature-server/plagger/lib/Plagger/Feed.pm
r455 r856 55 55 } 56 56 57 sub id_safe { 58 my $self = shift; 59 my $id = $self->id; 60 $id =~ s![^\w\s]+!_!g; 61 $id =~ s!\s+!_!g; 62 $id; 63 } 64 57 65 sub title_text { 58 66 my $self = shift; branches/feature-server/plagger/lib/Plagger/Plugin.pm
r593 r856 5 5 __PACKAGE__->mk_accessors( qw(conf rule rule_hook cache) ); 6 6 7 use Plagger::Cookies; 7 8 use Plagger::Crypt; 8 9 use Plagger::Rule; … … 114 115 } 115 116 117 sub cookie_jar { 118 my $self = shift; 119 120 my $agent_conf = Plagger->context->conf->{user_agent} || {}; 121 if ($agent_conf->{cookies}) { 122 return Plagger::Cookies->create($agent_conf->{cookies}); 123 } 124 125 return $self->cache->cookie_jar; 126 } 127 116 128 1; branches/feature-server/plagger/lib/Plagger/Plugin/Aggregator/Simple.pm
r680 r856 4 4 5 5 use Feed::Find; 6 use Plagger::Enclosure; 6 7 use Plagger::UserAgent; 7 8 use List::Util qw(first); … … 12 13 13 14 $XML::Feed::RSS::PREFERRED_PARSER = first { $_->require } qw( XML::RSS::Liberal XML::RSS::LibXML XML::RSS ); 15 16 eval { require XML::Liberal }; 17 if (!$@ && XML::Liberal->can('globally_override')) { 18 XML::Liberal->globally_override('LibXML'); 19 } 14 20 15 21 sub register { … … 87 93 unless ($remote) { 88 94 $context->log(error => "Parsing $url failed. " . ($@ || XML::Feed->errstr)); 89 next;95 return; 90 96 } 91 97 … … 137 143 $entry-
