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,154 @@
|
|
1
|
+
<%# gallery.rhtml $Revision: 2.0.1 $ %>
|
2
|
+
<%# Copyright (c) 2005-2012 N.KASHIJUKU <n-kashi[at]whi.m-net.ne.jp> %>
|
3
|
+
<%# You can redistribute it and/or modify it under GPL2. %>
|
4
|
+
|
5
|
+
<div class="adminmenu"><%%=navi_user%></div><h1><%= CGI::escapeHTML( @conf.html_title ) %> [Image Gallery]</h1>
|
6
|
+
|
7
|
+
<% if @images.length == 0 %>
|
8
|
+
<p>��������ե�����Ϥ���ޤ���</p>
|
9
|
+
<%= format_links_date %>
|
10
|
+
<% else %>
|
11
|
+
<% if @mode == "list" or @mode == "slide" or @mode == "fslide" %>
|
12
|
+
<%= format_links_date %>
|
13
|
+
<div class="day">
|
14
|
+
<% if @images.length != 0 %>
|
15
|
+
<h2><span class="date"><%= _(@conf.to_native(@t_page_title)) %> Page <%=@start / @num + 1 %></span> <span class="nyear">[<%= @image_num %> ���� <%= @start + 1 %> - <%= @start + @images.length %> ����] <%= get_other_mode_link %></span></h2>
|
16
|
+
<% end %>
|
17
|
+
<div class="body">
|
18
|
+
<div class="section">
|
19
|
+
<div class="categorylink"><%= format_link_list_category(@images) %></div>
|
20
|
+
<% if @mode == "list" %>
|
21
|
+
<table class="imagelist">
|
22
|
+
<% @line.times do |line|%>
|
23
|
+
<tr>
|
24
|
+
<% @column.times do |column| %>
|
25
|
+
<% i = line * @column + column %>
|
26
|
+
<td>
|
27
|
+
<% if @images[i] != nil %>
|
28
|
+
<% if @images[i].width.to_i > @images[i].height.to_i %>
|
29
|
+
<p><a href="<%= format_link_viewer_image(@image_hash.index(@images[i])) %>"><img src="<%= @image_url %>/<%= @images[i].url %>" width="<%= @width %>" height="<%= (@width.to_i*@images[i].height.to_i/@images[i].width.to_i).to_s %>" alt="<%= @images[i].file %>" title="<%= @images[i].file %>" class="imagebody"></a></p>
|
30
|
+
<% else %>
|
31
|
+
<p><a href="<%= format_link_viewer_image(@image_hash.index(@images[i])) %>"><img src="<%= @image_url %>/<%= @images[i].url %>" width="<%= (@width.to_i*@images[i].width.to_i/@images[i].height.to_i).to_s %>" height="<%= @width %>" alt="<%= @images[i].file %>" title="<%= @images[i].file %>" class="imagebody"></a></p>
|
32
|
+
<% end %>
|
33
|
+
<p class="imagetitle"><%= CGI::escapeHTML(@images[i].title) %></p>
|
34
|
+
<p class="imagedate"><a href="./?date=<%= @images[i].date %>" title="<%= CGI::escapeHTML(@images[i].subtitle) %>"><%= @images[i].date.sub(/(\d{4})(\d{2})(\d{2})/, '\1-\2-\3') %></a></p>
|
35
|
+
<% end %>
|
36
|
+
</td>
|
37
|
+
<% end %>
|
38
|
+
</tr>
|
39
|
+
<% break if @images[(line + 1) * @column] == nil %>
|
40
|
+
<% end %>
|
41
|
+
</table>
|
42
|
+
<% elsif @mode == "slide" or @mode == "fslide" %>
|
43
|
+
<%= js_start_gallery %>
|
44
|
+
<div class="content">
|
45
|
+
<div id="myGallery">
|
46
|
+
<% (@line * @column).times do |i| %>
|
47
|
+
<div class="imageElement">
|
48
|
+
<h3><%= CGI::escapeHTML(@images[i].title) %>[<%= @images[i].date.sub(/(\d{4})(\d{2})(\d{2})/, '\1-\2-\3') %>]</h3>
|
49
|
+
<p><%= CGI::escapeHTML(@images[i].subtitle) %></p>
|
50
|
+
<a href="./?date=<%= @images[i].date %>" title="to Diary" class="open"></a>
|
51
|
+
<% image_file = @images[i].file.dup %>
|
52
|
+
<% if @use_mid_image && @mode == "slide" %>
|
53
|
+
<% if image_file[4] == ?/ %>
|
54
|
+
<% image_file[4] = "/m" %>
|
55
|
+
<% else %>
|
56
|
+
<% image_file = "m" + image_file %>
|
57
|
+
<% end %>
|
58
|
+
<% end %>
|
59
|
+
<img src="<%= @image_url %>/<%= image_file %>" class="full" />
|
60
|
+
<img src="<%= @image_url %>/<%= @images[i].url %>" class="thumbnail" />
|
61
|
+
</div>
|
62
|
+
<% break if @images[i+1] == nil %>
|
63
|
+
<% end %>
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
<% end %>
|
67
|
+
</div>
|
68
|
+
</div>
|
69
|
+
</div>
|
70
|
+
<div class="referer">
|
71
|
+
<% if @image_num > 0 %>
|
72
|
+
<%= format_links(@image_num) %>
|
73
|
+
<% end %>
|
74
|
+
</div>
|
75
|
+
|
76
|
+
<% elsif @mode == "viewer" %>
|
77
|
+
<%= format_links_viewer %>
|
78
|
+
<div class="day">
|
79
|
+
<h2><span class="date"> <a href="./?date=<%= @images[0].date %>" title="<%= CGI::escapeHTML(@images[0].subtitle) %>"><%= @images[0].date.sub(/(\d{4})(\d{2})(\d{2})/, '\1-\2-\3') %></a></span> <span class="title"><%= CGI::escapeHTML(@images[0].title) %></span> <span class="nyear">[<%= @images[0].file %>:<%= @images[0].width %>(w)��<%= @images[0].height %>(h)]</span></h2>
|
80
|
+
<div class="body">
|
81
|
+
<% image_file = @images[0].file.dup %>
|
82
|
+
<% month_filter = ((image_file[4] == ?/) ? %Q[^#{image_file[0,4]}/#{image_file[5,6]}] : %Q[^#{image_file[0,6]}]) %>
|
83
|
+
<div class="categorylink">»<%= format_link_viewer_date(@images[0].date[0,4], "^"+@images[0].date[0,4]) %>-<%= format_link_viewer_date(@images[0].date[4,2], month_filter) %>-<%= format_link_viewer_date(@images[0].date[6,2], @images[0].date[0,8]) %> | <%= format_link_viewer_category(@images[0].subtitle) %></div>
|
84
|
+
<div class="section">
|
85
|
+
<table class="imageview">
|
86
|
+
<tr>
|
87
|
+
<td colspan="2">
|
88
|
+
<% image_file = @images[0].file.dup %>
|
89
|
+
<% if @use_mid_image %>
|
90
|
+
<% if image_file[4] == ?/ %>
|
91
|
+
<% image_file[4] = "/m" %>
|
92
|
+
<% else %>
|
93
|
+
<% image_file = "m" + image_file %>
|
94
|
+
<% end %>
|
95
|
+
<% end %>
|
96
|
+
<a href="<%= @image_url %>/<%= @images[0].file %>"><img src="<%= @image_url %>/<%= image_file %>" <%= @sizestr %> alt="<%= CGI::escapeHTML(@images[0].title) %>" title="<%= CGI::escapeHTML(@images[0].title) %>" class="imagebody"></a>
|
97
|
+
</td>
|
98
|
+
</tr>
|
99
|
+
<tr>
|
100
|
+
<td>
|
101
|
+
<% if @show_exif and @exifstr.length != 0 %>
|
102
|
+
<strong><p class="infobar"> - EXIF Data -</p></strong>
|
103
|
+
<strong><p class="exiftitle"><%= @exifstr[0] %></p></strong>
|
104
|
+
<ul class="exifdata">
|
105
|
+
<% i = 1 %>
|
106
|
+
<% while i < @exifstr.length %>
|
107
|
+
<% if @exifstr.length > 5 and i == @exifstr.length / 2 %>
|
108
|
+
</ul>
|
109
|
+
</td>
|
110
|
+
<td>
|
111
|
+
<ul class="exifdata">
|
112
|
+
<% end %>
|
113
|
+
<% if @exifstr[i][0,2] == "--" %>
|
114
|
+
</ul>
|
115
|
+
<strong><p class="exiftitle"><%= @exifstr[i] %></p></strong>
|
116
|
+
<ul class="exifdata">
|
117
|
+
<% else %>
|
118
|
+
<li><%= @exifstr[i] %></li>
|
119
|
+
<% end %>
|
120
|
+
<% i = i + 1 %>
|
121
|
+
<% end %>
|
122
|
+
</ul>
|
123
|
+
</td>
|
124
|
+
<% end %>
|
125
|
+
</tr>
|
126
|
+
</table>
|
127
|
+
</div>
|
128
|
+
</div>
|
129
|
+
</div>
|
130
|
+
<% end %>
|
131
|
+
<% end %>
|
132
|
+
|
133
|
+
<% if @show_inputfield %>
|
134
|
+
<form action="<%= @cgi.script_name ? _(@cgi.script_name) : '' %>">
|
135
|
+
<p>
|
136
|
+
����������: �ե�����̾��<input type="text" name="name" value="<%= _(@conf.to_native(@name_filter)) %>" size="16" />
|
137
|
+
�����Υ��֥����ȥ�:<input type="text" name="subtitle" value="<%= _(@conf.to_native(@subtitle_filter)) %>" size="16" />
|
138
|
+
�����Υ����ȥ�:<input type="text" name="title" value="<%= _(@conf.to_native(@title_filter)) %>" size="16" />
|
139
|
+
</p>
|
140
|
+
<p>
|
141
|
+
�¤��ؤ�:
|
142
|
+
<select name="order">
|
143
|
+
<%= @order_options %>
|
144
|
+
</select>
|
145
|
+
ɽ������:
|
146
|
+
<select name="mode">
|
147
|
+
<%= @mode_options %>
|
148
|
+
</select>
|
149
|
+
<input type="submit" value="ɽ��" />
|
150
|
+
</p>
|
151
|
+
</form>
|
152
|
+
<div class="footer">
|
153
|
+
Generated by <a href="http://www1.whi.m-net.ne.jp/n-kashi/image-gallery2.html">tDiary Image Gallery</a> version <%= @img_version %></div>
|
154
|
+
<% end %>
|
@@ -0,0 +1,85 @@
|
|
1
|
+
/* css for tDiary Image Gallery */
|
2
|
+
/* for List mode */
|
3
|
+
table.imagelist {
|
4
|
+
margin: 0 auto;
|
5
|
+
text-align: center;
|
6
|
+
}
|
7
|
+
|
8
|
+
table.imagelist p.imagetitle {
|
9
|
+
margin-top: 0px;
|
10
|
+
margin-bottom: 0px;
|
11
|
+
}
|
12
|
+
|
13
|
+
table.imagelist td {
|
14
|
+
width: 33%;
|
15
|
+
}
|
16
|
+
|
17
|
+
table.imageview td {
|
18
|
+
width: 50%;
|
19
|
+
}
|
20
|
+
|
21
|
+
table.imagelist p.imagedate {
|
22
|
+
margin-top: 0px;
|
23
|
+
}
|
24
|
+
|
25
|
+
table.imageview {
|
26
|
+
margin-left: auto;
|
27
|
+
margin-right: auto;
|
28
|
+
}
|
29
|
+
|
30
|
+
table.imageview td {
|
31
|
+
text-align: center;
|
32
|
+
}
|
33
|
+
|
34
|
+
p.exiftitle {
|
35
|
+
text-align: left;
|
36
|
+
}
|
37
|
+
|
38
|
+
table.imageview li {
|
39
|
+
text-align: left;
|
40
|
+
}
|
41
|
+
|
42
|
+
img.imagebody {
|
43
|
+
border-style: solid;
|
44
|
+
border-width: 1px;
|
45
|
+
border-color: #fff;
|
46
|
+
padding: 4px;
|
47
|
+
margin: 0 auto;
|
48
|
+
}
|
49
|
+
|
50
|
+
p.infobar {
|
51
|
+
text-align: center;
|
52
|
+
}
|
53
|
+
|
54
|
+
div.categorylink {
|
55
|
+
font-size: small;
|
56
|
+
text-align: right;
|
57
|
+
margin-right: 0.3em;
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
/* for SlideShow mode */
|
62
|
+
.content {
|
63
|
+
margin: 0 20px;
|
64
|
+
}
|
65
|
+
|
66
|
+
.content a {
|
67
|
+
color: #fff;
|
68
|
+
}
|
69
|
+
|
70
|
+
|
71
|
+
.content p.linkage {
|
72
|
+
margin-top: 2em;
|
73
|
+
text-align: right;
|
74
|
+
font-size: 1.7em;
|
75
|
+
color: #ddd;
|
76
|
+
}
|
77
|
+
|
78
|
+
.content p.linkage a { color: #fff; }
|
79
|
+
|
80
|
+
#myGallery
|
81
|
+
{
|
82
|
+
text-align: left;
|
83
|
+
margin: 0 auto;
|
84
|
+
}
|
85
|
+
|
@@ -0,0 +1,282 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# = Image2Flickr
|
4
|
+
# imageプラグインからflickrプラグインへのマイグレーションツール
|
5
|
+
#
|
6
|
+
# Author:: MATSUOKA Kohei <http://www.machu.jp/>
|
7
|
+
# Copyright:: Copyright (c) MATSUOKA Kohei <http://www.machu.jp/>
|
8
|
+
# License:: GPL <http://www.gnu.org/copyleft/gpl.html>
|
9
|
+
#
|
10
|
+
# USEGE:
|
11
|
+
# imageプラグインからflickrプラグインへ移行するためのツールです。
|
12
|
+
# このツールの機能は、以下の2つです。
|
13
|
+
# (1) tDiaryのimageプラグインを利用して日記に載せた写真を、
|
14
|
+
# Flickrへアップロードします。
|
15
|
+
# (2) 日記データのimageプラグインの呼び出しを、
|
16
|
+
# flickrプラグインへと置き換えます。
|
17
|
+
# 古い日記データは .bak.YYYYmmddHHMMSS を付けてバックアップします。
|
18
|
+
#
|
19
|
+
# == 注意
|
20
|
+
#
|
21
|
+
# (1) tDiary2.3.1以降が対象です。
|
22
|
+
# 日記データがUTF-8に変換されている必要があります。
|
23
|
+
# (2) Wiki記法で記述された日記が対象です。
|
24
|
+
#
|
25
|
+
#
|
26
|
+
# == 移行手順
|
27
|
+
#
|
28
|
+
# 1. Flickr APIキーの取得
|
29
|
+
#
|
30
|
+
# flickr.comのAPIサイトにアクセスし、"Apply for a new API Key"にて
|
31
|
+
# 新しいAPIキーを生成します。
|
32
|
+
# http://www.flickr.com/services/api/keys/
|
33
|
+
#
|
34
|
+
# Authentication TypeはAuthentication Typeを選択してください。
|
35
|
+
#
|
36
|
+
#
|
37
|
+
# 2. tDiaryデータフォルダのバックアップ
|
38
|
+
#
|
39
|
+
# このマイグレーションツールはtDiaryの日記データを書き換えます。
|
40
|
+
# 古い日記データを残す仕様ですが、万が一に備えて
|
41
|
+
# 事前にtDiaryのデータフォルダをバックアップしてください。
|
42
|
+
#
|
43
|
+
#
|
44
|
+
# 3. rflickrライブラリの取得
|
45
|
+
#
|
46
|
+
# このマイグレーションツールはFlickrへの写真のアップロードに
|
47
|
+
# rflickrライブラリを使用します。
|
48
|
+
# 以下のサイトからrflickrライブラリを取得して、インストールしてください。
|
49
|
+
# http://rubyforge.org/projects/rflickr/
|
50
|
+
#
|
51
|
+
# RubyGemsが利用できる場合は、以下のコマンドでインストールできます。
|
52
|
+
# $ gem install rflickr
|
53
|
+
#
|
54
|
+
#
|
55
|
+
# 4. マイグレーションツールの設定
|
56
|
+
#
|
57
|
+
# image2flickr.rbをエディタで開き、以下の4つのパラメータを設定します。
|
58
|
+
#
|
59
|
+
# # FlickrのAPIキー
|
60
|
+
# @api_key = '123456789012345678901234567890'
|
61
|
+
# # Flickr APIのシークレットキー
|
62
|
+
# @secret = '1234567890'
|
63
|
+
# # tDiaryのデータフォルダ
|
64
|
+
# @data_path = '/var/tdiary'
|
65
|
+
# # tDiaryのイメージフォルダ
|
66
|
+
# @image_dir = '/var//www/tdiary/images'
|
67
|
+
#
|
68
|
+
#
|
69
|
+
# 5. マイグレーションツールの実行
|
70
|
+
#
|
71
|
+
# tDiaryのデータフォルダに書き込む権限を持つアカウントで、
|
72
|
+
# コマンドラインからimage2flickr.rbを実行してください。
|
73
|
+
# $ ./image2flickr
|
74
|
+
#
|
75
|
+
# すると、以下のメッセージが表示されます。
|
76
|
+
# ----
|
77
|
+
# Flickrへ写真をアップロードするためのトークンを取得します。
|
78
|
+
# Webブラウザで下記のURLへアクセスしたら、何かキーを押してください。
|
79
|
+
# http://www.flickr.com/services/auth/?api_sig=....
|
80
|
+
# ----
|
81
|
+
#
|
82
|
+
# 指定されたURLへWebブラウザでアクセスし、トークンの発行を許可してください。
|
83
|
+
# コマンドラインへ戻り何かキーを押すと、マイグレーションが始まります。
|
84
|
+
#
|
85
|
+
# なお、ツールを途中で中断し、2回目に実行するときはトークンを取得する
|
86
|
+
# 必要はありません。
|
87
|
+
#
|
88
|
+
#
|
89
|
+
# 6. 実行結果の確認
|
90
|
+
#
|
91
|
+
# ツールが終了したらtDiaryのデータフォルダを開き、
|
92
|
+
# imageプラグインの呼び出しがflickrプラグインの呼び出しへ
|
93
|
+
# 置き換わっていることを確認してください。
|
94
|
+
# 古い日記データは .bak.20081024090000 などの拡張子がついて
|
95
|
+
# バックアップされていますので、問題があれば元に戻してください。
|
96
|
+
#
|
97
|
+
# ツールを実行すると、以下の2つのファイルが作成されます。
|
98
|
+
# (1) flickr.token
|
99
|
+
# Flickrへ写真をアップロードするためのトークン。
|
100
|
+
# (2) image2flickr.yaml
|
101
|
+
# tDiaryのイメージフォルダに存在するJPEGファイル (ex. 20081025_0.jpg) と
|
102
|
+
# Flickrへアップロードしたphoto_idの対応付けを記録したファイル。
|
103
|
+
#
|
104
|
+
# これらのファイルは、マイグレーションツールを途中で中断したときのために
|
105
|
+
# 用意されています。
|
106
|
+
# マイグレーションが完了したら、少なくともflickr.tokenは削除してください。
|
107
|
+
# (トークンの不正利用を防ぐためです)
|
108
|
+
#
|
109
|
+
#
|
110
|
+
$KCODE = 'utf8'
|
111
|
+
begin
|
112
|
+
require 'rubygems'
|
113
|
+
gem 'rflickr'
|
114
|
+
rescue
|
115
|
+
end
|
116
|
+
require 'flickr'
|
117
|
+
require 'yaml/store'
|
118
|
+
require 'tempfile'
|
119
|
+
require 'fileutils'
|
120
|
+
|
121
|
+
# FlickrのAPIキー
|
122
|
+
@api_key = '123456789012345678901234567890'
|
123
|
+
# Flickr APIのシークレットキー
|
124
|
+
@secret = '1234567890'
|
125
|
+
# tDiaryのデータフォルダ
|
126
|
+
@data_path = '/var/tdiary'
|
127
|
+
# tDiaryのイメージフォルダ
|
128
|
+
@image_dir = '/var/www/tdiary/images'
|
129
|
+
|
130
|
+
|
131
|
+
def main
|
132
|
+
uploader = FlickrUploder.new('image2flickr.yaml', 'flickr.token', @api_key, @secret)
|
133
|
+
parser = TDiaryParser.new(@data_path)
|
134
|
+
i2f = Image2Flickr.new(parser, uploader, @image_dir)
|
135
|
+
# tDiaryのimagesフォルダから対象日記を取得
|
136
|
+
files = Dir.glob("#{@image_dir}/*.{jp{,e}g,png,gif}").map{|file|
|
137
|
+
File.basename(file).match(/^(\d{6})/)
|
138
|
+
$1
|
139
|
+
}.compact.uniq
|
140
|
+
# 対象日記を変換
|
141
|
+
files.each do |file|
|
142
|
+
i2f.convert(file)
|
143
|
+
end
|
144
|
+
|
145
|
+
# cache のクリア
|
146
|
+
Dir["#{@data_path}/cache/*.rb"].each{|f| FileUtils.rm_f( f )}
|
147
|
+
Dir["#{@data_path}/cache/*.parser"].each{|f| FileUtils.rm_f( f )}
|
148
|
+
end
|
149
|
+
|
150
|
+
# Flickrへ写真をアップロードし、元ファイル名とphoto_idのペアをYAMLに記録する
|
151
|
+
class FlickrUploder
|
152
|
+
def initialize(yaml, token, api_key, secret)
|
153
|
+
@flickr = Flickr.new(token, api_key, secret)
|
154
|
+
# トークンが無ければ取得する
|
155
|
+
unless @flickr.auth.token
|
156
|
+
puts "Flickrへ写真をアップロードするためのトークンを取得します。"
|
157
|
+
puts "Webブラウザで下記のURLへアクセスしたら、何かキーを押してください。"
|
158
|
+
puts @flickr.auth.login_link
|
159
|
+
# キー入力待ち
|
160
|
+
gets
|
161
|
+
@flickr.auth.getToken
|
162
|
+
@flickr.auth.cache_token
|
163
|
+
puts "トークンを取得し、#{token} へ保存しました。"
|
164
|
+
puts
|
165
|
+
end
|
166
|
+
|
167
|
+
@db = YAML::Store.new(yaml)
|
168
|
+
@db.transaction {
|
169
|
+
@db['photos'] ||= {}
|
170
|
+
}
|
171
|
+
end
|
172
|
+
|
173
|
+
# Flickrへ写真をアップロードする
|
174
|
+
def upload(file, title)
|
175
|
+
id = 0
|
176
|
+
@db.transaction {
|
177
|
+
basename = File.basename(file)
|
178
|
+
if @db['photos'][basename]
|
179
|
+
# アップロード済みの場合はスキップ
|
180
|
+
STDERR.puts "passed updating #{basename} (#{title}) ..."
|
181
|
+
id = @db['photos'][basename]
|
182
|
+
@db.abort
|
183
|
+
else
|
184
|
+
# 写真をアップロードする
|
185
|
+
STDERR.puts "updating #{basename} (#{title}) ..."
|
186
|
+
id = @flickr.photos.upload.upload_file(file, title)
|
187
|
+
@db['photos'][basename] = id
|
188
|
+
end
|
189
|
+
}
|
190
|
+
id
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
class TDiaryParser
|
195
|
+
include FileUtils
|
196
|
+
|
197
|
+
def initialize(data_path)
|
198
|
+
@data_path = data_path
|
199
|
+
end
|
200
|
+
|
201
|
+
# tDiaryの日記を置換する
|
202
|
+
# 拡張子に ".bak.yyyymmddHHMMSS" を付けて日記データをバックアップする
|
203
|
+
def each_diary(yearmonth)
|
204
|
+
yearmonth.match(/(\d{4})(\d{2})/)
|
205
|
+
year = $1
|
206
|
+
month = $2
|
207
|
+
file = "#{@data_path}/#{year}/#{yearmonth}.td2"
|
208
|
+
# ファイルをバックアップ
|
209
|
+
backup = "#{file}.bak.#{Time.now.strftime('%Y%m%d%H%M%S')}"
|
210
|
+
cp(file, backup, :preserve => true)
|
211
|
+
# 一時ファイルを生成
|
212
|
+
tmp = Tempfile.new('tmp')
|
213
|
+
open(file) do |fin|
|
214
|
+
fin.each('') do |headers|
|
215
|
+
date = headers.grep(/^Date:\s*(\d{4}\d{2}\d{2})/){$1}[0]
|
216
|
+
diary = fin.gets("\n.\n")
|
217
|
+
diary = yield(date, diary)
|
218
|
+
tmp.print headers
|
219
|
+
tmp.print diary
|
220
|
+
end
|
221
|
+
end
|
222
|
+
tmp.close
|
223
|
+
cp(tmp.path, file)
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
class Image2Flickr
|
228
|
+
def initialize(parser, uploader, image_dir)
|
229
|
+
@parser = parser
|
230
|
+
@uploader = uploader
|
231
|
+
@image_dir = image_dir
|
232
|
+
end
|
233
|
+
|
234
|
+
# imageプラグインをflickrプラグインへ置き換える
|
235
|
+
def convert(yearmonth)
|
236
|
+
@parser.each_diary(yearmonth) do |@date, diary|
|
237
|
+
# 現在はWiki記法のみ対応
|
238
|
+
diary.gsub!(/\{\{(image[^}]+)\}\}/) {|match|
|
239
|
+
begin
|
240
|
+
STDERR.puts "found: #{match}"
|
241
|
+
# image, image_left, image_right のいずれかに対応
|
242
|
+
replace = "{{#{eval($1)}}}"
|
243
|
+
STDERR.puts "replace: #{replace}"
|
244
|
+
STDERR.puts
|
245
|
+
replace
|
246
|
+
rescue => e
|
247
|
+
# 例外が発生したら置換しない
|
248
|
+
STDERR.puts "ERROR: #{e}"
|
249
|
+
STDERR.puts
|
250
|
+
match
|
251
|
+
end
|
252
|
+
}
|
253
|
+
diary
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
def image( index, title = nil, thumbnail = nil, size = nil, place = 'photo' )
|
258
|
+
replace("flickr", @date, index, title)
|
259
|
+
end
|
260
|
+
|
261
|
+
def image_center( index, title = nil, thumbnail = nil, size = nil, place = 'photo' )
|
262
|
+
replace("flickr", @date, index, title)
|
263
|
+
end
|
264
|
+
|
265
|
+
def image_left( index, title = nil, thumbnail = nil, size = nil, place = 'photo' )
|
266
|
+
replace("flickr_left", @date, index, title)
|
267
|
+
end
|
268
|
+
|
269
|
+
def image_right( index, title = nil, thumbnail = nil, size = nil, place = 'photo' )
|
270
|
+
replace("flickr_right", @date, index, title)
|
271
|
+
end
|
272
|
+
|
273
|
+
def replace(method, date, index, title)
|
274
|
+
file = Dir.glob("#{@image_dir}/#{date}_#{index}.{jp{,e}g,png,gif}").shift
|
275
|
+
# タイトルが未指定の場合はファイル名
|
276
|
+
title ||= File.basename(file)
|
277
|
+
id = @uploader.upload(file, title)
|
278
|
+
"#{method} #{id}"
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
282
|
+
main
|
@@ -0,0 +1,12 @@
|
|
1
|
+
posttdiary.rb is a updater of diary via E-mail with images.
|
2
|
+
|
3
|
+
see:
|
4
|
+
http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?posttdiary%2Erb
|
5
|
+
|
6
|
+
--
|
7
|
+
|
8
|
+
posttdiary-ex.rb is a more enhanced posttdiary.rb.
|
9
|
+
|
10
|
+
see:
|
11
|
+
http://ks.nwr.jp/wiki/wiki.cgi?posttdiary%2erb%b2%fe%c2%a4 (Japanese)
|
12
|
+
http://ks.nwr.jp/prog/posttdiary.html (English)
|