tdiary-contrib 3.2.2.20130518

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +13 -0
  5. data/Gemfile.lock +35 -0
  6. data/README.en.md +12 -0
  7. data/README.md +13 -0
  8. data/Rakefile +41 -0
  9. data/doc/en/filter/spambayes.txt +3 -0
  10. data/doc/en/plugin.txt +1 -0
  11. data/doc/en/style/hatena.txt +10 -0
  12. data/doc/en/style/markdown.txt +16 -0
  13. data/doc/en/util.txt +1 -0
  14. data/doc/ja/filter/antirefspam.history.txt +59 -0
  15. data/doc/ja/filter/antirefspam.txt +86 -0
  16. data/doc/ja/filter/comment_key.ja.html +182 -0
  17. data/doc/ja/filter/spambayes.txt +3 -0
  18. data/doc/ja/plugin/add_bookmark.txt +50 -0
  19. data/doc/ja/plugin/category_to_tag.txt +21 -0
  20. data/doc/ja/plugin/cocoment.txt +31 -0
  21. data/doc/ja/plugin/google_adsense.txt +25 -0
  22. data/doc/ja/plugin/google_analytics.txt +7 -0
  23. data/doc/ja/plugin/image_detail.txt +69 -0
  24. data/doc/ja/plugin/image_gps.txt +36 -0
  25. data/doc/ja/plugin/image_gps2.txt +41 -0
  26. data/doc/ja/plugin/livedoor_weather.txt +105 -0
  27. data/doc/ja/plugin/opensearch_ad.txt +16 -0
  28. data/doc/ja/plugin/section_footer.txt +84 -0
  29. data/doc/ja/plugin/select_theme.txt +1 -0
  30. data/doc/ja/plugin.txt +13 -0
  31. data/doc/ja/style/hatena.txt +10 -0
  32. data/doc/ja/style/markdown.txt +13 -0
  33. data/doc/ja/util.txt +12 -0
  34. data/filter/antirefspam.rb +263 -0
  35. data/filter/commentkey.rb +29 -0
  36. data/filter/commentsize.rb +18 -0
  37. data/filter/hidecomment.rb +13 -0
  38. data/filter/iplookup.rb +55 -0
  39. data/filter/plugin/antirefspam.rb +59 -0
  40. data/filter/plugin/commentkey.rb +58 -0
  41. data/filter/plugin/commentsize.rb +12 -0
  42. data/filter/plugin/en/iplookup.rb +9 -0
  43. data/filter/plugin/en/spambayes.rb +123 -0
  44. data/filter/plugin/iplookup.rb +39 -0
  45. data/filter/plugin/ja/antirefspam.rb +91 -0
  46. data/filter/plugin/ja/commentkey.rb +17 -0
  47. data/filter/plugin/ja/commentsize.rb +6 -0
  48. data/filter/plugin/ja/iplookup.rb +9 -0
  49. data/filter/plugin/ja/spambayes.rb +124 -0
  50. data/filter/plugin/spambayes.rb +501 -0
  51. data/filter/plugin/zh/iplookup.rb +9 -0
  52. data/filter/rblcheck.rb +36 -0
  53. data/filter/spambayes.rb +535 -0
  54. data/filter/spamlookup.rb +37 -0
  55. data/io/dbi_io/ChangeLog +19 -0
  56. data/io/dbi_io/README.ja +39 -0
  57. data/io/dbi_io/dbi_io.rb +181 -0
  58. data/io/dbi_io/plugin/refererDbiIO.rb +76 -0
  59. data/io/dbi_io/tdiary_table.sql +42 -0
  60. data/js/appstore.js +109 -0
  61. data/js/datepicker.js +69 -0
  62. data/js/editor.js +82 -0
  63. data/js/flickr.js +157 -0
  64. data/js/image_ex.js +79 -0
  65. data/js/jquery.socialbutton.js +842 -0
  66. data/js/nicovideo.js +17 -0
  67. data/js/picasa.js +322 -0
  68. data/js/plugin_checker.js +71 -0
  69. data/js/prettify/lang-apollo.js +2 -0
  70. data/js/prettify/lang-clj.js +18 -0
  71. data/js/prettify/lang-css.js +2 -0
  72. data/js/prettify/lang-go.js +1 -0
  73. data/js/prettify/lang-hs.js +2 -0
  74. data/js/prettify/lang-lisp.js +3 -0
  75. data/js/prettify/lang-lua.js +2 -0
  76. data/js/prettify/lang-ml.js +2 -0
  77. data/js/prettify/lang-n.js +4 -0
  78. data/js/prettify/lang-proto.js +1 -0
  79. data/js/prettify/lang-scala.js +2 -0
  80. data/js/prettify/lang-sql.js +2 -0
  81. data/js/prettify/lang-tex.js +1 -0
  82. data/js/prettify/lang-vb.js +2 -0
  83. data/js/prettify/lang-vhdl.js +3 -0
  84. data/js/prettify/lang-wiki.js +2 -0
  85. data/js/prettify/lang-xq.js +3 -0
  86. data/js/prettify/lang-yaml.js +2 -0
  87. data/js/prettify/prettify.css +1 -0
  88. data/js/prettify/prettify.js +28 -0
  89. data/js/referer.js +17 -0
  90. data/js/show_and_hide.js +39 -0
  91. data/js/socialbutton.js +126 -0
  92. data/js/twitter_anywhere.js +28 -0
  93. data/js/yahoo_kousei.js +21 -0
  94. data/lib/bayes/convert.rb +34 -0
  95. data/lib/bayes.rb +232 -0
  96. data/lib/exifparser/BUGS +1 -0
  97. data/lib/exifparser/ChangeLog +169 -0
  98. data/lib/exifparser/README +15 -0
  99. data/lib/exifparser/install.rb +1015 -0
  100. data/lib/exifparser/lib/exifparser/makernote/canon.rb +502 -0
  101. data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +415 -0
  102. data/lib/exifparser/lib/exifparser/makernote/minolta.rb +84 -0
  103. data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +39 -0
  104. data/lib/exifparser/lib/exifparser/makernote/nikon.rb +267 -0
  105. data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +581 -0
  106. data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +438 -0
  107. data/lib/exifparser/lib/exifparser/makernote/olympus.rb +225 -0
  108. data/lib/exifparser/lib/exifparser/makernote/prove.rb +84 -0
  109. data/lib/exifparser/lib/exifparser/makernote/sigma.rb +237 -0
  110. data/lib/exifparser/lib/exifparser/pre-setup.rb +1 -0
  111. data/lib/exifparser/lib/exifparser/scan.rb +278 -0
  112. data/lib/exifparser/lib/exifparser/tag.rb +2298 -0
  113. data/lib/exifparser/lib/exifparser/thumbnail.rb +76 -0
  114. data/lib/exifparser/lib/exifparser/utils.rb +88 -0
  115. data/lib/exifparser/lib/exifparser.rb +265 -0
  116. data/lib/exifparser/sample/exifview.rb +279 -0
  117. data/lib/tdiary-contrib.rb +19 -0
  118. data/lib/wgs2tky.rb +93 -0
  119. data/misc/section_footer2/buzzurl.yaml +6 -0
  120. data/misc/section_footer2/fc2.yaml +6 -0
  121. data/misc/section_footer2/ldc.yaml +6 -0
  122. data/misc/section_footer2/retweet.yaml +7 -0
  123. data/misc/section_footer2/twitter.yaml +7 -0
  124. data/misc/section_footer2/yahoo.yaml +6 -0
  125. data/misc/tdiarygraph/tdiarygraph120x90e.swf +0 -0
  126. data/misc/tdiarygraph/tdiarygraph125x125e.swf +0 -0
  127. data/misc/tdiarygraph/tdiarygraph240x180e.swf +0 -0
  128. data/misc/tdiarygraph/tdiarygraph468x60e.swf +0 -0
  129. data/misc/tdiarygraph/tdiarygraph728x90e.swf +0 -0
  130. data/misc/tdiarytimes/tdiarytimes125x125r.swf +0 -0
  131. data/misc/tdiarytimes/tdiarytimes125x125r7.swf +0 -0
  132. data/misc/tdiarytimes/tdiarytimes125x125s.swf +0 -0
  133. data/misc/tdiarytimes/tdiarytimes125x30.swf +0 -0
  134. data/misc/tdiarytimes/tdiarytimes234x30.swf +0 -0
  135. data/misc/tdiarytimes/tdiarytimes468x30.swf +0 -0
  136. data/plugin/add_bookmark.rb +89 -0
  137. data/plugin/apple_webclip.rb +26 -0
  138. data/plugin/appstore.rb +47 -0
  139. data/plugin/bigpresen.rb +86 -0
  140. data/plugin/bitly.rb +39 -0
  141. data/plugin/bootstrap-navi.rb +54 -0
  142. data/plugin/canonical.rb +9 -0
  143. data/plugin/category_similar.rb +73 -0
  144. data/plugin/category_to_tag.rb +60 -0
  145. data/plugin/category_to_tagcloud.rb +172 -0
  146. data/plugin/cocomment.rb +37 -0
  147. data/plugin/code-prettify.rb +23 -0
  148. data/plugin/coderwall.rb +34 -0
  149. data/plugin/datepicker.rb +28 -0
  150. data/plugin/day2section.rb +20 -0
  151. data/plugin/del_footer.rb +111 -0
  152. data/plugin/description_from_body.rb +23 -0
  153. data/plugin/development.rb +16 -0
  154. data/plugin/editor.rb +11 -0
  155. data/plugin/en/add_bookmark.rb +20 -0
  156. data/plugin/en/del_footer.rb +10 -0
  157. data/plugin/en/git-register.rb +3 -0
  158. data/plugin/en/livedoor_weather.rb +25 -0
  159. data/plugin/en/microsummary.rb +18 -0
  160. data/plugin/en/nicovideo.rb +38 -0
  161. data/plugin/en/openid.rb +8 -0
  162. data/plugin/en/section_footer.rb +6 -0
  163. data/plugin/en/section_footer2.rb +3 -0
  164. data/plugin/en/socialbutton.rb +5 -0
  165. data/plugin/everytrail.rb +39 -0
  166. data/plugin/facebook_comments.rb +59 -0
  167. data/plugin/flickr.rb +209 -0
  168. data/plugin/gist.rb +16 -0
  169. data/plugin/git-register.rb +240 -0
  170. data/plugin/github_badge.rb +27 -0
  171. data/plugin/github_link.rb +9 -0
  172. data/plugin/goo_gl.rb +42 -0
  173. data/plugin/google_adsense.rb +132 -0
  174. data/plugin/google_analytics.rb +39 -0
  175. data/plugin/google_map.rb +168 -0
  176. data/plugin/google_sitemaps.rb +60 -0
  177. data/plugin/google_webmaster.rb +22 -0
  178. data/plugin/hatena_bookmark_nocomment.rb +9 -0
  179. data/plugin/hatena_star.rb +66 -0
  180. data/plugin/hb_footer.rb +255 -0
  181. data/plugin/hb_footer4sec.rb +244 -0
  182. data/plugin/hb_footer4sec_js.rb +30 -0
  183. data/plugin/hide_comment_form.rb +4 -0
  184. data/plugin/hide_sidebar_iphone.rb +21 -0
  185. data/plugin/iddy.rb +81 -0
  186. data/plugin/image_detail.rb +143 -0
  187. data/plugin/image_ex.rb +462 -0
  188. data/plugin/image_gps.rb +128 -0
  189. data/plugin/inline_wiki.rb +6 -0
  190. data/plugin/instagr.rb +64 -0
  191. data/plugin/ja/add_bookmark.rb +20 -0
  192. data/plugin/ja/del_footer.rb +10 -0
  193. data/plugin/ja/flickr.rb +62 -0
  194. data/plugin/ja/git-register.rb +3 -0
  195. data/plugin/ja/google_sitemaps.rb +35 -0
  196. data/plugin/ja/livedoor_weather.rb +25 -0
  197. data/plugin/ja/microsummary.rb +18 -0
  198. data/plugin/ja/nicovideo.rb +41 -0
  199. data/plugin/ja/openid.rb +7 -0
  200. data/plugin/ja/section_footer.rb +6 -0
  201. data/plugin/ja/section_footer2.rb +4 -0
  202. data/plugin/ja/socialbutton.rb +6 -0
  203. data/plugin/jdate.rb +20 -0
  204. data/plugin/jholiday.rb +16 -0
  205. data/plugin/jmonth.rb +20 -0
  206. data/plugin/jquery_ui_theme.rb +55 -0
  207. data/plugin/jroku.rb +28 -0
  208. data/plugin/jyear.rb +37 -0
  209. data/plugin/latlonglab_route.rb +25 -0
  210. data/plugin/lazy_referer.rb +38 -0
  211. data/plugin/livedoor_weather.rb +180 -0
  212. data/plugin/make_link.rb +44 -0
  213. data/plugin/makerss_category.rb +43 -0
  214. data/plugin/makerss_comment.rb +35 -0
  215. data/plugin/microsummary.rb +62 -0
  216. data/plugin/mm_footer.rb +215 -0
  217. data/plugin/monthly_autopagerize.rb +67 -0
  218. data/plugin/my_hotentry.rb +132 -0
  219. data/plugin/navi_day.rb +118 -0
  220. data/plugin/navi_this_month.rb +15 -0
  221. data/plugin/nicovideo.rb +115 -0
  222. data/plugin/notify_miniblog.rb +134 -0
  223. data/plugin/ogp.rb +55 -0
  224. data/plugin/ohmsha_estore.rb +71 -0
  225. data/plugin/openid.rb +90 -0
  226. data/plugin/opensearch_ad.rb +33 -0
  227. data/plugin/picasa.rb +56 -0
  228. data/plugin/plugin_checker.rb +41 -0
  229. data/plugin/popit.rb +22 -0
  230. data/plugin/prettify.rb +19 -0
  231. data/plugin/prezi.rb +10 -0
  232. data/plugin/profile.rb +222 -0
  233. data/plugin/puboo.rb +93 -0
  234. data/plugin/pygments_css.rb +76 -0
  235. data/plugin/rating.rb +419 -0
  236. data/plugin/recent_estraier.rb +50 -0
  237. data/plugin/recent_tweet.rb +71 -0
  238. data/plugin/retweet.rb +86 -0
  239. data/plugin/rubykaigi.rb +99 -0
  240. data/plugin/search-bing.rb +87 -0
  241. data/plugin/search-default.rb +264 -0
  242. data/plugin/search-google-custom.rb +60 -0
  243. data/plugin/search-yahoo-websearch.rb +121 -0
  244. data/plugin/search-yahoo.rb +109 -0
  245. data/plugin/section_footer.rb +195 -0
  246. data/plugin/section_footer2.rb +278 -0
  247. data/plugin/section_permalink.rb +73 -0
  248. data/plugin/section_permalink_anchor.rb +39 -0
  249. data/plugin/select_style.rb +42 -0
  250. data/plugin/select_theme.rb +90 -0
  251. data/plugin/show_and_hide.rb +77 -0
  252. data/plugin/slideshare.rb +10 -0
  253. data/plugin/socialbutton.rb +60 -0
  254. data/plugin/tatsu_zine.rb +93 -0
  255. data/plugin/tdiarygraph_flashstyle.rb +296 -0
  256. data/plugin/tdiarytimes.rb +166 -0
  257. data/plugin/tdiarytimes2.rb +406 -0
  258. data/plugin/tdiarytimes_flashstyle.rb +263 -0
  259. data/plugin/tdiarytimes_textstyle.rb +290 -0
  260. data/plugin/title_anchor.rb +16 -0
  261. data/plugin/tweet_quote.rb +106 -0
  262. data/plugin/twitpic.rb +10 -0
  263. data/plugin/twitter.rb +46 -0
  264. data/plugin/twitter_anywhere.rb +209 -0
  265. data/plugin/twitter_badge.rb +42 -0
  266. data/plugin/twitter_js.rb +59 -0
  267. data/plugin/ustream.rb +19 -0
  268. data/plugin/vimeo.rb +14 -0
  269. data/plugin/volatile.rb +89 -0
  270. data/plugin/vote.rb +100 -0
  271. data/plugin/wikiloc.rb +27 -0
  272. data/plugin/windex.rb +512 -0
  273. data/plugin/yahoo_kousei.rb +79 -0
  274. data/plugin/yahoo_map.rb +97 -0
  275. data/plugin/youtube.rb +33 -0
  276. data/plugin/yshop.rb +189 -0
  277. data/plugin/zenback.rb +46 -0
  278. data/spec/apple_webclip_spec.rb +46 -0
  279. data/spec/fixtures/friendfeed.xml +2 -0
  280. data/spec/fixtures/github.json +1 -0
  281. data/spec/fixtures/twitter.xml +73 -0
  282. data/spec/gist_spec.rb +16 -0
  283. data/spec/github_link_spec.rb +39 -0
  284. data/spec/google_analytics_spec.rb +60 -0
  285. data/spec/jdate_spec.rb +23 -0
  286. data/spec/jmonth_spec.rb +28 -0
  287. data/spec/jyear_spec.rb +21 -0
  288. data/spec/my_hotentry_spec.rb +78 -0
  289. data/spec/openid_spec.rb +246 -0
  290. data/spec/opensearch_ad_spec.rb +50 -0
  291. data/spec/profile_spec.rb +88 -0
  292. data/spec/rcov.opts +2 -0
  293. data/spec/spec_helper.rb +223 -0
  294. data/spec/title_anchor_spec.rb +39 -0
  295. data/spec/twitter_js_spec.rb +116 -0
  296. data/spec/youtube_spec.rb +20 -0
  297. data/style/hatena_style.rb +1011 -0
  298. data/style/markdown_style.rb +239 -0
  299. data/style/wikiext_style.rb +21 -0
  300. data/tdiary-contrib.gemspec +25 -0
  301. data/util/clean-spam/README.ja +1 -0
  302. data/util/clean-spam/tdiary-comment-clean +46 -0
  303. data/util/clean-spam/tdiary-comment-clean2 +81 -0
  304. data/util/clean-spam/tdiary-referer-clean +46 -0
  305. data/util/convert_pstore.rb +82 -0
  306. data/util/estraier-search/ChangeLog +36 -0
  307. data/util/estraier-search/README.ja +114 -0
  308. data/util/estraier-search/en/estraier-register.rb +3 -0
  309. data/util/estraier-search/estraier-register.rb +298 -0
  310. data/util/estraier-search/estraier-search.rb +273 -0
  311. data/util/estraier-search/estraier.rhtml +73 -0
  312. data/util/estraier-search/estraier.rxml +23 -0
  313. data/util/estraier-search/i.estraier.rhtml +31 -0
  314. data/util/estraier-search/ja/estraier-register.rb +3 -0
  315. data/util/image-gallery/README.ja +27 -0
  316. data/util/image-gallery/image-gallery.rb +523 -0
  317. data/util/image-gallery/image-gallery.rb.euc-jp +523 -0
  318. data/util/image-gallery/js/SmoothGallery/Changelog +52 -0
  319. data/util/image-gallery/js/SmoothGallery/css/ReMooz.css +186 -0
  320. data/util/image-gallery/js/SmoothGallery/css/img/carrow1.gif +0 -0
  321. data/util/image-gallery/js/SmoothGallery/css/img/carrow2.gif +0 -0
  322. data/util/image-gallery/js/SmoothGallery/css/img/closebox.gif +0 -0
  323. data/util/image-gallery/js/SmoothGallery/css/img/closebox.png +0 -0
  324. data/util/image-gallery/js/SmoothGallery/css/img/fleche1.gif +0 -0
  325. data/util/image-gallery/js/SmoothGallery/css/img/fleche1.png +0 -0
  326. data/util/image-gallery/js/SmoothGallery/css/img/fleche2.gif +0 -0
  327. data/util/image-gallery/js/SmoothGallery/css/img/fleche2.png +0 -0
  328. data/util/image-gallery/js/SmoothGallery/css/img/loading-bar-black.gif +0 -0
  329. data/util/image-gallery/js/SmoothGallery/css/img/open.gif +0 -0
  330. data/util/image-gallery/js/SmoothGallery/css/img/open.png +0 -0
  331. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_e.png +0 -0
  332. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_n.png +0 -0
  333. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_ne.png +0 -0
  334. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_nw.png +0 -0
  335. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_s.png +0 -0
  336. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_se.png +0 -0
  337. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_sw.png +0 -0
  338. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_w.png +0 -0
  339. data/util/image-gallery/js/SmoothGallery/css/img/spinner.gif +0 -0
  340. data/util/image-gallery/js/SmoothGallery/css/jd.gallery.css +371 -0
  341. data/util/image-gallery/js/SmoothGallery/css/layout.css +91 -0
  342. data/util/image-gallery/js/SmoothGallery/license.txt +621 -0
  343. data/util/image-gallery/js/SmoothGallery/resizer.php +113 -0
  344. data/util/image-gallery/js/SmoothGallery/scripts/Changelog +52 -0
  345. data/util/image-gallery/js/SmoothGallery/scripts/History.Routing.js +126 -0
  346. data/util/image-gallery/js/SmoothGallery/scripts/History.js +109 -0
  347. data/util/image-gallery/js/SmoothGallery/scripts/ReMooz.js +364 -0
  348. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.js +843 -0
  349. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.set.js +183 -0
  350. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.transitions.js +90 -0
  351. data/util/image-gallery/js/SmoothGallery/scripts/jdgalleryresize.js +828 -0
  352. data/util/image-gallery/js/SmoothGallery/scripts/license.txt +621 -0
  353. data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2-more.js +103 -0
  354. data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js +349 -0
  355. data/util/image-gallery/js/SmoothGallery/scripts/resizer.php +113 -0
  356. data/util/image-gallery/misc/plugin/recent_image.rb +406 -0
  357. data/util/image-gallery/skel/gallery.rhtml +154 -0
  358. data/util/image-gallery/skel/gallery.rhtml.euc-jp +154 -0
  359. data/util/image-gallery/tdiary.conf.igsample +8 -0
  360. data/util/image-gallery/theme/image-gallery.css +85 -0
  361. data/util/image2flickr.rb +282 -0
  362. data/util/posttdiary/README.ja +12 -0
  363. data/util/posttdiary/posttdiary-ex.rb +1155 -0
  364. data/util/posttdiary/posttdiary.rb +245 -0
  365. data/util/rast-search/ChangeLog +55 -0
  366. data/util/rast-search/README.ja +99 -0
  367. data/util/rast-search/en/rast-register.rb +3 -0
  368. data/util/rast-search/i.rast.rhtml +33 -0
  369. data/util/rast-search/ja/rast-register.rb +3 -0
  370. data/util/rast-search/rast-register.rb +326 -0
  371. data/util/rast-search/rast-search.rb +249 -0
  372. data/util/rast-search/rast.rhtml +66 -0
  373. data/util/rast-search/rast.rxml +21 -0
  374. data/util/section_link/README +11 -0
  375. data/util/section_link/misc/plugin/section_link.rb +68 -0
  376. data/util/section_link/misc/plugin/section_link_anchor.rb +38 -0
  377. data/util/section_link/tdiary/tdiary_day_ext.rb +21 -0
  378. data/util/section_link/tdiary/tdiaryext_style.rb +36 -0
  379. data/util/section_link/tdiary/wikiext_style.rb +36 -0
  380. data/util/tdiary-for-ruby1.9/compatible.rb +97 -0
  381. data/util/tdiary-for-ruby1.9/tdiary-2.2.0.patch +98 -0
  382. data/util/tdiary-for-ruby1.9/tdiary-2.3.1.patch +212 -0
  383. data/util/tdiary-grep/README +4 -0
  384. data/util/tdiary-grep/grep.rb +445 -0
  385. data/util/tdiary-mode/http.el +130 -0
  386. data/util/tdiary-mode/tdiary-mode.el +613 -0
  387. data/util/tdiary-vim/ChangeLog +25 -0
  388. data/util/tdiary-vim/README +60 -0
  389. data/util/tdiary-vim/tdiary.vim +350 -0
  390. data/util/tdiarysearch/README.en +53 -0
  391. data/util/tdiarysearch/README.ja +99 -0
  392. data/util/tdiarysearch/search.rb +504 -0
  393. metadata +497 -0
