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,59 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Copyright (C) 2011, KADO Masanori <kdmsnr@gmail.com>
|
3
|
+
# You can redistribute it and/or modify it under GPL.
|
4
|
+
|
5
|
+
add_header_proc do
|
6
|
+
<<-HTML
|
7
|
+
<meta property="fb:admins" content="#{h @conf['facebook_comments.YOUR_FACEBOOK_USER_ID']}"/>
|
8
|
+
<meta property="fb:app_id" content="#{h @conf['facebook_comments.YOUR_APPLICATION_ID']}">
|
9
|
+
HTML
|
10
|
+
end
|
11
|
+
|
12
|
+
def facebook_comments(href = '')
|
13
|
+
<<-HTML
|
14
|
+
<div id="fb-root"></div><script src="http://connect.facebook.net/ja_JP/all.js#appId=#{h @conf['facebook_comments.YOUR_APPLICATION_ID']}&xfbml=1"></script><fb:comments href="#{h href}" num_posts="#{h @conf['facebook_comments.num_posts']}" width="#{h @conf['facebook_comments.width']}"></fb:comments>
|
15
|
+
HTML
|
16
|
+
end
|
17
|
+
|
18
|
+
add_body_leave_proc do |date|
|
19
|
+
if @mode == 'day'
|
20
|
+
href = @conf.base_url + anchor( @date.strftime('%Y%m%d') )
|
21
|
+
facebook_comments(href)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
add_conf_proc( 'Facebook Comments', 'Facebook Comments', 'etc' ) do
|
26
|
+
if @mode == 'saveconf' then
|
27
|
+
@conf['facebook_comments.YOUR_FACEBOOK_USER_ID'] =
|
28
|
+
@cgi.params['facebook_comments.YOUR_FACEBOOK_USER_ID'][0]
|
29
|
+
@conf['facebook_comments.YOUR_APPLICATION_ID'] =
|
30
|
+
@cgi.params['facebook_comments.YOUR_APPLICATION_ID'][0]
|
31
|
+
@conf['facebook_comments.num_posts'] =
|
32
|
+
@cgi.params['facebook_comments.num_posts'][0]
|
33
|
+
@conf['facebook_comments.width'] =
|
34
|
+
@cgi.params['facebook_comments.width'][0]
|
35
|
+
end
|
36
|
+
|
37
|
+
<<-HTML
|
38
|
+
<h3>YOUR_FACEBOOK_USER_ID</h3>
|
39
|
+
<p><input size="88" name="facebook_comments.YOUR_FACEBOOK_USER_ID" value="#{h @conf['facebook_comments.YOUR_FACEBOOK_USER_ID']}"></p>
|
40
|
+
|
41
|
+
<h3>YOUR_APPLICATION_ID</h3>
|
42
|
+
<p><input size="88" name="facebook_comments.YOUR_APPLICATION_ID" value="#{h @conf['facebook_comments.YOUR_APPLICATION_ID']}"></p>
|
43
|
+
|
44
|
+
<h3>num posts</h3>
|
45
|
+
<p><input size="20" name="facebook_comments.num_posts" value="#{h @conf['facebook_comments.num_posts']}"></p>
|
46
|
+
|
47
|
+
<h3>width</h3>
|
48
|
+
<p><input size="20" name="facebook_comments.width" value="#{h @conf['facebook_comments.width']}"></p>
|
49
|
+
HTML
|
50
|
+
end
|
51
|
+
|
52
|
+
# Local Variables:
|
53
|
+
# mode: ruby
|
54
|
+
# indent-tabs-mode: t
|
55
|
+
# tab-width: 3
|
56
|
+
# ruby-indent-level: 3
|
57
|
+
# End:
|
58
|
+
# vim: ts=3
|
59
|
+
|
data/plugin/flickr.rb
ADDED
@@ -0,0 +1,209 @@
|
|
1
|
+
# show photo image on Flickr.com
|
2
|
+
#
|
3
|
+
# usage:
|
4
|
+
# flickr(photo_id[, size[, place]])
|
5
|
+
# - photo_id: The id of the photo to show.
|
6
|
+
# - size: Size of photo. (optional)
|
7
|
+
# Choose from square, thumbnail, small, medium, or large.
|
8
|
+
# - place: class name of img element. default is 'flickr'.
|
9
|
+
#
|
10
|
+
# flickr_left(photo_id[, size])
|
11
|
+
#
|
12
|
+
# flickr_right(photo_id[, size])
|
13
|
+
#
|
14
|
+
# options configurable through settings:
|
15
|
+
# @conf['flickr.apikey'] : a key for access Flickr API
|
16
|
+
# @conf['flickr.default_size'] : default image size
|
17
|
+
#
|
18
|
+
# Copyright (c) MATSUOKA Kohei <http://www.machu.jp/>
|
19
|
+
# Distributed under the GPL
|
20
|
+
#
|
21
|
+
require 'net/http'
|
22
|
+
require 'digest/md5'
|
23
|
+
require 'rexml/document'
|
24
|
+
|
25
|
+
@conf['flickr.apikey'] ||= 'f7e7fb8cc34e52db3e5af5e1727d0c0b'
|
26
|
+
@conf['flickr.default_size'] ||= 'medium'
|
27
|
+
|
28
|
+
if /\A(form|edit|preview|showcomment)\z/ === @mode then
|
29
|
+
enable_js('flickr.js')
|
30
|
+
add_js_setting('$tDiary.plugin.flickr')
|
31
|
+
add_js_setting('$tDiary.plugin.flickr.apiKey', %Q|'#{@conf['flickr.apikey']}'|)
|
32
|
+
add_js_setting('$tDiary.plugin.flickr.userId', %Q|'#{@conf['flickr.user_id']}'|)
|
33
|
+
end
|
34
|
+
|
35
|
+
def flickr(photo_id, size = nil, place = 'flickr')
|
36
|
+
if @conf['flickr.apikey'] == nil || @conf['flickr.apikey'].empty?
|
37
|
+
return '[ERROR] flickr.rb: API Key is not specified.'
|
38
|
+
end
|
39
|
+
size ||= @conf['flickr.default_size']
|
40
|
+
size = 'small' if @conf.iphone?
|
41
|
+
photo = flickr_photo_info(photo_id.to_s, size)
|
42
|
+
unless photo
|
43
|
+
return '[ERROR] flickr.rb: failed to get photo.'
|
44
|
+
end
|
45
|
+
|
46
|
+
if @cgi.mobile_agent?
|
47
|
+
body = %Q|<a href="#{photo[:src]}" class="flickr">#{photo[:title]}</a>|
|
48
|
+
else
|
49
|
+
body = %Q|<a href="#{photo[:page]}" class="flickr"><img title="#{photo[:title]}" alt="#{photo[:title]}" src="#{photo[:src]}" class="#{place}"|
|
50
|
+
unless @conf.iphone?
|
51
|
+
body << %Q| width="#{photo[:width]}"| if photo[:width]
|
52
|
+
body << %Q| height="#{photo[:height]}"| if photo[:height]
|
53
|
+
end
|
54
|
+
body << %Q|></a>|
|
55
|
+
end
|
56
|
+
|
57
|
+
body
|
58
|
+
end
|
59
|
+
|
60
|
+
def flickr_left(photo_id, size = nil)
|
61
|
+
flickr(photo_id, size, 'left')
|
62
|
+
end
|
63
|
+
|
64
|
+
def flickr_right(photo_id, size = nil)
|
65
|
+
flickr(photo_id, size, 'right')
|
66
|
+
end
|
67
|
+
|
68
|
+
def flickr_photo_info(photo_id, size)
|
69
|
+
photo = {}
|
70
|
+
|
71
|
+
begin
|
72
|
+
flickr_open('flickr.photos.getInfo', photo_id) {|f|
|
73
|
+
res = REXML::Document.new(f)
|
74
|
+
photo[:page] = res.elements['//rsp/photo/urls/url'].text
|
75
|
+
photo[:title] = res.elements['//rsp/photo/title'].text
|
76
|
+
}
|
77
|
+
flickr_open('flickr.photos.getSizes', photo_id) {|f|
|
78
|
+
res = REXML::Document.new(f)
|
79
|
+
res.elements.each('//rsp/sizes/size') do |s|
|
80
|
+
if s.attributes['label'].downcase == size.downcase
|
81
|
+
photo[:src] = s.attributes['source']
|
82
|
+
photo[:width] = s.attributes['width']
|
83
|
+
photo[:height] = s.attributes['height']
|
84
|
+
end
|
85
|
+
end
|
86
|
+
}
|
87
|
+
rescue Exception => e
|
88
|
+
return nil
|
89
|
+
end
|
90
|
+
photo
|
91
|
+
end
|
92
|
+
|
93
|
+
def flickr_open(method, photo_id)
|
94
|
+
cache_dir = "#{@cache_path}/flickr"
|
95
|
+
Dir::mkdir(cache_dir) unless File::directory?(cache_dir)
|
96
|
+
|
97
|
+
file = "#{cache_dir}/#{photo_id}.#{method}"
|
98
|
+
unless File.exist?(file)
|
99
|
+
req = Flickr::Request.new(@conf['flickr.apikey'])
|
100
|
+
req['method'] = method
|
101
|
+
req['photo_id'] = photo_id
|
102
|
+
begin
|
103
|
+
timeout(5) do
|
104
|
+
open(file, 'w') {|fout|
|
105
|
+
fout.puts req.open
|
106
|
+
}
|
107
|
+
end
|
108
|
+
rescue TimeoutError => e
|
109
|
+
File.delete(file)
|
110
|
+
raise e
|
111
|
+
end
|
112
|
+
end
|
113
|
+
open(file) {|f| yield f }
|
114
|
+
end
|
115
|
+
|
116
|
+
# delete cache files
|
117
|
+
def flickr_clear_cache
|
118
|
+
cache_dir = "#{@cache_path}/flickr"
|
119
|
+
Dir.glob("#{cache_dir}/*.flickr.photos.{getInfo,getSizes}") do |cache|
|
120
|
+
# File.unlink(cache)
|
121
|
+
File.rename(cache, "#{cache}.org")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
FLICKER_FORM_PID = 'plugin_flickr_pid'
|
126
|
+
add_edit_proc do |date|
|
127
|
+
<<-FORM
|
128
|
+
<div id="flickr_form" style="margin: 1em 0">
|
129
|
+
<div>
|
130
|
+
Flickr: <input type="text" id="flickr_search_text">
|
131
|
+
<select id="flickr_search_count">
|
132
|
+
<option value="10">10</option>
|
133
|
+
<option value="20">20</option>
|
134
|
+
<option value="30">30</option>
|
135
|
+
<option value="40">40</option>
|
136
|
+
<option value="50">50</option>
|
137
|
+
</select>
|
138
|
+
件
|
139
|
+
<input id="flickr_search" type="button" value="Get flickr photos"></input>
|
140
|
+
</div>
|
141
|
+
<div id="flickr_photo_size">
|
142
|
+
Photo size:
|
143
|
+
<input type="radio" id="flickr_photo_size_square" name="flickr_photo_size" value="square">
|
144
|
+
<label for="flickr_photo_size_square">square</label>
|
145
|
+
<input type="radio" id="flickr_photo_size_thumbnail" name="flickr_photo_size" value="thumbnail">
|
146
|
+
<label for="flickr_photo_size_thumbnail">thumbnail</label>
|
147
|
+
<input type="radio" id="flickr_photo_size_small" name="flickr_photo_size" value="small">
|
148
|
+
<label for="flickr_photo_size_small">small</label>
|
149
|
+
<input type="radio" id="flickr_photo_size_medium" name="flickr_photo_size" value="medium" checked="true">
|
150
|
+
<label for="flickr_photo_size_medium">medium</label>
|
151
|
+
<input type="radio" id="flickr_photo_size_medium640" name="flickr_photo_size" value="medium 640">
|
152
|
+
<label for="flickr_photo_size_medium640">medium 640</label>
|
153
|
+
<input type="radio" id="flickr_photo_size_large" name="flickr_photo_size" value="large">
|
154
|
+
<label for="flickr_photo_size_large">large</label>
|
155
|
+
</div>
|
156
|
+
<div id="flickr_photos" style="margin: 1em">
|
157
|
+
<!-- <img src="dummy" height="100" width="100" title="dummy"> -->
|
158
|
+
</div>
|
159
|
+
</div>
|
160
|
+
FORM
|
161
|
+
end
|
162
|
+
|
163
|
+
def flickr_slideshow(tag, id = nil)
|
164
|
+
id ||= @conf['flickr.id']
|
165
|
+
return unless id
|
166
|
+
%Q|<iframe align="center" src="http://www.flickr.com/slideShow/index.gne?user_id=#{id}&tags=#{tag}" frameBorder="0" width="500" scrolling="no" height="500"></iframe>|
|
167
|
+
end
|
168
|
+
|
169
|
+
def flickr_slideshow_by_set(set_id)
|
170
|
+
return unless set_id
|
171
|
+
%Q|<iframe align="center" src="http://www.flickr.com/slideShow/index.gne?set_id=#{set_id}" frameBorder="0" width="500" scrolling="no" height="500"></iframe>|
|
172
|
+
end
|
173
|
+
|
174
|
+
module Flickr
|
175
|
+
class Request < Hash
|
176
|
+
def initialize(api_key, secret = nil)
|
177
|
+
self['api_key'] = api_key
|
178
|
+
@secret = secret
|
179
|
+
end
|
180
|
+
|
181
|
+
def open
|
182
|
+
Net::HTTP.version_1_2
|
183
|
+
Net::HTTP.start('www.flickr.com') {|http|
|
184
|
+
response = http.get(query)
|
185
|
+
response.body
|
186
|
+
}
|
187
|
+
end
|
188
|
+
|
189
|
+
def query
|
190
|
+
sign = @secret ? "&api_sig=#{signature}" : ''
|
191
|
+
base_path + sort.map{|key, val| "#{key}=#{val}" }.join('&') + sign
|
192
|
+
end
|
193
|
+
|
194
|
+
def signature
|
195
|
+
data = sort.map{|key, val| "#{key}#{val}" }.join
|
196
|
+
Digest::MD5.hexdigest("#{@secret}#{data}")
|
197
|
+
end
|
198
|
+
|
199
|
+
def base_path
|
200
|
+
'/services/rest/?'
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
class RequestAuth < Request
|
205
|
+
def base_path
|
206
|
+
'/services/auth/?'
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
data/plugin/gist.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# show code snippet via gist.github.com
|
2
|
+
#
|
3
|
+
# usage:
|
4
|
+
# gist(gist_id)
|
5
|
+
# - gist_id: The id of the code snippet on gitst.github.com (e.g. 2056 for http://gist.github.com/2056)
|
6
|
+
#
|
7
|
+
# Copyright (c) KAKUTANI Shintaro <http://kakutani.com/>
|
8
|
+
# Distributed under the GPL
|
9
|
+
|
10
|
+
def gist( gist_id )
|
11
|
+
gist_snippet_url = "http://gist.github.com/#{gist_id}"
|
12
|
+
return (<<-EOS).chomp
|
13
|
+
<div class="gist_plugin"><script src="#{gist_snippet_url}.js"></script>
|
14
|
+
<noscript><a href="#{gist_snippet_url}">gist:#{gist_id}</a></noscript></div>
|
15
|
+
EOS
|
16
|
+
end
|
@@ -0,0 +1,240 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# git-register.rb
|
4
|
+
#
|
5
|
+
# Copyright (C) 2011 hajime miyauchi <hajime.miyauchi@gmail.com>
|
6
|
+
# You can redistribute it and/or modify it under GPL2.
|
7
|
+
#
|
8
|
+
# tDiaryのデータを日別でGitに登録するプラグインです
|
9
|
+
#
|
10
|
+
# 1. プラグインディレクトリ(例: plugin)にgit-register.rbを設置。
|
11
|
+
# 2. プラグインディレクトリにja/git-register.rb、en/git-register.rbを設置。
|
12
|
+
# 3. tdiary.confにリポジトリを指定(リポジトリの場所を/var/git-respoと仮定)
|
13
|
+
# @options["git.repository_dir"] = "/var/git-repos"
|
14
|
+
# 4. リポジトリを作成(Apacheの起動ユーザをapacheと仮定)
|
15
|
+
# $ mkdir /var/git-repos
|
16
|
+
# $ cd /var/git-repos
|
17
|
+
# $ git init
|
18
|
+
# $ git config user.name "自分の名前"
|
19
|
+
# $ git config user.email "メールアドレス"
|
20
|
+
# $ chown apache.apache -R /var/git-repos
|
21
|
+
# 5. リポジトリに一括commit(tDiaryのインストールディレクトリを/var/www/tdiaryと仮定)
|
22
|
+
# $ cd /var/www/tdiary
|
23
|
+
# $ ruby --encoding=UTF-8 git-register.rb
|
24
|
+
#
|
25
|
+
|
26
|
+
mode = ""
|
27
|
+
if $0 == __FILE__
|
28
|
+
require 'cgi'
|
29
|
+
ARGV << '' # dummy argument against cgi.rb offline mode.
|
30
|
+
@cgi = CGI::new
|
31
|
+
mode = "CMD"
|
32
|
+
else
|
33
|
+
mode = "PLUGIN"
|
34
|
+
end
|
35
|
+
|
36
|
+
if mode == "PLUGIN"
|
37
|
+
add_body_leave_proc do |date|
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
unless $tdiary_git_register_loaded
|
42
|
+
$tdiary_git_register_loaded ||= true
|
43
|
+
|
44
|
+
if mode == "CMD"
|
45
|
+
tdiary_path = "."
|
46
|
+
tdiary_conf = "."
|
47
|
+
$stdout.sync = true
|
48
|
+
|
49
|
+
def usage
|
50
|
+
puts "git-register.rb"
|
51
|
+
puts " register to git index files from tDiary's database."
|
52
|
+
puts " usage: ruby --encoding=UTF-8 git-register.rb [-p <tDiary directory>] [-c <tdiary.conf directory>]"
|
53
|
+
exit
|
54
|
+
end
|
55
|
+
|
56
|
+
require 'getoptlong'
|
57
|
+
parser = GetoptLong::new
|
58
|
+
parser.set_options(['--path', '-p', GetoptLong::REQUIRED_ARGUMENT], ['--conf', '-c', GetoptLong::REQUIRED_ARGUMENT])
|
59
|
+
begin
|
60
|
+
parser.each do |opt, arg|
|
61
|
+
case opt
|
62
|
+
when '--path'
|
63
|
+
tdiary_path = arg
|
64
|
+
when '--conf'
|
65
|
+
tdiary_conf = arg
|
66
|
+
end
|
67
|
+
end
|
68
|
+
rescue
|
69
|
+
usage
|
70
|
+
exit( 1 )
|
71
|
+
end
|
72
|
+
|
73
|
+
tdiary_conf = tdiary_path unless tdiary_conf
|
74
|
+
Dir::chdir( tdiary_conf )
|
75
|
+
|
76
|
+
begin
|
77
|
+
$:.unshift tdiary_path
|
78
|
+
require "#{tdiary_path}/tdiary"
|
79
|
+
rescue LoadError
|
80
|
+
$stderr.puts "git-register.rb: cannot load tdiary.rb. <#{tdiary_path}/tdiary>\n"
|
81
|
+
$stderr.puts " usage: ruby --encoding=UTF-8 git-register.rb [-p <tDiary directory>] [-c <tdiary.conf directory>]"
|
82
|
+
exit( 1 )
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
module ::TDiary
|
87
|
+
#
|
88
|
+
# Register
|
89
|
+
#
|
90
|
+
class GitRegister < TDiaryBase
|
91
|
+
def initialize(repository_dir, diary)
|
92
|
+
@repository_dir = repository_dir
|
93
|
+
@diary = diary
|
94
|
+
@date = diary.date
|
95
|
+
end
|
96
|
+
|
97
|
+
def execute()
|
98
|
+
dir = @date.strftime("#{@repository_dir}%Y%m/")
|
99
|
+
Dir::mkdir( dir ) unless FileTest::directory?( dir )
|
100
|
+
|
101
|
+
td2_file = @date.strftime("#{dir}%Y%m%d.td2")
|
102
|
+
fh = File::open(td2_file, 'w')
|
103
|
+
|
104
|
+
fh.puts( "Date: #{@date}" )
|
105
|
+
fh.puts( "Title: #{@diary.title}" )
|
106
|
+
fh.puts( "Last-Modified: #{@diary.last_modified.to_i}" )
|
107
|
+
fh.puts( "Visible: #{@diary.visible? ? 'true' : 'false'}" )
|
108
|
+
fh.puts( "Format: #{@diary.style}" )
|
109
|
+
fh.puts
|
110
|
+
fh.puts( @diary.to_src.gsub( /\r/, '' ).gsub( /\n\./, "\n.." ) )
|
111
|
+
|
112
|
+
fh.close
|
113
|
+
|
114
|
+
# commit
|
115
|
+
require 'shellwords'
|
116
|
+
|
117
|
+
msg = "#{ENV['REMOTE_ADDR']} - #{ENV['REMOTE_HOST']}"
|
118
|
+
|
119
|
+
Dir.chdir("#{@repository_dir}") do
|
120
|
+
td2_file2 = @date.strftime("%Y%m/%Y%m%d.td2")
|
121
|
+
system("git add -- #{Shellwords.shellescape(td2_file2)}".untaint)
|
122
|
+
system("git commit -q -m \"#{msg}\" -- #{Shellwords.shellescape(td2_file2)}".untaint)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
protected
|
127
|
+
|
128
|
+
def mode; 'day'; end
|
129
|
+
def cookie_name; ''; end
|
130
|
+
def cookie_mail; ''; end
|
131
|
+
|
132
|
+
def convert(str)
|
133
|
+
str
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
#
|
138
|
+
# Main
|
139
|
+
#
|
140
|
+
class GitRegisterMain < TDiaryBase
|
141
|
+
def initialize(conf)
|
142
|
+
super(CGI::new, 'day.rhtml', conf)
|
143
|
+
end
|
144
|
+
|
145
|
+
def execute(out = $stdout)
|
146
|
+
require 'fileutils'
|
147
|
+
repository_dir = @conf['git.repository_dir']
|
148
|
+
calendar
|
149
|
+
@years.keys.sort.reverse_each do |year|
|
150
|
+
out << "(#{year.to_s}/) "
|
151
|
+
@years[year.to_s].sort.reverse_each do |month|
|
152
|
+
@io.transaction(Time::local(year.to_i, month.to_i)) do |diaries|
|
153
|
+
diaries.sort.reverse_each do |day, diary|
|
154
|
+
out << diary.date.strftime('%m%d ')
|
155
|
+
GitRegister.new(repository_dir, diary).execute
|
156
|
+
end
|
157
|
+
false
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
if mode == "CMD"
|
166
|
+
begin
|
167
|
+
require 'cgi'
|
168
|
+
if TDiary::Config.instance_method(:initialize).arity != 0
|
169
|
+
# for tDiary 2.1 or later
|
170
|
+
cgi = CGI.new
|
171
|
+
conf = TDiary::Config::new(cgi)
|
172
|
+
else
|
173
|
+
# for tDiary 2.0 or earlier
|
174
|
+
conf = TDiary::Config::new
|
175
|
+
end
|
176
|
+
conf.header = ''
|
177
|
+
conf.footer = ''
|
178
|
+
conf.show_comment = true
|
179
|
+
conf.hide_comment_form = true
|
180
|
+
conf.show_nyear = false
|
181
|
+
def conf.bot?; true; end
|
182
|
+
TDiary::GitRegisterMain.new(conf).execute
|
183
|
+
rescue
|
184
|
+
print $!, "\n"
|
185
|
+
$@.each do |v|
|
186
|
+
print v, "\n"
|
187
|
+
end
|
188
|
+
exit( 1 )
|
189
|
+
end
|
190
|
+
|
191
|
+
puts
|
192
|
+
else
|
193
|
+
add_update_proc do
|
194
|
+
conf = @conf.clone
|
195
|
+
conf.header = ''
|
196
|
+
conf.footer = ''
|
197
|
+
conf.show_comment = true
|
198
|
+
conf.hide_comment_form = true
|
199
|
+
conf.show_nyear = false
|
200
|
+
def conf.bot?; true; end
|
201
|
+
|
202
|
+
repository_dir = @conf['git.repository_dir']
|
203
|
+
diary = @diaries[@date.strftime('%Y%m%d')]
|
204
|
+
|
205
|
+
TDiary::GitRegister.new(repository_dir, diary).execute
|
206
|
+
end
|
207
|
+
|
208
|
+
if !@conf['git.hideconf'] && (@mode == 'conf' || @mode == 'saveconf')
|
209
|
+
args = ['git_register', @git_register_conf_label]
|
210
|
+
args << 'update' if TDIARY_VERSION > '2.1.3'
|
211
|
+
add_conf_proc(*args) do
|
212
|
+
str = <<-HTML
|
213
|
+
<h3 class="subtitle">#{@git_register_conf_header}</h3>
|
214
|
+
<p>
|
215
|
+
<label for="git_register_rebuild"><input id="git_register_rebuild" type="checkbox" name="git_register_rebuild" value="1">
|
216
|
+
#{@git_register_conf_description}</label>
|
217
|
+
</p>
|
218
|
+
HTML
|
219
|
+
if @mode == 'saveconf'
|
220
|
+
if @cgi.valid?( 'git_register_rebuild' )
|
221
|
+
str << '<p>The following diaries were registered.</p>'
|
222
|
+
out = ''
|
223
|
+
TDiary::GitRegisterMain.new(@conf).execute(out)
|
224
|
+
str << "<p>#{out}</p>"
|
225
|
+
end
|
226
|
+
end
|
227
|
+
str
|
228
|
+
end
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
end # $tdiary_git_register_loaded
|
233
|
+
|
234
|
+
# Local Variables:
|
235
|
+
# mode: ruby
|
236
|
+
# indent-tabs-mode: t
|
237
|
+
# tab-width: 3
|
238
|
+
# ruby-indent-level: 3
|
239
|
+
# End:
|
240
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Github Badge, by drnic plugin.
|
2
|
+
# http://drnicjavascript.rubyforge.org/github_badge/
|
3
|
+
#
|
4
|
+
# usage:
|
5
|
+
# github_badge(username, list_length, head, theme, title, show_all)
|
6
|
+
# - username: user name on github.com
|
7
|
+
# - list_length: project list length
|
8
|
+
# - theme: specify theme for badge. "white" or "black".
|
9
|
+
# - title: top text display on the badge.
|
10
|
+
# - show_all: 'Show All' message.
|
11
|
+
#
|
12
|
+
# Copyright (c) 2008 KAKUTANI Shintaro <http://kakutani.com/>
|
13
|
+
# Distributed under the GPL
|
14
|
+
|
15
|
+
def github_badge( username, list_length = 10, head = "div", theme = "white", title = "My Projects", show_all = "Show all" )
|
16
|
+
return (<<-EOS).chomp
|
17
|
+
<div id="github-badge"></div>
|
18
|
+
<script type="text/javascript" charset="utf-8">
|
19
|
+
GITHUB_USERNAME="#{ username }";
|
20
|
+
GITHUB_LIST_LENGTH=#{ list_length };
|
21
|
+
GITHUB_THEME="#{ theme }";
|
22
|
+
GITHUB_TITLE="#{ title }"
|
23
|
+
GITHUB_SHOW_ALL = "#{ show_all }"
|
24
|
+
</script>
|
25
|
+
<script src="http://drnicjavascript.rubyforge.org/github_badge/dist/github-badge-launcher.js" type="text/javascript"></script>
|
26
|
+
EOS
|
27
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
def gh_link(gh_identifier, text=nil)
|
2
|
+
text = gh_identifier.split('/').last if text.nil?
|
3
|
+
id_and_name, number = gh_identifier.split('#')
|
4
|
+
|
5
|
+
url = "https://github.com/#{id_and_name}"
|
6
|
+
url = url + "/issues/#{number}" if number
|
7
|
+
|
8
|
+
"<a href='#{url}'>#{h text}</a>"
|
9
|
+
end
|
data/plugin/goo_gl.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
#
|
2
|
+
# goo_gl.rb - shorten URL by goo.gl
|
3
|
+
#
|
4
|
+
# usage: shorten_url_you_got = goo_gl( 'long_url' ) || long_url
|
5
|
+
#
|
6
|
+
# Copyright (C) 2011, tamoot <tamoot+tdiary@gmail.com>
|
7
|
+
# You can redistribute it and/or modify it under GPL.
|
8
|
+
#
|
9
|
+
|
10
|
+
require 'json'
|
11
|
+
require 'net/https'
|
12
|
+
|
13
|
+
def goo_gl( long_url )
|
14
|
+
return nil if !long_url or long_url.empty?
|
15
|
+
|
16
|
+
# on memory
|
17
|
+
@goo_gl_cache ||= {} # cached only on memory
|
18
|
+
return @goo_gl_cache[long_url] if @goo_gl_cache[long_url]
|
19
|
+
|
20
|
+
# proxy
|
21
|
+
px_host, px_port = (@conf['proxy'] || '').split( /:/ )
|
22
|
+
px_port = 80 if px_host and !px_port
|
23
|
+
|
24
|
+
# params
|
25
|
+
params = {'longUrl' => long_url}.to_json
|
26
|
+
|
27
|
+
https = nil
|
28
|
+
begin
|
29
|
+
https = Net::HTTP::Proxy(px_host, px_port).new('www.googleapis.com', 443)
|
30
|
+
https.use_ssl = true
|
31
|
+
res, body = https.post("/urlshortener/v1/url", params, {'Content-Type' => 'application/json'})
|
32
|
+
@goo_gl_cache[long_url] = JSON::parse(body)["id"] if res.code == '200'
|
33
|
+
rescue Exception => e
|
34
|
+
# do nothing..
|
35
|
+
|
36
|
+
ensure
|
37
|
+
https.finish if https && https.started?
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
return @goo_gl_cache[long_url]
|
42
|
+
end
|