tdiary-contrib 3.2.2.20130518
Sign up to get free protection for your applications and to get access to all the features.
- 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 %>
|