@@ -0,0 +1,263 @@
1
+ # tdiarytimes_flashstyle.rb $Revision: 1.2 $
2
+ #
3
+ # Copyright (c) 2004 phonondrive <tdiary@phonondrive.com>
4
+ # Distributed under the GPL
5
+ #
6
+ # プラグイン配布ページ:
7
+ # http://phonondrive.com/trd/
8
+ # --------------------------------------------------------------------
9
+ #
10
+ #
11
+ #
12
+ # Abstract:
13
+ # --------------------------------------------------------------------
14
+ # 日記を登録した時間帯をタイムライン上に記録します。記録されたエントリは
15
+ # 日時の経過と共にフェードアウトしていきます。このような MTBlogTimes や
16
+ # tdiarytimes.rb と同等の機能を Flash で実現します。
17
+ # ruby-gd のインストール作業も必要ないため、すぐに使用出来ます。
18
+ #
19
+ #
20
+ # Usage:
21
+ # --------------------------------------------------------------------
22
+ # プラグインは、プラグインフォルダに入れて下さい。
23
+ #
24
+ # プラグインは、プラグインフォルダに入れてください。
25
+ # tdiarytimes*.swf を tdiary.rb と同じフォルダにアップロードします。
26
+ # ヘッダ、フッタ部に記述した <%= tdiarytimes_flashstyle %> の部分に、
27
+ # Flash アプレットが表示されます。
28
+ # tdiarytimes.log は日記登録時に .swf と同じフォルダに作成されます。
29
+ #
30
+ # ※ tdiarytimes_textstyle.rb との互換性はありません。
31
+ #
32
+ #
33
+ # Options:
34
+ # --------------------------------------------------------------------
35
+ # タイムラインの色、透明度、サイズなどは、プリファレンス画面で設定できます。
36
+ #
37
+ #
38
+ # In secure mode:
39
+ # --------------------------------------------------------------------
40
+ # たぶん動作しません。
41
+ #
42
+ #
43
+ =begin ChangeLog
44
+ 2004.05.02 phonondrive <tdiary@phonondrive.com>
45
+ * version 1.1.2
46
+ タイムラインが曜日別の Flash を追加
47
+ 2004.05.02 phonondrive <tdiary@phonondrive.com>
48
+ * version 1.1.1
49
+ タイムラインが円形で、時刻盤が曜日表示の Flash を追加
50
+ ログファイルが存在しない時にエラーが出る不具合を修正
51
+ 2004.04.28 phonondrive <tdiary@phonondrive.com>
52
+ * version 1.1.0
53
+ タイムラインが円形の Flash を追加
54
+ 2004.04.27 phonondrive <tdiary@phonondrive.com>
55
+ * version 1.0.1
56
+ 時刻目盛テキストの色が変更されない不具合を修正
57
+ 2004.04.25 phonondrive <tdiary@phonondrive.com>
58
+ * version 1.0.0
59
+ =end
60
+
61
+
62
+ # --------------------------------------------------------------------
63
+ # プラグインの動作
64
+ # --------------------------------------------------------------------
65
+
66
+ def tdiarytimes_flashstyle
67
+ if @conf['tdiarytimes_f.templete'] == nil or @conf['tdiarytimes_f.templete'] == ""
68
+ %Q|使用を開始するには、<a href="./#{@update}?conf=tdiarytimes_f">プリファレンス画面</a>にて一度設定を完了して下さい。(tdiarytimes-flashstyle)|
69
+ else
70
+ logname = ((@conf['tdiarytimes_f.log_path'] != "" and @conf['tdiarytimes_f.log_path'] != nil) ? @conf['tdiarytimes_f.log_path'] : "tdiarytimes.log")
71
+ @conf['tdiarygraph_f.templete'].sub(/&amp;uid/, "\\&=#{File.mtime(logname.untaint).to_i}")
72
+ end
73
+ end
74
+
75
+ # --------------------------------------------------------------------
76
+ # 日記登録時の処理
77
+ # --------------------------------------------------------------------
78
+
79
+ if /\A(?:append|replace)\z/ =~ @mode and @cgi.params['hide'][0] != 'true' then
80
+
81
+ logname = ((@conf['tdiarytimes_f.log_path'] != "" and @conf['tdiarytimes_f.log_path'] != nil) ? @conf['tdiarytimes_f.log_path'] : "tdiarytimes.log")
82
+ entr_lifetime = ((@conf['tdiarytimes_f.entr_lifetime'] != "" and @conf['tdiarytimes_f.entr_lifetime'] != nil) ? @conf['tdiarytimes_f.entr_lifetime'].to_i * 60 * 60 * 24 : 30 * 24 * 60 * 60)
83
+ entr_interval = ((@conf['tdiarytimes_f.entr_interval'] != "" and @conf['tdiarytimes_f.entr_interval'] != nil) ? @conf['tdiarytimes_f.entr_interval'] : 2 * 60 * 60)
84
+
85
+ begin
86
+ logs = open(logname){|io| io.read }.chomp.split(',')
87
+ rescue
88
+ logs = ""
89
+ end
90
+
91
+ if (Time.now.to_i - logs.max.to_i) > entr_interval.to_i
92
+ logs << "#{Time.now.to_i}"
93
+ open(logname, "w"){|io|
94
+ io.write(logs.find_all{|item| (Time.now.to_i - item.to_i) < entr_lifetime.to_i }.join(','))
95
+ }
96
+ end
97
+
98
+ end
99
+
100
+ # --------------------------------------------------------------------
101
+ # プリファレンス画面での設定
102
+ # --------------------------------------------------------------------
103
+
104
+ add_conf_proc( 'tdiarytimes_f', 'tdiarytimes-flashstyle の設定' ) do
105
+
106
+ if @mode == 'saveconf' then
107
+
108
+ filename = "tdiarytimes234x30.swf"
109
+ width = "234"
110
+ height = "30"
111
+ argvs = ""
112
+
113
+ argv = Array.new
114
+
115
+ @conf['tdiarytimes_f.uid'] = @cgi.params['uid'][0]
116
+ argv << "#{Time.now.to_i}&amp;uid" if @conf['tdiarytimes_f.uid'] == "1"
117
+
118
+ @conf['tdiarytimes_f.type'] = @cgi.params['type'][0]
119
+ @conf['tdiarytimes_f.filename'] = @cgi.params['filename'][0]
120
+ @conf['tdiarytimes_f.width'] = @cgi.params['width'][0]
121
+ @conf['tdiarytimes_f.height'] = @cgi.params['height'][0]
122
+
123
+ @conf['tdiarytimes_f.log_path'] = @cgi.params['log_path'][0]
124
+ argv << "log_path=#{@cgi.params['log_path'][0]}" if @cgi.params['log_path'][0] != ""
125
+
126
+ @conf['tdiarytimes_f.text_visible'] = @cgi.params['text_visible'][0]
127
+ argv << "text_visible=#{@cgi.params['text_visible'][0]}" if @cgi.params['text_visible'][0] == "0"
128
+ @conf['tdiarytimes_f.text_text'] = @cgi.params['text_text'][0]
129
+ argv << "text_text=#{CGI::escape @cgi.params['text_text'][0].upcase}" if @cgi.params['text_text'][0] != ""
130
+ @conf['tdiarytimes_f.text_rgb'] = @cgi.params['text_rgb'][0]
131
+ argv << "text_rgb=0x#{@cgi.params['text_rgb'][0]}" if @cgi.params['text_rgb'][0] != ""
132
+
133
+ @conf['tdiarytimes_f.face_visible'] = @cgi.params['face_visible'][0]
134
+ argv << "face_visible=#{@cgi.params['face_visible'][0]}" if @cgi.params['face_visible'][0] == "0"
135
+ @conf['tdiarytimes_f.face_rgb'] = @cgi.params['face_rgb'][0]
136
+ argv << "face_rgb=0x#{@cgi.params['face_rgb'][0]}" if @cgi.params['face_rgb'][0] != ""
137
+
138
+ @conf['tdiarytimes_f.stage_rgb'] = @cgi.params['stage_rgb'][0]
139
+ argv << "stage_rgb=0x#{@cgi.params['stage_rgb'][0]}" if @cgi.params['stage_rgb'][0] != ""
140
+ @conf['tdiarytimes_f.stage_alpha'] = @cgi.params['stage_alpha'][0]
141
+ argv << "stage_alpha=#{@cgi.params['stage_alpha'][0]}" if @cgi.params['stage_alpha'][0] != ""
142
+ @conf['tdiarytimes_f.bg_rgb'] = @cgi.params['bg_rgb'][0]
143
+ argv << "bg_rgb=0x#{@cgi.params['bg_rgb'][0]}" if @cgi.params['bg_rgb'][0] != ""
144
+ @conf['tdiarytimes_f.bg_alpha'] = @cgi.params['bg_alpha'][0]
145
+ argv << "bg_alpha=#{@cgi.params['bg_alpha'][0]}" if @cgi.params['bg_alpha'][0] != ""
146
+ @conf['tdiarytimes_f.bar_rgb'] = @cgi.params['bar_rgb'][0]
147
+ argv << "bar_rgb=0x#{@cgi.params['bar_rgb'][0]}" if @cgi.params['bar_rgb'][0] != ""
148
+ @conf['tdiarytimes_f.bar_width'] = @cgi.params['bar_width'][0]
149
+ argv << "bar_width=#{@cgi.params['bar_width'][0]}" if @cgi.params['bar_width'][0] != ""
150
+
151
+ @conf['tdiarytimes_f.entr_interval'] = @cgi.params['entr_interval'][0]
152
+ @conf['tdiarytimes_f.entr_lifetime'] = @cgi.params['entr_lifetime'][0]
153
+ @conf['tdiarytimes_f.fade_time'] = @cgi.params['fade_time'][0]
154
+ argv << "fade_time=#{@cgi.params['fade_time'][0]}" if @cgi.params['fade_time'][0] != ""
155
+
156
+ @conf['tdiarytimes_f.preview'] = @cgi.params['preview'][0]
157
+
158
+ if @cgi.params['type'][0] == "0"
159
+ filename = @cgi.params['filename'][0]
160
+ width = @cgi.params['width'][0]
161
+ height = @cgi.params['height'][0]
162
+ elsif @cgi.params['type'][0]
163
+ filename = "tdiarytimes#{@cgi.params['type'][0].delete('-')}.swf"
164
+ width = @cgi.params['type'][0].split('-').first.split('x')[0]
165
+ height = @cgi.params['type'][0].split('-').first.split('x')[1]
166
+ end
167
+
168
+ if argv.size > 0 then argvs = "?#{argv.join('&amp;')}" end
169
+
170
+ @conf['tdiarytimes_f.templete'] = tdiarytimes_flashstyle_templete(filename, argvs, width, height)
171
+ end
172
+
173
+
174
+ <<-HTML
175
+ <h3 class="subtitle">設定の概要</h3>
176
+ <p>() 内は初期値です。初期値を使用する場合は、空欄のままで構いません。色は RRGGBB 形式で指定して下さい。不透明度は 0 (透明) 〜 100 (不透明) です。線幅はピクセルで指定します。</p>
177
+ <hr>
178
+ <h3 class="subtitle">プレビュー</h3>
179
+ #{tdiarytimes_flashstyle_preview}
180
+ <hr>
181
+ <h3 class="subtitle">表示する Flash アプレットの選択</h3>
182
+ <p><select name="type">
183
+ <option value="0"#{if @conf['tdiarytimes_f.type'] == "0" then " selected" end}>プリセットを使用しない</option>
184
+ <option value="125x30"#{if @conf['tdiarytimes_f.type'] == "125x30" then " selected" end}>tdiarytimes125x30.swf, 125x30</option>
185
+ <option value="234x30"#{if @conf['tdiarytimes_f.type'] == "234x30" or @conf['tdiarytimes_f.type'] == nil or @conf['tdiarytimes_f.type'] == "" then " selected" end}>tdiarytimes234x30.swf, 234x30</option>
186
+ <option value="468x30"#{if @conf['tdiarytimes_f.type'] == "468x30" then " selected" end}>tdiarytimes468x30.swf, 468x30</option>
187
+ <option value="125x125-r"#{if @conf['tdiarytimes_f.type'] == "125x125-r" then " selected" end}>tdiarytimes125x125r.swf, 125x125 (円形)</option>
188
+ <option value="125x125-r7"#{if @conf['tdiarytimes_f.type'] == "125x125-r7" then " selected" end}>tdiarytimes125x125r7.swf, 125x125 (円形, 曜日)</option>
189
+ <option value="125x125-s"#{if @conf['tdiarytimes_f.type'] == "125x125-s" then " selected" end}>tdiarytimes125x125s.swf, 125x125 (曜日別)</option>
190
+ </select></p>
191
+ <h3 class="subtitle">プリセットを使用しない場合は、以下で指定して下さい。</h3>
192
+ <p>Flash のファイル名<br><input name="filename" value="#{@conf['tdiarytimes_f.filename'].to_s}" size="40"></p>
193
+ <p>Flash の表示幅<br><input name="width" value="#{@conf['tdiarytimes_f.width'].to_s}" size="20"></p>
194
+ <p>Flash の表示高さ<br><input name="height" value="#{@conf['tdiarytimes_f.height'].to_s}" size="20"></p>
195
+ <hr>
196
+ <h3 class="subtitle">タイトルテキスト</h3>
197
+ <p>タイトルテキストの表示有無 (表示)<br><select name="text_visible">
198
+ <option value="1"#{if @conf['tdiarytimes_f.text_visible'] != "0" then " selected" end}>表示</option>
199
+ <option value="0"#{if @conf['tdiarytimes_f.text_visible'] == "0" then " selected" end}>非表示</option>
200
+ </select></p>
201
+ <p>タイトルテキスト (TDIARYTIMES-FLASHSTYLE)<br>使用出来る文字は、英大文字 (A-Z) と数字 (0-9)、および記号のみです。<br><input name="text_text" value="#{@conf['tdiarytimes_f.text_text'].to_s}" size="20"></p>
202
+ <p>タイトルテキストの色 (333333)<br><input name="text_rgb" value="#{@conf['tdiarytimes_f.text_rgb'].to_s}" size="20"></p>
203
+ <h3 class="subtitle">時刻目盛テキスト</h3>
204
+ <p>時刻目盛テキストの表示有無 (表示)<br><select name="face_visible">
205
+ <option value="1"#{if @conf['tdiarytimes_f.face_visible'] != "0" then " selected" end}>表示</option>
206
+ <option value="0"#{if @conf['tdiarytimes_f.face_visible'] == "0" then " selected" end}>非表示</option>
207
+ </select></p>
208
+ <p>時刻目盛テキストの色 (333333)<br><input name="face_rgb" value="#{@conf['tdiarytimes_f.face_rgb'].to_s}" size="20"></p>
209
+ <hr>
210
+ <h3 class="subtitle">背景や棒グラフの色</h3>
211
+ <p>背景の色 (FFFFFF)<br><input name="stage_rgb" value="#{@conf['tdiarytimes_f.stage_rgb'].to_s}" size="20"></p>
212
+ <p>背景の不透明度 (0)<br><input name="stage_alpha" value="#{@conf['tdiarytimes_f.stage_alpha'].to_s}" size="20"></p>
213
+ <p>タイムラインの背景の色 (333333)<br><input name="bg_rgb" value="#{@conf['tdiarytimes_f.bg_rgb'].to_s}" size="20"></p>
214
+ <p>タイムラインの背景の不透明度 (100)<br><input name="bg_alpha" value="#{@conf['tdiarytimes_f.bg_alpha'].to_s}" size="20"></p>
215
+ <p>タイムラインに記録される棒グラフの色 (EEEEEE)<br><input name="bar_rgb" value="#{@conf['tdiarytimes_f.bar_rgb'].to_s}" size="20"></p>
216
+ <p>タイムラインに記録される棒グラフの線幅 (1)<br><input name="bar_width" value="#{@conf['tdiarytimes_f.bar_width'].to_s}" size="20"></p>
217
+ <p>タイムラインに記録される棒グラフの寿命日数 (30)<br><input name="fade_time" value="#{@conf['tdiarytimes_f.fade_time'].to_s}" size="20"></p>
218
+ <hr>
219
+ <h3 class="subtitle">ログ管理</h3>
220
+ <p>前回の日記登録から設定時間内はエントリを新規登録しない (2)<br><input name="entr_interval" value="#{@conf['tdiarytimes_f.entr_interval'].to_s}" size="20"></p>
221
+ <p>設定日数後にログファイルからエントリを削除する (30)<br><input name="entr_lifetime" value="#{@conf['tdiarytimes_f.entr_lifetime'].to_s}" size="20"></p>
222
+ <p>本プラグインが作成するログファイル名 (tdiarytimes.log)<br><input name="log_path" value="#{@conf['tdiarytimes_f.log_path'].to_s}" size="20"></p>
223
+ <hr>
224
+ <h3 class="subtitle">ユニークID を使用したファイル取得</h3>
225
+ <p>ファイル取得のリクエストにユニークID (例えば ?#{Time.now.to_i}) を含めることにより、古いファイルがブラウザにキャッシュされたままになるのを防ぎます。Flash のユニークID はプリファレンス設定時に、ログファイルのユニークID はエントリ登録時に更新されます。</p>
226
+ <p>ユニークID の付加 (付加する)<br><select name="uid">
227
+ <option value="1"#{if @conf['tdiarytimes_f.uid'] != "0" then " selected" end}>付加する</option>
228
+ <option value="0"#{if @conf['tdiarytimes_f.uid'] == "0" then " selected" end}>付加しない</option>
229
+ </select></p>
230
+ <hr>
231
+ <h3 class="subtitle">プレビュー</h3>
232
+ <p>表示したい SWF ファイル (.swf) が tdiary.rb と同じフォルダにアップロードされている必要があります。また、ログファイルが SWF ファイルと同じフォルダに作成されていない場合にはグラフが表示されません。</p>
233
+ <p>プレビュー (非表示)<br><select name="preview">
234
+ <option value="0"#{if @conf['tdiarytimes_f.preview'] != "1" then " selected" end}>非表示</option>
235
+ <option value="1"#{if @conf['tdiarytimes_f.preview'] == "1" then " selected" end}>表示</option>
236
+ </select></p>
237
+ HTML
238
+
239
+ end
240
+
241
+
242
+ def tdiarytimes_flashstyle_preview
243
+ unless @conf.mobile_agent?
244
+ <<-r
245
+ <p>#{if @conf['tdiarytimes_f.preview'] == "1" then "#{tdiarytimes_flashstyle}" else "プレビュー表示を有効にすると、ここに Flash が表示されます。" end}</p>
246
+ r
247
+ end
248
+ end
249
+
250
+ def tdiarytimes_flashstyle_templete( filename="tdiarytimes234x30.swf", argvs="", width="234", height="30" )
251
+ <<-r
252
+ <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.adobe.com/pub/shockwave/cabs/flash/swflash.cab" width="#{width}" height="#{height}" id="tdiarytimes" align="middle">
253
+ <param name="allowScriptAccess" value="sameDomain">
254
+ <param name="movie" value="#{filename}#{argvs}">
255
+ <param name="play" value="false">
256
+ <param name="loop" value="false">
257
+ <param name="quality" value="high">
258
+ <param name="wmode" value="transparent">
259
+ <param name="bgcolor" value="#ffffff">
260
+ <embed src="#{filename}#{argvs}" play="false" loop="false" quality="high" wmode="transparent" bgcolor="#ffffff" width="#{width}" height="#{height}" name="tdiarytimes" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed>
261
+ </object>
262
+ r
263
+ end
@@ -0,0 +1,290 @@
1
+ # tdiarytimes_textstyle.rb $Revision: 1.3 $
2
+ #
3
+ # Copyright (c) 2004 phonondrive <tdiary@phonondrive.com>
4
+ # Distributed under the GPL
5
+ #
6
+ # プラグイン配布ページ:
7
+ # http://phonondrive.com/trd/
8
+ # --------------------------------------------------------------------
9
+ #
10
+ #
11
+ #
12
+ # Abstract:
13
+ # --------------------------------------------------------------------
14
+ # 日記を登録した時間帯をタイムライン上に記録します。
15
+ # 記録されたエントリは日時の経過と共にフェードアウトしていきます。
16
+ # このような MTBlogTimes や tdiarytimes と同等の機能をテキストで実現します。
17
+ # また、テキストベースであることを生かした柔軟なサイトデザインが可能です。
18
+ # ruby-gd のインストール作業も必要ないため、すぐに使用出来ます。
19
+ #
20
+ #
21
+ # Usage:
22
+ # --------------------------------------------------------------------
23
+ # プラグインは、プラグインフォルダに入れてください。
24
+ # ヘッダ、あるいはフッタ部に入力した <%= tdiarytimes_textstyle %>
25
+ # の位置にタイムライン文字列が展開されます。
26
+ # 新しいエントリの記録や保持期間の過ぎた古いエントリの削除は、
27
+ # 日記の追加および登録時に行われます。
28
+ # ただし、エントリのフェードアウト効果はリアルタイムに計算されます。
29
+ # エントリの表示分解能は10分ごとです。
30
+ #
31
+ #
32
+ # Options:
33
+ # --------------------------------------------------------------------
34
+ #
35
+ # 現在、次の9つのオプションが用意されています。
36
+ #
37
+ # init_text 日記の登録されていない時間帯の文字列 (任意の文字列)
38
+ # entr_text 日記が登録された時間帯の文字列 (任意の文字列)
39
+ # init_color 日記の登録されていない時間帯の文字列の色 (RRBBGG形式で指定)
40
+ # entr_color 日記が登録された時間帯の文字列の色 (RRBBGG形式で指定)
41
+ # fade_color 日記が登録された時間帯の文字列のフェードアウト先の色 (RRBBGG形式で指定)
42
+ # init_css タイムライン文字列全体のCSS設定 (CSSの書式に準拠)
43
+ # entr_css 日記が登録された時間帯の文字列のCSS設定 (CSSの書式に準拠)
44
+ # title_text オブジェクト上にマウスをポイントした時のTIPS文字列 (任意の文字列)
45
+ # fade_time ログとして保存しておく(フェードアウトに要する)日数 (任意の数値)
46
+ # entr_interval 前回のエントリ登録から指定時間以内は新規登録しない (任意の数値)
47
+ #
48
+ # オプション値の設定方法には3つの方法があり、その優先順位は次の通りです。
49
+ # <%= tdiarytimes_textstyle %> 引数指定 > tdiary.conf設定値 > デフォルト値
50
+ #
51
+ # entr_intervalを除いた全てのオプション値は <%= %> への引数指定により設定出来るため、
52
+ # ページにごとに意匠を変更するなど自由度の高いサイトデザインが可能です。
53
+ # 一方で、全てのオプションにデフォルト値が用意されているため、
54
+ # 全く設定を行わなくても動作します。
55
+ # デフォルト値の具体的な値については、tdiary.confへの記述方法の項を参照して下さい。
56
+ #
57
+ #
58
+ # <%= tdiarytimes_textstyle %>への引数指定によるオプション設定方法
59
+ # --------------------------------------------------------------------
60
+ #【書式】
61
+ # <%= tdiarytimes_textstyle init_text, entr_text, init_color, entr_color, fade_color, init_css, entr_css, title_text, fade_time %>
62
+ #
63
+ #【記述例】
64
+ # <%=tdiarytimes_textstyle "●","●","004400","66ff66","004400","background-color:#002200;font-size:9px",nil,"TEXTSTYLE!!",15 %>
65
+ #
66
+ # ※ tdiary.conf指定値、またはデフォルト値を使用したい場合は、引数に nil を指定してください。
67
+ #
68
+ #
69
+ # tdiary.confへの記述によるオプション設定方法
70
+ # --------------------------------------------------------------------
71
+ #【記述例】 (例として指定されている値は、プラグイン本体の持つデフォルト値です)
72
+ # @options['tdiarytimes_textstyle.init_text'] = "|"
73
+ # @options['tdiarytimes_textstyle.entr_text'] = "|"
74
+ # @options['tdiarytimes_textstyle.init_color'] = "444444"
75
+ # @options['tdiarytimes_textstyle.entr_color'] = "eeeeee"
76
+ # @options['tdiarytimes_textstyle.fade_color'] = "444444"
77
+ # @options['tdiarytimes_textstyle.init_css'] = "background-color:#444444;"
78
+ # @options['tdiarytimes_textstyle.entr_css'] = ""
79
+ # @options['tdiarytimes_textstyle.title_text'] = "TDIARYTIMES-TEXTSTYLE"
80
+ # @options['tdiarytimes_textstyle.fade_time'] = 30
81
+ # @options['tdiarytimes_textstyle.entr_interval'] = 1
82
+ #
83
+ # ※ fade_time の単位は日、entr_interval の単位は時間です。
84
+ # ※ ログとして保存しておく期間(フェードアウト期間)を過ぎたデータエントリは、
85
+ # 指定期間経過後の次回日記追加時にログファイルから削除されます。
86
+ # この期間を決定する fade_time 値は、<%= %> 引数からは指定出来ません。
87
+ # デフォルト値(30日)以外の値を用いたい場合は、必ず tdiary.conf にて指定して下さい。
88
+ # 同様に、entr_interval もデフォルト値(1時間)以外に設定したい場合は、
89
+ # tdiary.conf にて指定して下さい。ちなみに0.5だと30分間隔になります。
90
+ #
91
+ #
92
+ # In secure mode:
93
+ # --------------------------------------------------------------------
94
+ # 現在のところ動作しません。(ログファイルを読み込めない為)
95
+ #
96
+ #
97
+ # Acknowledgements:
98
+ # --------------------------------------------------------------------
99
+ # This plugin is based on tdiarytimes.rb $Revision: 1.3 $
100
+ # Copyright (c) 2003 neuichi <neuichi@nmnl.jp>
101
+ # Distributed under the GPL
102
+ # http://nmnl.jp/hiki/software/?tDiary+%3A%3A+Plugin
103
+ #
104
+ #
105
+ =begin ChangeLog
106
+ 2004.03.04 phonondrive <tdiary@phonondrive.com>
107
+ * version 1.0.4
108
+ 非応答USER-AGENTリストを更新しました。
109
+
110
+ 2004.02.05 phonondrive <tdiary@phonondrive.com>
111
+ * version 1.0.3
112
+ フェードアウト効果の計算結果が正しく出力されない点を修正しました。
113
+
114
+ 2004.01.30 phonondrive <tdiary@phonondrive.com>
115
+ * version 1.0.2
116
+ 最低登録間隔のオプション (entr_interval) を追加。
117
+ 前回のエントリ登録から指定時間以内は新規登録しないようにしました。
118
+
119
+ 2004.01.29 phonondrive <tdiary@phonondrive.com>
120
+ * version 1.0.1
121
+ replace(登録)時もエントリを記録するようにしました。
122
+ 次のUSER-AGENTからの呼び出しには結果を出力しないようにしました。
123
+ モバイル端末 (tDiary準拠)
124
+ テキストブラウザ (w3m, Lynx, links)
125
+ CSS非対応ブラウザ (Mosaic, Lite, iCab, JustView, WebExplorer)
126
+ 検索ボット (bot, crawler, Spider, Slurp, inktomi, Sidewinder, naver)
127
+ その他 (libwww, antenna)
128
+
129
+ 2004.01.28 phonondrive <tdiary@phonondrive.com>
130
+ * version 1.0.0
131
+ =end
132
+
133
+
134
+
135
+
136
+ # tDiarytimes_textstyle の結果を出力しない USER-AGENT リスト
137
+ # モバイル端末、テキストブラウザ、CSS非対応ブラウザ、検索ボット、アンテナなど
138
+ # 大文字・小文字は区別しません。
139
+
140
+ def tdiarytimes_textstyle_ignore_user_agent; "w3m|Lynx|links|Mosaic|Lite|iCab|JustView|WebExplorer|bot|crawler|Spider|Slurp|inktomi|Sidewinder|naver|libwww|archiver|http|check|WDB|WWWC|WWWD|samidare|tamatebako|NATSU-MICAN|hina|antenna"; end
141
+
142
+
143
+
144
+
145
+ # --------------------------------------------------------------------
146
+ # 日記登録時の処理
147
+ # --------------------------------------------------------------------
148
+
149
+ if /^(append|replace)$/ =~ @mode then
150
+
151
+ # オプション値(エントリ保持期間)の読み込みと設定
152
+
153
+ fade_time = @options['tdiarytimes_textstyle.fade_time'] || 30
154
+ fade_time = 24 * 60 * 60 * fade_time.to_f
155
+
156
+ entr_interval = @options['tdiarytimes_textstyle.entr_interval'] || 1
157
+ entr_interval = 60 * 60 * entr_interval.to_f
158
+
159
+
160
+ # ログデータの読み込み
161
+
162
+ cache = "#{@cache_path}/tdiarytimes_textstyle"
163
+ Dir::mkdir( cache ) unless File::directory?( cache )
164
+
165
+ begin
166
+ io = open("#{cache}/tdiarytimes_textstyle.dat","r")
167
+ ary_data = Marshal.load(io)
168
+ io.close
169
+
170
+ # 1.0.1 >> 1.0.2 ログデータ移行用
171
+ if ary_data.size == 144
172
+ ary_data.push(Time.now.to_i - entr_interval - 1)
173
+ end
174
+
175
+ rescue
176
+ # ログがない場合は仮データを用意
177
+ ary_data = Array.new(145) {|i| 0 }
178
+ end
179
+
180
+
181
+ # 不良データや寿命が来たエントリを削除する
182
+
183
+ (0..143).each {|i|
184
+ delta = (Time.now.to_i - ary_data[i])/fade_time.to_f
185
+ if delta < 0 || delta > 1
186
+ ary_data[i] = 0
187
+ end
188
+ }
189
+
190
+
191
+ # 最低登録間隔を経過していたら、日記が登録された時間帯に新しいエントリをセットする
192
+
193
+ if (Time.now.to_i - ary_data[144]) > entr_interval.to_f
194
+ ary_data[(Time.now.strftime('%H').to_i*6 + Time.now.strftime('%M').to_f/10).to_i] = Time.now.to_i
195
+ # 最終登録時間の記録
196
+ ary_data[144] = Time.now.to_i
197
+ end
198
+
199
+
200
+ # ログデータの書き込み
201
+
202
+ io = open("#{cache}/tdiarytimes_textstyle.dat","w")
203
+ Marshal.dump(ary_data,io)
204
+ io.close
205
+ end
206
+
207
+
208
+
209
+
210
+ # --------------------------------------------------------------------
211
+ # プラグイン表示時の動作
212
+ # --------------------------------------------------------------------
213
+
214
+ def tdiarytimes_textstyle(init_text = nil, entr_text = nil, init_color = nil, entr_color = nil, fade_color = nil, init_css = nil, entr_css = nil, title_text = nil, fade_time = nil)
215
+
216
+
217
+ # モバイル端末、テキストブラウザ、CSS非対応ブラウザ、検索ボットなどには結果を出力しない
218
+
219
+ unless @cgi.mobile_agent? || @cgi.user_agent =~ %r[(#{tdiarytimes_textstyle_ignore_user_agent})]i
220
+
221
+
222
+ r = ""
223
+
224
+
225
+ # オプション値の読み込みと設定
226
+
227
+ init_text = @options['tdiarytimes_textstyle.init_text'] || "|" unless init_text
228
+ entr_text = @options['tdiarytimes_textstyle.entr_text'] || "|" unless entr_text
229
+ init_color = @options['tdiarytimes_textstyle.init_color'] || "444444" unless init_color
230
+ entr_color = @options['tdiarytimes_textstyle.entr_color'] || "eeeeee" unless entr_color
231
+ fade_color = @options['tdiarytimes_textstyle.fade_color'] || "444444" unless fade_color
232
+ init_css = @options['tdiarytimes_textstyle.init_css'] || "background-color:#444444;" unless init_css
233
+ entr_css = @options['tdiarytimes_textstyle.entr_css'] || "" unless entr_css
234
+ title_text = @options['tdiarytimes_textstyle.title_text'] || "TDIARYTIMES-TEXTSTYLE" unless title_text
235
+ fade_time = @options['tdiarytimes_textstyle.fade_time'] || 30 unless fade_time
236
+
237
+
238
+ entr_color_rgb = entr_color.unpack("a2a2a2")
239
+ fade_color_rgb = fade_color.unpack("a2a2a2")
240
+
241
+ fade_time = 24 * 60 * 60 * fade_time.to_f
242
+
243
+
244
+ # ログデータの読み込み
245
+
246
+ cache = "#{@cache_path}/tdiarytimes_textstyle"
247
+
248
+ begin
249
+ io = open("#{cache}/tdiarytimes_textstyle.dat","r")
250
+ ary_data = Marshal.load(io)
251
+ io.close
252
+ rescue
253
+ # ログファイルが見つからない場合はエラーとダミーデータを表示
254
+ r << %Q|Error! cannot open log file.|
255
+ ary_data = Array.new(145) {|i| 0 }
256
+ end
257
+
258
+
259
+ # htmlデータの出力
260
+
261
+ r << %Q|<span style="color:##{h init_color};#{h init_css}" title="#{h title_text}">|
262
+
263
+ (0..143).each {|i|
264
+ data = ary_data[i]
265
+ if data != 0
266
+ delta = (Time.now.to_i - data)/fade_time.to_f
267
+ if delta < 0
268
+ # 不良エントリ対策
269
+ now_color = init_color
270
+ elsif delta > 1
271
+ # フェードアウト期間超過エントリ対策
272
+ now_color = fade_color
273
+ else
274
+ # 正常なエントリの処理
275
+ now_color = ""
276
+ (0..2).each{|i|
277
+ now_color << format("%02x", entr_color_rgb[i].hex + ((fade_color_rgb[i].hex - entr_color_rgb[i].hex)*delta).to_i)
278
+ }
279
+ end
280
+ r << %Q|<span style="color:##{h now_color};#{h entr_css}" title="#{Time.at(data).strftime('%b %d,%Y')}">#{entr_text}</span>|
281
+ else
282
+ r << %Q|#{init_text}|
283
+ end
284
+ }
285
+
286
+ r << %Q|</span>|
287
+
288
+ end
289
+
290
+ end
@@ -0,0 +1,16 @@
1
+ #
2
+ # title_anchor.rb:
3
+ #
4
+ # Copyright (C) 2007 by SHIBATA Hiroshi <h-sbt@nifty.com>
5
+ # Distributed under GPL2.
6
+ #
7
+
8
+ def title_anchor
9
+ r = ''
10
+ if /^latest$/ =~ @mode
11
+ r << %Q|<h1>#{h @conf.html_title}</h1>|
12
+ else
13
+ r << %Q|<h1><a href="#{h @conf.index}">#{h @conf.html_title}</a></h1>|
14
+ end
15
+ r
16
+ end