tdiary-contrib 3.2.2.20130518
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +7 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +35 -0
- data/README.en.md +12 -0
- data/README.md +13 -0
- data/Rakefile +41 -0
- data/doc/en/filter/spambayes.txt +3 -0
- data/doc/en/plugin.txt +1 -0
- data/doc/en/style/hatena.txt +10 -0
- data/doc/en/style/markdown.txt +16 -0
- data/doc/en/util.txt +1 -0
- data/doc/ja/filter/antirefspam.history.txt +59 -0
- data/doc/ja/filter/antirefspam.txt +86 -0
- data/doc/ja/filter/comment_key.ja.html +182 -0
- data/doc/ja/filter/spambayes.txt +3 -0
- data/doc/ja/plugin/add_bookmark.txt +50 -0
- data/doc/ja/plugin/category_to_tag.txt +21 -0
- data/doc/ja/plugin/cocoment.txt +31 -0
- data/doc/ja/plugin/google_adsense.txt +25 -0
- data/doc/ja/plugin/google_analytics.txt +7 -0
- data/doc/ja/plugin/image_detail.txt +69 -0
- data/doc/ja/plugin/image_gps.txt +36 -0
- data/doc/ja/plugin/image_gps2.txt +41 -0
- data/doc/ja/plugin/livedoor_weather.txt +105 -0
- data/doc/ja/plugin/opensearch_ad.txt +16 -0
- data/doc/ja/plugin/section_footer.txt +84 -0
- data/doc/ja/plugin/select_theme.txt +1 -0
- data/doc/ja/plugin.txt +13 -0
- data/doc/ja/style/hatena.txt +10 -0
- data/doc/ja/style/markdown.txt +13 -0
- data/doc/ja/util.txt +12 -0
- data/filter/antirefspam.rb +263 -0
- data/filter/commentkey.rb +29 -0
- data/filter/commentsize.rb +18 -0
- data/filter/hidecomment.rb +13 -0
- data/filter/iplookup.rb +55 -0
- data/filter/plugin/antirefspam.rb +59 -0
- data/filter/plugin/commentkey.rb +58 -0
- data/filter/plugin/commentsize.rb +12 -0
- data/filter/plugin/en/iplookup.rb +9 -0
- data/filter/plugin/en/spambayes.rb +123 -0
- data/filter/plugin/iplookup.rb +39 -0
- data/filter/plugin/ja/antirefspam.rb +91 -0
- data/filter/plugin/ja/commentkey.rb +17 -0
- data/filter/plugin/ja/commentsize.rb +6 -0
- data/filter/plugin/ja/iplookup.rb +9 -0
- data/filter/plugin/ja/spambayes.rb +124 -0
- data/filter/plugin/spambayes.rb +501 -0
- data/filter/plugin/zh/iplookup.rb +9 -0
- data/filter/rblcheck.rb +36 -0
- data/filter/spambayes.rb +535 -0
- data/filter/spamlookup.rb +37 -0
- data/io/dbi_io/ChangeLog +19 -0
- data/io/dbi_io/README.ja +39 -0
- data/io/dbi_io/dbi_io.rb +181 -0
- data/io/dbi_io/plugin/refererDbiIO.rb +76 -0
- data/io/dbi_io/tdiary_table.sql +42 -0
- data/js/appstore.js +109 -0
- data/js/datepicker.js +69 -0
- data/js/editor.js +82 -0
- data/js/flickr.js +157 -0
- data/js/image_ex.js +79 -0
- data/js/jquery.socialbutton.js +842 -0
- data/js/nicovideo.js +17 -0
- data/js/picasa.js +322 -0
- data/js/plugin_checker.js +71 -0
- data/js/prettify/lang-apollo.js +2 -0
- data/js/prettify/lang-clj.js +18 -0
- data/js/prettify/lang-css.js +2 -0
- data/js/prettify/lang-go.js +1 -0
- data/js/prettify/lang-hs.js +2 -0
- data/js/prettify/lang-lisp.js +3 -0
- data/js/prettify/lang-lua.js +2 -0
- data/js/prettify/lang-ml.js +2 -0
- data/js/prettify/lang-n.js +4 -0
- data/js/prettify/lang-proto.js +1 -0
- data/js/prettify/lang-scala.js +2 -0
- data/js/prettify/lang-sql.js +2 -0
- data/js/prettify/lang-tex.js +1 -0
- data/js/prettify/lang-vb.js +2 -0
- data/js/prettify/lang-vhdl.js +3 -0
- data/js/prettify/lang-wiki.js +2 -0
- data/js/prettify/lang-xq.js +3 -0
- data/js/prettify/lang-yaml.js +2 -0
- data/js/prettify/prettify.css +1 -0
- data/js/prettify/prettify.js +28 -0
- data/js/referer.js +17 -0
- data/js/show_and_hide.js +39 -0
- data/js/socialbutton.js +126 -0
- data/js/twitter_anywhere.js +28 -0
- data/js/yahoo_kousei.js +21 -0
- data/lib/bayes/convert.rb +34 -0
- data/lib/bayes.rb +232 -0
- data/lib/exifparser/BUGS +1 -0
- data/lib/exifparser/ChangeLog +169 -0
- data/lib/exifparser/README +15 -0
- data/lib/exifparser/install.rb +1015 -0
- data/lib/exifparser/lib/exifparser/makernote/canon.rb +502 -0
- data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +415 -0
- data/lib/exifparser/lib/exifparser/makernote/minolta.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +39 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon.rb +267 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +581 -0
- data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +438 -0
- data/lib/exifparser/lib/exifparser/makernote/olympus.rb +225 -0
- data/lib/exifparser/lib/exifparser/makernote/prove.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/sigma.rb +237 -0
- data/lib/exifparser/lib/exifparser/pre-setup.rb +1 -0
- data/lib/exifparser/lib/exifparser/scan.rb +278 -0
- data/lib/exifparser/lib/exifparser/tag.rb +2298 -0
- data/lib/exifparser/lib/exifparser/thumbnail.rb +76 -0
- data/lib/exifparser/lib/exifparser/utils.rb +88 -0
- data/lib/exifparser/lib/exifparser.rb +265 -0
- data/lib/exifparser/sample/exifview.rb +279 -0
- data/lib/tdiary-contrib.rb +19 -0
- data/lib/wgs2tky.rb +93 -0
- data/misc/section_footer2/buzzurl.yaml +6 -0
- data/misc/section_footer2/fc2.yaml +6 -0
- data/misc/section_footer2/ldc.yaml +6 -0
- data/misc/section_footer2/retweet.yaml +7 -0
- data/misc/section_footer2/twitter.yaml +7 -0
- data/misc/section_footer2/yahoo.yaml +6 -0
- data/misc/tdiarygraph/tdiarygraph120x90e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph125x125e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph240x180e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph468x60e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph728x90e.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r7.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125s.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes234x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes468x30.swf +0 -0
- data/plugin/add_bookmark.rb +89 -0
- data/plugin/apple_webclip.rb +26 -0
- data/plugin/appstore.rb +47 -0
- data/plugin/bigpresen.rb +86 -0
- data/plugin/bitly.rb +39 -0
- data/plugin/bootstrap-navi.rb +54 -0
- data/plugin/canonical.rb +9 -0
- data/plugin/category_similar.rb +73 -0
- data/plugin/category_to_tag.rb +60 -0
- data/plugin/category_to_tagcloud.rb +172 -0
- data/plugin/cocomment.rb +37 -0
- data/plugin/code-prettify.rb +23 -0
- data/plugin/coderwall.rb +34 -0
- data/plugin/datepicker.rb +28 -0
- data/plugin/day2section.rb +20 -0
- data/plugin/del_footer.rb +111 -0
- data/plugin/description_from_body.rb +23 -0
- data/plugin/development.rb +16 -0
- data/plugin/editor.rb +11 -0
- data/plugin/en/add_bookmark.rb +20 -0
- data/plugin/en/del_footer.rb +10 -0
- data/plugin/en/git-register.rb +3 -0
- data/plugin/en/livedoor_weather.rb +25 -0
- data/plugin/en/microsummary.rb +18 -0
- data/plugin/en/nicovideo.rb +38 -0
- data/plugin/en/openid.rb +8 -0
- data/plugin/en/section_footer.rb +6 -0
- data/plugin/en/section_footer2.rb +3 -0
- data/plugin/en/socialbutton.rb +5 -0
- data/plugin/everytrail.rb +39 -0
- data/plugin/facebook_comments.rb +59 -0
- data/plugin/flickr.rb +209 -0
- data/plugin/gist.rb +16 -0
- data/plugin/git-register.rb +240 -0
- data/plugin/github_badge.rb +27 -0
- data/plugin/github_link.rb +9 -0
- data/plugin/goo_gl.rb +42 -0
- data/plugin/google_adsense.rb +132 -0
- data/plugin/google_analytics.rb +39 -0
- data/plugin/google_map.rb +168 -0
- data/plugin/google_sitemaps.rb +60 -0
- data/plugin/google_webmaster.rb +22 -0
- data/plugin/hatena_bookmark_nocomment.rb +9 -0
- data/plugin/hatena_star.rb +66 -0
- data/plugin/hb_footer.rb +255 -0
- data/plugin/hb_footer4sec.rb +244 -0
- data/plugin/hb_footer4sec_js.rb +30 -0
- data/plugin/hide_comment_form.rb +4 -0
- data/plugin/hide_sidebar_iphone.rb +21 -0
- data/plugin/iddy.rb +81 -0
- data/plugin/image_detail.rb +143 -0
- data/plugin/image_ex.rb +462 -0
- data/plugin/image_gps.rb +128 -0
- data/plugin/inline_wiki.rb +6 -0
- data/plugin/instagr.rb +64 -0
- data/plugin/ja/add_bookmark.rb +20 -0
- data/plugin/ja/del_footer.rb +10 -0
- data/plugin/ja/flickr.rb +62 -0
- data/plugin/ja/git-register.rb +3 -0
- data/plugin/ja/google_sitemaps.rb +35 -0
- data/plugin/ja/livedoor_weather.rb +25 -0
- data/plugin/ja/microsummary.rb +18 -0
- data/plugin/ja/nicovideo.rb +41 -0
- data/plugin/ja/openid.rb +7 -0
- data/plugin/ja/section_footer.rb +6 -0
- data/plugin/ja/section_footer2.rb +4 -0
- data/plugin/ja/socialbutton.rb +6 -0
- data/plugin/jdate.rb +20 -0
- data/plugin/jholiday.rb +16 -0
- data/plugin/jmonth.rb +20 -0
- data/plugin/jquery_ui_theme.rb +55 -0
- data/plugin/jroku.rb +28 -0
- data/plugin/jyear.rb +37 -0
- data/plugin/latlonglab_route.rb +25 -0
- data/plugin/lazy_referer.rb +38 -0
- data/plugin/livedoor_weather.rb +180 -0
- data/plugin/make_link.rb +44 -0
- data/plugin/makerss_category.rb +43 -0
- data/plugin/makerss_comment.rb +35 -0
- data/plugin/microsummary.rb +62 -0
- data/plugin/mm_footer.rb +215 -0
- data/plugin/monthly_autopagerize.rb +67 -0
- data/plugin/my_hotentry.rb +132 -0
- data/plugin/navi_day.rb +118 -0
- data/plugin/navi_this_month.rb +15 -0
- data/plugin/nicovideo.rb +115 -0
- data/plugin/notify_miniblog.rb +134 -0
- data/plugin/ogp.rb +55 -0
- data/plugin/ohmsha_estore.rb +71 -0
- data/plugin/openid.rb +90 -0
- data/plugin/opensearch_ad.rb +33 -0
- data/plugin/picasa.rb +56 -0
- data/plugin/plugin_checker.rb +41 -0
- data/plugin/popit.rb +22 -0
- data/plugin/prettify.rb +19 -0
- data/plugin/prezi.rb +10 -0
- data/plugin/profile.rb +222 -0
- data/plugin/puboo.rb +93 -0
- data/plugin/pygments_css.rb +76 -0
- data/plugin/rating.rb +419 -0
- data/plugin/recent_estraier.rb +50 -0
- data/plugin/recent_tweet.rb +71 -0
- data/plugin/retweet.rb +86 -0
- data/plugin/rubykaigi.rb +99 -0
- data/plugin/search-bing.rb +87 -0
- data/plugin/search-default.rb +264 -0
- data/plugin/search-google-custom.rb +60 -0
- data/plugin/search-yahoo-websearch.rb +121 -0
- data/plugin/search-yahoo.rb +109 -0
- data/plugin/section_footer.rb +195 -0
- data/plugin/section_footer2.rb +278 -0
- data/plugin/section_permalink.rb +73 -0
- data/plugin/section_permalink_anchor.rb +39 -0
- data/plugin/select_style.rb +42 -0
- data/plugin/select_theme.rb +90 -0
- data/plugin/show_and_hide.rb +77 -0
- data/plugin/slideshare.rb +10 -0
- data/plugin/socialbutton.rb +60 -0
- data/plugin/tatsu_zine.rb +93 -0
- data/plugin/tdiarygraph_flashstyle.rb +296 -0
- data/plugin/tdiarytimes.rb +166 -0
- data/plugin/tdiarytimes2.rb +406 -0
- data/plugin/tdiarytimes_flashstyle.rb +263 -0
- data/plugin/tdiarytimes_textstyle.rb +290 -0
- data/plugin/title_anchor.rb +16 -0
- data/plugin/tweet_quote.rb +106 -0
- data/plugin/twitpic.rb +10 -0
- data/plugin/twitter.rb +46 -0
- data/plugin/twitter_anywhere.rb +209 -0
- data/plugin/twitter_badge.rb +42 -0
- data/plugin/twitter_js.rb +59 -0
- data/plugin/ustream.rb +19 -0
- data/plugin/vimeo.rb +14 -0
- data/plugin/volatile.rb +89 -0
- data/plugin/vote.rb +100 -0
- data/plugin/wikiloc.rb +27 -0
- data/plugin/windex.rb +512 -0
- data/plugin/yahoo_kousei.rb +79 -0
- data/plugin/yahoo_map.rb +97 -0
- data/plugin/youtube.rb +33 -0
- data/plugin/yshop.rb +189 -0
- data/plugin/zenback.rb +46 -0
- data/spec/apple_webclip_spec.rb +46 -0
- data/spec/fixtures/friendfeed.xml +2 -0
- data/spec/fixtures/github.json +1 -0
- data/spec/fixtures/twitter.xml +73 -0
- data/spec/gist_spec.rb +16 -0
- data/spec/github_link_spec.rb +39 -0
- data/spec/google_analytics_spec.rb +60 -0
- data/spec/jdate_spec.rb +23 -0
- data/spec/jmonth_spec.rb +28 -0
- data/spec/jyear_spec.rb +21 -0
- data/spec/my_hotentry_spec.rb +78 -0
- data/spec/openid_spec.rb +246 -0
- data/spec/opensearch_ad_spec.rb +50 -0
- data/spec/profile_spec.rb +88 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec_helper.rb +223 -0
- data/spec/title_anchor_spec.rb +39 -0
- data/spec/twitter_js_spec.rb +116 -0
- data/spec/youtube_spec.rb +20 -0
- data/style/hatena_style.rb +1011 -0
- data/style/markdown_style.rb +239 -0
- data/style/wikiext_style.rb +21 -0
- data/tdiary-contrib.gemspec +25 -0
- data/util/clean-spam/README.ja +1 -0
- data/util/clean-spam/tdiary-comment-clean +46 -0
- data/util/clean-spam/tdiary-comment-clean2 +81 -0
- data/util/clean-spam/tdiary-referer-clean +46 -0
- data/util/convert_pstore.rb +82 -0
- data/util/estraier-search/ChangeLog +36 -0
- data/util/estraier-search/README.ja +114 -0
- data/util/estraier-search/en/estraier-register.rb +3 -0
- data/util/estraier-search/estraier-register.rb +298 -0
- data/util/estraier-search/estraier-search.rb +273 -0
- data/util/estraier-search/estraier.rhtml +73 -0
- data/util/estraier-search/estraier.rxml +23 -0
- data/util/estraier-search/i.estraier.rhtml +31 -0
- data/util/estraier-search/ja/estraier-register.rb +3 -0
- data/util/image-gallery/README.ja +27 -0
- data/util/image-gallery/image-gallery.rb +523 -0
- data/util/image-gallery/image-gallery.rb.euc-jp +523 -0
- data/util/image-gallery/js/SmoothGallery/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/css/ReMooz.css +186 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/loading-bar-black.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_e.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_n.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_ne.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_nw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_s.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_se.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_sw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_w.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/spinner.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/jd.gallery.css +371 -0
- data/util/image-gallery/js/SmoothGallery/css/layout.css +91 -0
- data/util/image-gallery/js/SmoothGallery/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/resizer.php +113 -0
- data/util/image-gallery/js/SmoothGallery/scripts/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.Routing.js +126 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.js +109 -0
- data/util/image-gallery/js/SmoothGallery/scripts/ReMooz.js +364 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.js +843 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.set.js +183 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.transitions.js +90 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jdgalleryresize.js +828 -0
- data/util/image-gallery/js/SmoothGallery/scripts/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2-more.js +103 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js +349 -0
- data/util/image-gallery/js/SmoothGallery/scripts/resizer.php +113 -0
- data/util/image-gallery/misc/plugin/recent_image.rb +406 -0
- data/util/image-gallery/skel/gallery.rhtml +154 -0
- data/util/image-gallery/skel/gallery.rhtml.euc-jp +154 -0
- data/util/image-gallery/tdiary.conf.igsample +8 -0
- data/util/image-gallery/theme/image-gallery.css +85 -0
- data/util/image2flickr.rb +282 -0
- data/util/posttdiary/README.ja +12 -0
- data/util/posttdiary/posttdiary-ex.rb +1155 -0
- data/util/posttdiary/posttdiary.rb +245 -0
- data/util/rast-search/ChangeLog +55 -0
- data/util/rast-search/README.ja +99 -0
- data/util/rast-search/en/rast-register.rb +3 -0
- data/util/rast-search/i.rast.rhtml +33 -0
- data/util/rast-search/ja/rast-register.rb +3 -0
- data/util/rast-search/rast-register.rb +326 -0
- data/util/rast-search/rast-search.rb +249 -0
- data/util/rast-search/rast.rhtml +66 -0
- data/util/rast-search/rast.rxml +21 -0
- data/util/section_link/README +11 -0
- data/util/section_link/misc/plugin/section_link.rb +68 -0
- data/util/section_link/misc/plugin/section_link_anchor.rb +38 -0
- data/util/section_link/tdiary/tdiary_day_ext.rb +21 -0
- data/util/section_link/tdiary/tdiaryext_style.rb +36 -0
- data/util/section_link/tdiary/wikiext_style.rb +36 -0
- data/util/tdiary-for-ruby1.9/compatible.rb +97 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.2.0.patch +98 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.3.1.patch +212 -0
- data/util/tdiary-grep/README +4 -0
- data/util/tdiary-grep/grep.rb +445 -0
- data/util/tdiary-mode/http.el +130 -0
- data/util/tdiary-mode/tdiary-mode.el +613 -0
- data/util/tdiary-vim/ChangeLog +25 -0
- data/util/tdiary-vim/README +60 -0
- data/util/tdiary-vim/tdiary.vim +350 -0
- data/util/tdiarysearch/README.en +53 -0
- data/util/tdiarysearch/README.ja +99 -0
- data/util/tdiarysearch/search.rb +504 -0
- metadata +497 -0
@@ -0,0 +1,245 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$KCODE= 'u'
|
3
|
+
#
|
4
|
+
# posttdiary: update tDiary via e-mail. $Revision: 1.5 $
|
5
|
+
#
|
6
|
+
# Copyright (C) 2002, All right reserved by TADA Tadashi <sho@spc.gr.jp>
|
7
|
+
# You can redistribute it and/or modify it under GPL2.
|
8
|
+
#
|
9
|
+
|
10
|
+
def usage
|
11
|
+
<<-TEXT.gsub( /^\t{2}/, '' )
|
12
|
+
#{File::basename __FILE__}: update tDiary via e-mail.
|
13
|
+
usage: ruby #{File::basename __FILE__} [options] <url> [user] [passwd]
|
14
|
+
arguments:
|
15
|
+
url: update.rb's URL of your diary.
|
16
|
+
user: user ID of your diary updating.
|
17
|
+
passwd: password of your diary updating.
|
18
|
+
If To: field of the mail likes "user-passwd@example.com",
|
19
|
+
you can omit user and passwd arguments.
|
20
|
+
options:
|
21
|
+
--image-path, -i: directory of image saving into.
|
22
|
+
--image-url, -u: URL of image.
|
23
|
+
You have to specify both options when using images.
|
24
|
+
--image-format, -f: format of image tag specified image serial
|
25
|
+
number as '$0' and image url as '$1'.
|
26
|
+
default format is ' <img class="photo" src="$1" alt="">'.
|
27
|
+
--use-subject, -s: use mail subject to subtitle.
|
28
|
+
and insert image between subtitle and body.
|
29
|
+
TEXT
|
30
|
+
end
|
31
|
+
|
32
|
+
def image_list( date, path )
|
33
|
+
image_path = []
|
34
|
+
Dir.foreach( path ) do |file|
|
35
|
+
if file =~ /(\d{8,})_(\d+)\./ and $1 == date then
|
36
|
+
image_path[$2.to_i] = file
|
37
|
+
end
|
38
|
+
end
|
39
|
+
image_path
|
40
|
+
end
|
41
|
+
|
42
|
+
def bmp_to_png( bmp )
|
43
|
+
png = bmp.sub( /\.bmp$/, '.png' )
|
44
|
+
begin
|
45
|
+
require 'magick'
|
46
|
+
img = Magick::Image::new( bmp )
|
47
|
+
img.write( 'magick' => 'png', 'filename' => png )
|
48
|
+
rescue LoadError
|
49
|
+
system( "convert #{bmp} #{png}" )
|
50
|
+
end
|
51
|
+
if FileTest::exist?( png )
|
52
|
+
File::delete( bmp )
|
53
|
+
png
|
54
|
+
else
|
55
|
+
bmp
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
begin
|
60
|
+
|
61
|
+
raise usage if ARGV.length < 1
|
62
|
+
|
63
|
+
require 'getoptlong'
|
64
|
+
parser = GetoptLong::new
|
65
|
+
image_dir = nil
|
66
|
+
image_url = nil
|
67
|
+
image_format = ' <img class="photo" src="$1" alt="">'
|
68
|
+
use_subject = false
|
69
|
+
parser.set_options(
|
70
|
+
['--image-path', '-i', GetoptLong::REQUIRED_ARGUMENT],
|
71
|
+
['--image-url', '-u', GetoptLong::REQUIRED_ARGUMENT],
|
72
|
+
['--image-format', '-f', GetoptLong::REQUIRED_ARGUMENT],
|
73
|
+
['--use-subject', '-s', GetoptLong::NO_ARGUMENT]
|
74
|
+
)
|
75
|
+
begin
|
76
|
+
parser.each do |opt, arg|
|
77
|
+
case opt
|
78
|
+
when '--image-path'
|
79
|
+
image_dir = arg
|
80
|
+
when '--image-url'
|
81
|
+
image_url = arg
|
82
|
+
when '--image-format'
|
83
|
+
image_format = arg
|
84
|
+
when '--use-subject'
|
85
|
+
use_subject = true
|
86
|
+
end
|
87
|
+
end
|
88
|
+
rescue
|
89
|
+
raise usage
|
90
|
+
end
|
91
|
+
raise usage if (image_dir and not image_url) or (not image_dir and image_url)
|
92
|
+
image_dir = image_dir.sub( %r[/*$], '/' ) if image_dir
|
93
|
+
image_url = image_url.sub( %r[/*$], '/' ) if image_url
|
94
|
+
url = ARGV.shift
|
95
|
+
if %r|http://([^:/]+)(?::(\d+))?(/.*)| =~ url then
|
96
|
+
host = $1
|
97
|
+
port = ($2 || 80).to_i
|
98
|
+
cgi = $3
|
99
|
+
else
|
100
|
+
raise 'bad url.'
|
101
|
+
end
|
102
|
+
|
103
|
+
user = ARGV.shift
|
104
|
+
pass = ARGV.shift
|
105
|
+
|
106
|
+
require 'base64'
|
107
|
+
require 'nkf'
|
108
|
+
image_name = nil
|
109
|
+
|
110
|
+
mail = NKF::nkf( '-m0 -Xwd', ARGF.read )
|
111
|
+
raise "#{File::basename __FILE__}: no mail text." if not mail or mail.length == 0
|
112
|
+
|
113
|
+
head, body = mail.split( /(?:\r?\n){2}/, 2 )
|
114
|
+
|
115
|
+
if head =~ %r|Content-Type:\s*Multipart/Mixed.*boundary="?(.*?)"?[\r\n]|im then
|
116
|
+
if not image_dir or not image_url then
|
117
|
+
raise "no --image-path and --image-url options"
|
118
|
+
end
|
119
|
+
|
120
|
+
bound = "--" + $1
|
121
|
+
body_sub = body.split( Regexp.compile( Regexp.escape( bound ) ) )
|
122
|
+
body_sub.each do |b|
|
123
|
+
sub_head, sub_body = b.split( /(?:\r?\n){2}/, 2 )
|
124
|
+
|
125
|
+
next unless sub_head =~ /Content-Type:/i
|
126
|
+
|
127
|
+
if sub_head =~ %r[^Content-Type:\s*text/plain]i then
|
128
|
+
@body = sub_body
|
129
|
+
elsif sub_head =~ %r[
|
130
|
+
^Content-Type:\s*
|
131
|
+
(?:image/|application/octet-stream).+
|
132
|
+
name="?.+(\.\w{3})"? (?# 1: extension)
|
133
|
+
]imx
|
134
|
+
image_ext = $1.downcase
|
135
|
+
now = Time::now
|
136
|
+
list = image_list( now.strftime( "%Y%m%d" ), image_dir )
|
137
|
+
image_name = now.strftime( "%Y%m%d" ) + "_" + list.length.to_s + image_ext
|
138
|
+
File::umask( 022 )
|
139
|
+
open( image_dir + image_name, "wb" ) do |s|
|
140
|
+
begin
|
141
|
+
s.print Base64::decode64( sub_body.strip )
|
142
|
+
rescue NameError
|
143
|
+
s.print decode64( sub_body.strip )
|
144
|
+
end
|
145
|
+
end
|
146
|
+
if /\.bmp$/i =~ image_name then
|
147
|
+
bmp_to_png( image_dir + image_name )
|
148
|
+
image_name.sub!( /\.bmp$/i, '.png' )
|
149
|
+
end
|
150
|
+
@image_name ||= []
|
151
|
+
@image_name << image_name
|
152
|
+
end
|
153
|
+
end
|
154
|
+
elsif head =~ /^Content-Type:\s*text\/plain/i
|
155
|
+
if head =~ /^Content-Transfer-Encoding:\squoted-printable/
|
156
|
+
@body = body.unpack("M").map {|str| NKF::nkf("-wJd", str) }
|
157
|
+
else
|
158
|
+
@body = body
|
159
|
+
end
|
160
|
+
else
|
161
|
+
raise "cannot read this mail"
|
162
|
+
end
|
163
|
+
|
164
|
+
if @image_name then
|
165
|
+
img_src = ""
|
166
|
+
@image_name.each do |i|
|
167
|
+
serial = i.sub( /^\d+_(\d+)\..*$/n, '\1' )
|
168
|
+
img_src += image_format.gsub( /\$0/, serial ).gsub( /\$1/, image_url + i )
|
169
|
+
end
|
170
|
+
if use_subject then
|
171
|
+
@body = "#{img_src}\n#{@body}".sub( /(?:\r?\n|\r)+\z/, "\n" )
|
172
|
+
else
|
173
|
+
@body = "#{@body}".sub( /(?:\r?\n|\r)+\z/, "\n" ) << img_src
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
addr = nil
|
178
|
+
if /^To:(.*)$/ =~ head then
|
179
|
+
addr = case to = $1.strip
|
180
|
+
when /.*?\s*<(.+)>/, /(.+?)\s*\(.*\)/
|
181
|
+
$1
|
182
|
+
else
|
183
|
+
to
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
if /([^-]+)-(.*)@/ =~ addr then
|
188
|
+
user ||= $1
|
189
|
+
pass ||= $2
|
190
|
+
end
|
191
|
+
|
192
|
+
raise "no user." unless user
|
193
|
+
raise "no passwd." unless pass
|
194
|
+
|
195
|
+
subject = ''
|
196
|
+
nextline = false
|
197
|
+
headlines = head.split( /(?:\r?\n|\r)+/ )
|
198
|
+
for n in 0 .. headlines.size-1
|
199
|
+
if nextline then
|
200
|
+
if /^[ \t]/ =~ headlines[n] then
|
201
|
+
s = headlines[n].sub( /^[ \t]/, '' )
|
202
|
+
subject += NKF::nkf( '-wXd', s )
|
203
|
+
else
|
204
|
+
break
|
205
|
+
end
|
206
|
+
end
|
207
|
+
if /^Subject:\s*(.+)$/i =~ headlines[n] then
|
208
|
+
subject = NKF::nkf( '-wXd', $1 )
|
209
|
+
nextline = true
|
210
|
+
end
|
211
|
+
end
|
212
|
+
subject.strip!
|
213
|
+
if use_subject then
|
214
|
+
title = ''
|
215
|
+
@body = "#{subject}\n#{@body}"
|
216
|
+
else
|
217
|
+
title = subject
|
218
|
+
end
|
219
|
+
|
220
|
+
require 'cgi'
|
221
|
+
require 'nkf'
|
222
|
+
data = "title=#{CGI::escape title}"
|
223
|
+
data << "&body=#{CGI::escape @body}"
|
224
|
+
data << "&append=true"
|
225
|
+
|
226
|
+
require 'net/http'
|
227
|
+
Net::HTTP.start( host, port ) do |http|
|
228
|
+
auth = ["#{user}:#{pass}"].pack( 'm' ).strip
|
229
|
+
res, = http.get( cgi, {
|
230
|
+
'Authorization' => "Basic #{auth}",
|
231
|
+
'Referer' => url })
|
232
|
+
if %r|<input type="hidden" name="csrf_protection_key" value="([^"]+)">| =~ res.body then
|
233
|
+
data << "&csrf_protection_key=#{CGI::escape( CGI::unescapeHTML( $1 ) )}"
|
234
|
+
end
|
235
|
+
res, = http.post( cgi, data, {
|
236
|
+
'Authorization' => "Basic #{auth}",
|
237
|
+
'Referer' => url })
|
238
|
+
end
|
239
|
+
|
240
|
+
rescue
|
241
|
+
$stderr.puts $!
|
242
|
+
$stderr.puts $@.join( "\n" )
|
243
|
+
File::delete( image_dir + image_name ) if image_dir and image_name and FileTest::exist?( image_dir + image_name )
|
244
|
+
exit 1
|
245
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
2007-01-08 Kazuhiko <kazuhiko@fdiary.net>
|
2
|
+
* rast-register.rb, rast-search.rb: revise for UTF8.
|
3
|
+
|
4
|
+
2005-12-10 Kazuhiko <kazuhiko@fdiary.net>
|
5
|
+
* rast-register.rb: set 'diaries' for the 'my-ex' plugin.
|
6
|
+
|
7
|
+
* rast-register.rb: revise attributes of the 'date' property.
|
8
|
+
rebuilding indices is necessary.
|
9
|
+
* rast-search.rb: revise for mod_ruby.
|
10
|
+
|
11
|
+
2005-12-06 Kazuhiko <kazuhiko@fdiary.net>
|
12
|
+
* rast.rhtml: remove a dummy link.
|
13
|
+
|
14
|
+
2005-12-05 Kazuhiko <kazuhiko@fdiary.net>
|
15
|
+
* rast-register.rb: revise attributes of the 'date' property.
|
16
|
+
remove indices before rebuilding.
|
17
|
+
|
18
|
+
2005-12-04 Kazuhiko <kazuhiko@fdiary.net>
|
19
|
+
* rast-register.rb: support tDiary-2.0.x.
|
20
|
+
* en/rast-register.rb, ja/rast-register.rb: add resources.
|
21
|
+
|
22
|
+
2005-11-24 Kazuhiko <kazuhiko@fdiary.net>
|
23
|
+
* rast-register.rb: fix a bug in command-line mode (reported by
|
24
|
+
YAA). set 'cache_path' for the 'tlink' plugin (reported by YAA).
|
25
|
+
|
26
|
+
* rast-register.rb: support rebuilding index by conf mode. abolish
|
27
|
+
'CGI' mode.
|
28
|
+
|
29
|
+
2005-11-23 Kazuhiko <kazuhiko@fdiary.net>
|
30
|
+
* rast-register.rb: use 'require' instead of 'autoload'.
|
31
|
+
|
32
|
+
2005-11-21 Kazuhiko <kazuhiko@fdiary.net>
|
33
|
+
* rast-register.rb: add a plugin file.
|
34
|
+
* rast-search.rb, rast.rxml: support opensearch rss.
|
35
|
+
* rast.rhtml: revise for more valid HTML output.
|
36
|
+
|
37
|
+
2005-05-11 Kazuhiko <kazuhiko@fdiary.net>
|
38
|
+
* rast.rhtml, i.rast.rhtml: use @num instead of 10.
|
39
|
+
|
40
|
+
2005-05-11 TADA Tadashi <sho@spc.gr.jp>
|
41
|
+
* rast.rhtml, i.rast.rhtml: set title to h2 element, and copy format_links
|
42
|
+
plugin on top of results.
|
43
|
+
|
44
|
+
2005-05-10 TADA Tadashi <sho@spc.gr.jp>
|
45
|
+
* README.ja: fix typo.
|
46
|
+
|
47
|
+
2005-04-16 Kazuhiko <kazuhiko@fdiary.net>
|
48
|
+
* rast.rhtml: convert the encoding of @query.
|
49
|
+
|
50
|
+
2005-04-15 Kazuhiko <kazuhiko@fdiary.net>
|
51
|
+
* rast-search.rb: never use Rast::LocalDB. fix a bug in running
|
52
|
+
from a shell.
|
53
|
+
|
54
|
+
2005-04-14 Kazuhiko <kazuhiko@fdiary.net>
|
55
|
+
* initial release of rast-search.
|
@@ -0,0 +1,99 @@
|
|
1
|
+
rast-search README
|
2
|
+
===================
|
3
|
+
|
4
|
+
Rast <http://projects.netlab.jp/rast/> を用いた tDiary 検索環境です。
|
5
|
+
|
6
|
+
|
7
|
+
特徴
|
8
|
+
----------
|
9
|
+
|
10
|
+
日記の更新と連動して自動的にインデックスを更新するので、いつでも最新の
|
11
|
+
情報で検索することができます。日記を HTML 化した後に必要な部分だけを取
|
12
|
+
り出してインデックスを作成するので、ヘッダやフッタなどによる検索ノイズ
|
13
|
+
がなく、また、プラグインの出力が検索対象になるという特徴があります。
|
14
|
+
|
15
|
+
|
16
|
+
必要なもの
|
17
|
+
----------
|
18
|
+
|
19
|
+
* tDiary 1.5 以降
|
20
|
+
* Ruby 1.8.2 以降
|
21
|
+
* Rast 0.3.1 以降
|
22
|
+
|
23
|
+
|
24
|
+
セットアップ
|
25
|
+
------------
|
26
|
+
|
27
|
+
1. rast-register.rb を tDiary の プラグインディレクトリにコピーします。
|
28
|
+
|
29
|
+
2. rast-search.rb を tDiary の index.rb があるディレクトリにコピーしま
|
30
|
+
す。必要なら index.rb と同じようにシンボリックリンクを張ったり名前を
|
31
|
+
変えたりしてください。
|
32
|
+
|
33
|
+
3. CGI として実行可能にします。
|
34
|
+
|
35
|
+
$ chmod a+x rast-search.rb
|
36
|
+
|
37
|
+
4. 必要なら #! のパスを変更します。
|
38
|
+
|
39
|
+
5. rast.rhtml と rast.rxml と i.rast.rhtml を tDiary の skel/ ディレク
|
40
|
+
トリにコピーします。
|
41
|
+
|
42
|
+
6. rast-register.rb プラグインを有効にします。(tDiary の plugin/ ディレ
|
43
|
+
クトリにコピーするか、プラグイン選択のディレクトリにコピーしてブラウ
|
44
|
+
ザから有効に設定します。言語リソースファイルの en/rast-register.rb
|
45
|
+
と ja/rast-register.rb も、プラグインディレクトリの en/ 以下および
|
46
|
+
ja/ 以下にコピーしてください。)
|
47
|
+
|
48
|
+
7. (オプション) tdiary.conf で以下のように encoding の設定をできます。
|
49
|
+
Rast の encoding module の名前で設定してください。デフォルトは
|
50
|
+
'utf8' です。encoding の設定を変更する場合は、Rast のインデックス
|
51
|
+
があるディレクトリ (cache ディレクトリの下の /rast) を消して、再度イ
|
52
|
+
ンデックスを作りなおしてください。
|
53
|
+
|
54
|
+
@options['rast.index'] = 'utf8'
|
55
|
+
|
56
|
+
8. 既存の日記コンテンツに対して検索インデックスを作成します。tDiary の
|
57
|
+
設定画面から「Rast検索」を選び、「Rast検索のインデックスを再構築する
|
58
|
+
場合は、チェックボックスをチェックしてOKを押してください」というメッ
|
59
|
+
セージに従ってチェックしてOKを押すと、
|
60
|
+
|
61
|
+
インデックスの作成は、tDiary の CGI の実行権限で以下のように実行する
|
62
|
+
ことでも可能です。
|
63
|
+
|
64
|
+
ruby rast-register.rb [-p tdiary.rbのあるディレクトリ] [-c tdiary.confのあるディレクトリ]
|
65
|
+
|
66
|
+
9. 自分の tDiary の好きな場所 (例えばヘッダ) に以下のようなフォームを加
|
67
|
+
えてください。
|
68
|
+
|
69
|
+
<form method="get" action="rast-search.rb" class="search">
|
70
|
+
<input type="text" name="query" size="20" value="">
|
71
|
+
<input type="submit" value="Search">
|
72
|
+
</form>
|
73
|
+
|
74
|
+
search-form.rb プラグインを有効にしている場合は、以下のように書くこ
|
75
|
+
ともできます。
|
76
|
+
|
77
|
+
<%= search_form('rast-search.rb', 'query') %>
|
78
|
+
|
79
|
+
以上です。
|
80
|
+
|
81
|
+
|
82
|
+
検索のしかた
|
83
|
+
------------
|
84
|
+
|
85
|
+
rast-search の検索対象は、日記本文、ツッコミ、TrackBack です。
|
86
|
+
|
87
|
+
検索方法については、 http://projects.netlab.jp/rast/query.html.ja をご覧くだ
|
88
|
+
さい。
|
89
|
+
|
90
|
+
|
91
|
+
連絡先
|
92
|
+
------
|
93
|
+
|
94
|
+
かずひこ <kazuhiko@fdiary.net>
|
95
|
+
http://www.fdiary.net/
|
96
|
+
|
97
|
+
バグ報告は以下のどこかにお願いします。
|
98
|
+
* tdiary-devel ML
|
99
|
+
* 直接メール
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%# i.rast.rhtml $Revision: 1.5.2.1 $ %>
|
2
|
+
<h1><%= CGI::escapeHTML( @conf.html_title ) %> [全文検索]</h1>
|
3
|
+
<form action="<%= _(@cgi.script_name) %>">
|
4
|
+
<p>
|
5
|
+
<input type="text" name="query" value="<%= _(@conf.to_native(@query)) %>">
|
6
|
+
<input type="submit" value="検索">
|
7
|
+
<a href="http://projects.netlab.jp/rast/query.html.ja">検索方法</a>
|
8
|
+
</p>
|
9
|
+
<p>
|
10
|
+
並べ替え:
|
11
|
+
<select name="sort">
|
12
|
+
<%= @sort_options %>
|
13
|
+
</select>
|
14
|
+
<select name="order">
|
15
|
+
<%= @order_options %>
|
16
|
+
</select>
|
17
|
+
表示件数:
|
18
|
+
<select name="num">
|
19
|
+
<%= @num_options %>
|
20
|
+
</select>
|
21
|
+
</p>
|
22
|
+
</form>
|
23
|
+
<% if @msg %>
|
24
|
+
<p><%= @msg %></p>
|
25
|
+
<% else %>
|
26
|
+
<p><%= @result.hit_count %>件中<%= @start + 1 %>-<%= @start + @result.items.length %>件目</p>
|
27
|
+
<% for item in @result.items %><% format_result_item(item) %>
|
28
|
+
<h2><a href="<%= @conf.index %><%= @plugin.anchor(@date) %>"><%= _(@conf.to_native(@title)) %></a>(スコア:<%= item.score %>)</h2>
|
29
|
+
<% end %>
|
30
|
+
<% if @result.hit_count > @num %>
|
31
|
+
<%= format_links(@result) %>
|
32
|
+
<% end %>
|
33
|
+
<% end %>
|