tdiary-contrib 3.2.2.20130518

Sign up to get free protection for your applications and to get access to all the features.
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,42 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # select_style.rb: a plugin for selecting styles
4
+ # Distributed under the GPL
5
+ #
6
+ # [CAUTION] You need to insert a line to tdiary.conf after "load_cgi_conf"
7
+ # @style = @options2['style'] if @options2['style']
8
+ #
9
+
10
+ # styles
11
+ def saveconf_style
12
+ if @mode == 'saveconf' then
13
+ @conf['style'] = @cgi.params['style'][0]
14
+ end
15
+ end
16
+
17
+ if @mode =~ /^(conf|saveconf)$/ then
18
+ @conf_style_list = []
19
+ Dir::glob( "#{::TDiary::PATH}/tdiary/{style/,}*_style.rb" ) do |style_file|
20
+ style = File::basename( style_file ).sub( /_style\.rb$/, '' )
21
+ @conf_style_list << style
22
+ end
23
+ end
24
+
25
+ add_conf_proc( 'style', 'スタイル' ) do
26
+ saveconf_style
27
+
28
+ r = <<-HTML
29
+ <h3 class="subtitle">スタイルの指定</h3>
30
+ #{"<p>スタイル (日記の文法) を指定します。</p>" unless @conf.mobile_agent?}
31
+ <p>
32
+ <select name="style">
33
+ HTML
34
+ @conf_style_list.each do |style|
35
+ r << %Q|<option value="#{style}"#{if (style == @conf['style']) or (!@conf['style'] && style == 'tdiary') then " selected" end}>#{style}</option>|
36
+ end
37
+ r << <<-HTML
38
+ </select>
39
+ </p>
40
+ #{"<p>スタイルについての詳細は<a href=\"http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?%A5%B9%A5%BF%A5%A4%A5%EB\">スタイル - tDiary の記法</a>をごらんください。</p>" unless @conf.mobile_agent?}
41
+ HTML
42
+ end
@@ -0,0 +1,90 @@
1
+ # Copyright (C) 2005 akira yamada
2
+ # You can redistribute it and/or modify it under GPL2.
3
+
4
+ THEME_BASE = File.join(::TDiary::PATH, 'theme')
5
+ CACHE_FILE = File.join(@cache_path, 'theme_list')
6
+
7
+ def get_theme_list
8
+ if FileTest.exist?(CACHE_FILE) &&
9
+ File.mtime(CACHE_FILE) >= File.mtime(THEME_BASE)
10
+ File.open(CACHE_FILE, 'r') do |i|
11
+ i.flock(File::LOCK_EX)
12
+ return Marshal.load(i.read)
13
+ end
14
+ end
15
+
16
+ list = []
17
+ Dir.glob(File.join(THEME_BASE, '*')).sort.each do |dir|
18
+ theme = dir.sub(%r[.*/theme/], '')
19
+ next unless FileTest::file?("#{dir}/#{theme}.css".untaint)
20
+ name = theme.split(/_/).collect{|s| s.capitalize}.join(' ')
21
+ list << [theme, name]
22
+ end
23
+
24
+ File.open(CACHE_FILE, 'w') do |o|
25
+ o.flock(File::LOCK_EX)
26
+ o.puts Marshal.dump(list)
27
+ end
28
+
29
+ return list
30
+ end
31
+
32
+ def select_theme_form
33
+ options = ''
34
+ get_theme_list.each do |theme, name|
35
+ options << %Q!\t<option value="#{h theme}"#{' selected' if theme == @conf.theme}>#{h name}</option>\n!
36
+ if theme == DEFAULT_THEME
37
+ options = %Q!\t<option value="#{h theme}">(default)</option>\n! + options
38
+ end
39
+ end
40
+
41
+ <<HTML
42
+ <form class="comment" method="get" action="#{h @index}">
43
+ <select name="select_theme">
44
+ #{options}
45
+ </select>
46
+ <input type="submit" value="#{label}">
47
+ </form>
48
+ HTML
49
+ end
50
+
51
+ def label
52
+ 'use'
53
+ end
54
+
55
+ def check_theme(name)
56
+ return false if name.nil? || name.empty?
57
+ FileTest.file?(File.join(THEME_BASE, name, name + '.css'))
58
+ end
59
+
60
+ with_cgiparam = false
61
+ theme = nil
62
+ if @cgi.params['select_theme'] && @cgi.params['select_theme'][0]
63
+ tmp = @cgi.params['select_theme'][0].gsub(/[^-.\w]/, '')
64
+ tmp.untaint
65
+ if check_theme(tmp)
66
+ theme = tmp
67
+ with_cgiparam = true
68
+ end
69
+ end
70
+ if theme.nil? && @cgi.cookies && @cgi.cookies.include?('tdiary_select_theme')
71
+ tmp = @cgi.cookies['tdiary_select_theme'][0].gsub(/[^-.\w]/, '')
72
+ tmp.untaint
73
+ theme = tmp if check_theme(tmp)
74
+ end
75
+ if theme.nil?
76
+ theme = @conf.theme
77
+ end
78
+
79
+ cookie_path = File::dirname( @cgi.script_name )
80
+ cookie_path += '/' if cookie_path !~ /\/$/
81
+ cookie = CGI::Cookie::new(
82
+ 'name' => 'tdiary_select_theme',
83
+ 'value' => theme,
84
+ 'path' => cookie_path,
85
+ 'expires' => Time::now.gmtime + 90*24*60*60) # 90days
86
+ add_cookie(cookie)
87
+
88
+ # XXX: OK?
89
+ DEFAULT_THEME = @conf.theme
90
+ @conf.theme = theme
@@ -0,0 +1,77 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # show_and_hide.rb - Show or hide the elements with a sliding motion using jQuery.
4
+ #
5
+ # Copyright (C) 2011, tamoot <tamoot+tdiary@gmail.com>
6
+ # You can redistribute it and/or modify it under GPL2.
7
+ #
8
+
9
+ require 'digest/md5'
10
+
11
+ if /\A(?:latest|day|month|nyear|preview)\z/ =~ @mode
12
+ enable_js('show_and_hide.js')
13
+
14
+ end
15
+
16
+ def show_and_hide(contents, title = 'Show contents',
17
+ type = :link,
18
+ rss_title = '(Hide contents on RSS. See my page...)')
19
+
20
+ data_id = show_and_hide_id(contents)
21
+
22
+ toggle_attr = {:class => 'show_and_hide_toggle',
23
+ :"data-showandhideid" => data_id}
24
+
25
+ dom_contents = ''
26
+
27
+ if feed? # RSS
28
+ dom_contents = h(rss_title)
29
+
30
+ elsif type.to_s == 'button'
31
+ toggle_attr.merge!(:value => title, :type => "button")
32
+ dom_contents = %Q|<input #{hash2attr(toggle_attr)}>| +
33
+ show_and_hide_contents(contents, data_id)
34
+
35
+ else
36
+ toggle_attr.merge!(:href => 'javascript:void(0)')
37
+ dom_contents = %Q|<a #{hash2attr(toggle_attr)}>#{h(title)}</a>| +
38
+ show_and_hide_contents(contents, data_id)
39
+
40
+ end
41
+
42
+ dom_contents
43
+
44
+ end
45
+
46
+ def show_and_hide_id(contents)
47
+ @@show_and_hide_counter ||= 0
48
+ @@show_and_hide_counter += 1
49
+
50
+ "#{Time::now.strftime("%s")}_#{@@show_and_hide_counter}_#{ Digest::MD5.hexdigest(contents)}"
51
+
52
+ end
53
+
54
+ def show_and_hide_contents(contents, id)
55
+ %Q|<pre class="show_and_hide" id="#{id}">#{h(contents)}</pre>|
56
+
57
+ end
58
+
59
+ def hash2attr(hash)
60
+ attrs = []
61
+
62
+ hash.keys.each do |k|
63
+ attrs << %Q|#{k}="#{hash[k]}"|
64
+ end
65
+
66
+ attrs.join(" ")
67
+
68
+ end
69
+
70
+ # Local Variables:
71
+ # mode: ruby
72
+ # indent-tabs-mode: t
73
+ # tab-width: 3
74
+ # ruby-indent-level: 3
75
+ # End:
76
+ # vim: ts=3
77
+
@@ -0,0 +1,10 @@
1
+ #
2
+ # slideshare.rb - insert some services of slideshare.net
3
+ #
4
+ # Copyright (C) 2011, Kiwamu Okabe <kiwamu@debian.or.jp>.
5
+ # You can redistribute it and/or modify it under GPL2.
6
+ #
7
+
8
+ def slideshare( embed_code )
9
+ %Q|<iframe src="http://www.slideshare.net/slideshow/embed_code/#{embed_code}" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>|
10
+ end
@@ -0,0 +1,60 @@
1
+ # socialbutton.rb
2
+ #
3
+ # Copyright (c) 2011 MATSUOKA Kohei <kmachu@gmail.com>
4
+ # You can redistribute it and/or modify it under GPL2.
5
+ #
6
+
7
+ # enable social button names
8
+ @conf['socialbutton.enables'] ||= 'twitter,hatena,facebook_like'
9
+ # screen name of the user to attribute the tweet to
10
+ @conf['socialbutton.twitter.via'] ||= ''
11
+
12
+ def socialbutton_js_settings
13
+ enable_js('jquery.socialbutton.js')
14
+ enable_js('socialbutton.js')
15
+ add_js_setting('$tDiary.plugin.socialbutton')
16
+ # convert array to json
17
+ add_js_setting('$tDiary.plugin.socialbutton.enables',
18
+ %Q|["#{@conf['socialbutton.enables'].split(',').join('", "')}"]|)
19
+
20
+ if @conf['socialbutton.twitter.via'] != ''
21
+ options = "{ twitter: { via: '#{@conf['socialbutton.twitter.via']}' } }"
22
+ else
23
+ options = "{}"
24
+ end
25
+ add_js_setting('$tDiary.plugin.socialbutton.options', options)
26
+ end
27
+
28
+ socialbutton_footer = Proc.new { %Q|<div class="socialbuttons"></div>| }
29
+ if blogkit?
30
+ add_body_leave_proc(socialbutton_footer)
31
+ else
32
+ add_section_leave_proc(socialbutton_footer)
33
+ end
34
+
35
+ add_conf_proc('socialbutton', @socialbutton_label_conf) do
36
+ @conf['socialbutton.enables'] ||= []
37
+ if @mode == 'saveconf'
38
+ @conf['socialbutton.enables'] = @cgi.params['socialbutton.enables'].join(",")
39
+ @conf['socialbutton.twitter.via'] = @cgi.params['socialbutton.twitter.via'][0]
40
+ end
41
+
42
+ result = <<-HTML
43
+ <h3>#{@socialbutton_label_enables}</h3>
44
+ <ul>
45
+ HTML
46
+ ['twitter', 'hatena', 'evernote', 'facebook_like', 'google_plusone', 'pinterest'].each do |service|
47
+ checked = @conf['socialbutton.enables'].index(service) ? 'checked' : ''
48
+ id = "socialbutton.enables.#{service}"
49
+ result << %Q|<li><input id="#{id}" name="socialbutton.enables" type="checkbox" value="#{service}" #{checked}>|
50
+ result << %Q|<label for="#{id}">#{service}</label></li>|
51
+ end
52
+ result << <<-HTML
53
+ </ul>
54
+ <h3>#{@socialbutton_label_twitter_via}</h3>
55
+ <p><input name="socialbutton.twitter.via" value="#{h(@conf['socialbutton.twitter.via'])}"></p>
56
+ HTML
57
+ end
58
+
59
+ # load javascript
60
+ socialbutton_js_settings()
@@ -0,0 +1,93 @@
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
+ # display book info in http://tatsu-zine.com/ like amazon.rb
6
+ # USAGE: {{tatsu_zine 1}}
7
+
8
+ require 'open-uri'
9
+
10
+ def tatsu_zine_cache_dir
11
+ cache = "#{@cache_path}/tatsu-zine"
12
+ Dir.mkdir( cache ) unless File.directory?( cache )
13
+ cache
14
+ end
15
+
16
+ def tatsu_zine_cache_set( id, result )
17
+ File.open( "#{tatsu_zine_cache_dir}/#{id}", "w" ) do |f|
18
+ f.write result
19
+ end
20
+ end
21
+
22
+ def tatsu_zine_cache_get( id )
23
+ File.open( "#{tatsu_zine_cache_dir}/#{id}", "r" ) do |f|
24
+ f.read
25
+ end
26
+ rescue
27
+ nil
28
+ end
29
+
30
+ def tatsu_zine( id, doc = nil )
31
+ if !@conf.secure and !(result = tatsu_zine_cache_get(id)).nil?
32
+ return result
33
+ end
34
+
35
+ link = "http://tatsu-zine.com/books/#{id}"
36
+ doc ||= open( link ).read
37
+ title = doc.match(%r|<meta property="og:title" content="(.*)">|).to_a[1]
38
+ image = doc.match(%r|<meta property="og:image" content="(.*)">|).to_a[1]
39
+ price = doc.match(%r|<p class="price">[\r\n]?(.*?)[\r\n]?</p>|m).to_a[1].
40
+ gsub(/\s/, '')
41
+ author = doc.match(%r|<p class="author">(.*)</p>|).to_a[1]
42
+
43
+ result = <<-EOS
44
+ <a class="amazon-detail" href="#{h link}"><span class="amazon-detail">
45
+ <img class="amazon-detail left" src="#{h image}"
46
+ height="150" width="100"
47
+ alt="#{h title}">
48
+ <span class="amazon-detail-desc">
49
+ <span class="amazon-title">#{h title}</span><br>
50
+ <span class="amazon-author">#{h author}</span><br>
51
+ <span class="amazon-price">#{h price}</span>
52
+ </span><br style="clear: left">
53
+ </span></a>
54
+ EOS
55
+
56
+ tatsu_zine_cache_set( id, result ) unless @conf.secure
57
+ result
58
+ rescue
59
+ link
60
+ end
61
+
62
+ if __FILE__ == $0
63
+ require 'test/unit'
64
+ class TestTatsuZine < Test::Unit::TestCase
65
+ def setup
66
+ @conf = Struct.new("Conf", :secure).new(true)
67
+ def h(str); str; end
68
+ end
69
+
70
+ def test_tatsu_zine
71
+ expect = <<-EOS
72
+ <a class="amazon-detail" href="http://tatsu-zine.com/books/winrubybuild"><span class="amazon-detail">
73
+ <img class="amazon-detail left" src="http://tatsu-zine.com/images/books/1/cover_s.jpg"
74
+ height="150" width="100"
75
+ alt="Ruby環境構築講座 Windows編">
76
+ <span class="amazon-detail-desc">
77
+ <span class="amazon-title">Ruby環境構築講座 Windows編</span><br>
78
+ <span class="amazon-author">arton</span><br>
79
+ <span class="amazon-price">1,000円(税込)</span>
80
+ </span><br style="clear: left">
81
+ </span></a>
82
+ EOS
83
+ assert_equal expect, tatsu_zine('winrubybuild')
84
+ end
85
+ end
86
+ end
87
+
88
+ # Local Variables:
89
+ # mode: ruby
90
+ # indent-tabs-mode: t
91
+ # tab-width: 3
92
+ # ruby-indent-level: 3
93
+ # End:
@@ -0,0 +1,296 @@
1
+ # tdiarygraph_flashstyle.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
+ # counter.rb のカウンタログ (counter.log) をグラフ化した
15
+ # Flash アプレットを表示します。
16
+ #
17
+ #
18
+ # Usage:
19
+ # --------------------------------------------------------------------
20
+ # プラグインは、プラグインフォルダに入れてください。
21
+ # tdiarygraph*.swf を tdiary.rb と同じフォルダにアップロードします。
22
+ # ヘッダ、フッタ部に記述した <%= tdiarygraph_flashstyle %> の部分に、
23
+ # Flash アプレットが表示されます。
24
+ # counter.log は日記登録時に .swf と同じフォルダにコピーされます。
25
+ #
26
+ # ※ counter.rb を使用しており、かつカウンタログ (counter.log) の出力を
27
+ # オンにしている必要があります。
28
+ #
29
+ #
30
+ # Options:
31
+ # --------------------------------------------------------------------
32
+ # グラフの色、透明度、サイズなどは、プリファレンス画面で設定できます。
33
+ #
34
+ #
35
+ # In secure mode:
36
+ # --------------------------------------------------------------------
37
+ # たぶん動作しません。
38
+ #
39
+ #
40
+ # Acknowledgements:
41
+ # --------------------------------------------------------------------
42
+ # counter.rb (counter.log)
43
+ #
44
+ # Copyright (c) 2002 MUTOH Masao <mutoh@highway.ne.jp>
45
+ # Distributed under the GPL2.
46
+ # http://ponx.s5.xrea.com/hiki/ja/counter.rb.html
47
+ #
48
+ #
49
+ =begin ChangeLog
50
+ 2004.04.27 phonondrive <tdiary@phonondrive.com>
51
+ * version 1.3.0
52
+ キャッシュ対策としてユニークIDを付加してファイル取得するオプションを追加
53
+ 対応 Flash ファイルを e 系列に変更
54
+ フォントを _sans から 04b03b に変更
55
+ 04b03b.ttf, copyright (c) 1998-2001 YUJI OSHIMOTO
56
+ http://www.04.jp.org/
57
+ 2004.04.10 phonondrive <tdiary@phonondrive.com>
58
+ * version 1.2.1
59
+ レポート書式で改行タグが機能しない不具合を修正
60
+ 背景の枠線を表示しないオプションを追加
61
+ 対応 Flash ファイルを d 系列に変更
62
+ 2004.04.09 phonondrive <tdiary@phonondrive.com>
63
+ * version 1.2.0
64
+ ログファイルが転送されない不具合を修正
65
+ 作成するログのデフォルト名を変更 (tdiarygraph.log → counter.log)
66
+ 線幅を絶対値で指定出来るオプションを追加
67
+ レポート書式のカスタマイズオプションを追加
68
+ 対応 Flash ファイルを c 系列に変更
69
+ 2004.04.05 phonondrive <tdiary@phonondrive.com>
70
+ * version 1.1.1
71
+ 線の太さを変更するオプションを追加
72
+ 対応 Flash ファイルに b 系列を追加
73
+ 2004.04.05 phonondrive <tdiary@phonondrive.com>
74
+ * version 1.1.0
75
+ Ruby 1.6.x に対応 (1.6.7 で動作確認)
76
+ 作成するログのデフォルト名を変更 (counter.log → tdiarygraph.log)
77
+ 2004.04.04 phonondrive <tdiary@phonondrive.com>
78
+ * version 1.0.0
79
+ =end
80
+
81
+
82
+
83
+
84
+ # --------------------------------------------------------------------
85
+ # プラグインの表示
86
+ # --------------------------------------------------------------------
87
+
88
+ def tdiarygraph_flashstyle
89
+ if @conf['tdiarygraph_f.templete'] == nil or @conf['tdiarygraph_f.templete'] == ""
90
+ %Q|使用を開始するには、<a href="./#{h @update}?conf=tdiarygraph_f">プリファレンス画面</a>にて一度設定を完了して下さい。(tdiarygraph-flashstyle)|
91
+ else
92
+ logname = ((@conf['tdiarygraph_f.log_path'] != "" and @conf['tdiarygraph_f.log_path'] != nil) ? @conf['tdiarygraph_f.log_path'] : "counter.log")
93
+ @conf['tdiarygraph_f.templete'].sub(/&amp;uid/, "\\&=#{File.mtime(logname.untaint).to_i}")
94
+ end
95
+ end
96
+
97
+
98
+ # --------------------------------------------------------------------
99
+ # 日記登録時の処理 (counter.log のコピー)
100
+ # --------------------------------------------------------------------
101
+
102
+ if /\A(?:append|replace)\z/ =~ @mode and @cgi.params['hide'][0] != 'true' then
103
+ logname = ((@conf['tdiarygraph_f.log_path'] != "" and @conf['tdiarygraph_f.log_path'] != nil) ? @conf['tdiarygraph_f.log_path'] : "counter.log")
104
+
105
+ open("#{@cache_path}/counter/counter.log"){|input|
106
+ open(logname, "w"){|output|
107
+ output.write(input.read)
108
+ }
109
+ }
110
+ end
111
+
112
+
113
+ # --------------------------------------------------------------------
114
+ # プリファレンス画面での設定
115
+ # --------------------------------------------------------------------
116
+
117
+ add_conf_proc( 'tdiarygraph_f', 'tdiarygraph-flashstyle の設定' ) do
118
+
119
+ if @mode == 'saveconf' then
120
+
121
+ filename = "tdiarygraph468x60e.swf"
122
+ width = "468"
123
+ height = "60"
124
+ argvs = ""
125
+
126
+ argv = Array.new
127
+
128
+ @conf['tdiarygraph_f.uid'] = @cgi.params['uid'][0]
129
+ argv << "#{Time.now.to_i}&amp;uid" if @conf['tdiarygraph_f.uid'] == "1"
130
+
131
+ @conf['tdiarygraph_f.type'] = @cgi.params['type'][0]
132
+ @conf['tdiarygraph_f.filename'] = @cgi.params['filename'][0]
133
+ @conf['tdiarygraph_f.width'] = @cgi.params['width'][0]
134
+ @conf['tdiarygraph_f.height'] = @cgi.params['height'][0]
135
+
136
+ @conf['tdiarygraph_f.log_path'] = @cgi.params['log_path'][0]
137
+ argv << "log_path=#{@cgi.params['log_path'][0]}" if @cgi.params['log_path'][0] != ""
138
+ @conf['tdiarygraph_f.init_num'] = @cgi.params['init_num'][0]
139
+ argv << "init_num=#{@cgi.params['init_num'][0]}" if @cgi.params['init_num'][0] != ""
140
+
141
+ @conf['tdiarygraph_f.text_text'] = @cgi.params['text_text'][0].upcase
142
+ argv << "text_text=#{h NKF::nkf('-s', @cgi.params['text_text'][0].upcase)}" if @cgi.params['text_text'][0] != ""
143
+ @conf['tdiarygraph_f.text_rgb'] = @cgi.params['text_rgb'][0]
144
+ argv << "text_rgb=0x#{@cgi.params['text_rgb'][0]}" if @cgi.params['text_rgb'][0] != ""
145
+ @conf['tdiarygraph_f.text_report'] = @cgi.params['text_report'][0]
146
+ argv << "text_report=#{@cgi.params['text_report'][0]}" if @cgi.params['text_report'][0] == "0"
147
+ @conf['tdiarygraph_f.text_report_format'] = @cgi.params['text_report_format'][0]
148
+ argv << "text_report_format=#{tdiarygraph_flashstyle_text_report_format(@cgi.params['text_report_format'][0])}" if @cgi.params['text_report_format'][0] != ""
149
+ @conf['tdiarygraph_f.text_report_rgb'] = @cgi.params['text_report_rgb'][0]
150
+ argv << "text_report_rgb=0x#{@cgi.params['text_report_rgb'][0]}" if @cgi.params['text_report_rgb'][0] != ""
151
+ @conf['tdiarygraph_f.bg_rgb'] = @cgi.params['bg_rgb'][0]
152
+ argv << "bg_rgb=0x#{@cgi.params['bg_rgb'][0]}" if @cgi.params['bg_rgb'][0] != ""
153
+ @conf['tdiarygraph_f.bg_alpha'] = @cgi.params['bg_alpha'][0]
154
+ argv << "bg_alpha=#{@cgi.params['bg_alpha'][0]}" if @cgi.params['bg_alpha'][0] != ""
155
+ @conf['tdiarygraph_f.bg_frame'] = @cgi.params['bg_frame'][0]
156
+ argv << "bg_frame=#{@cgi.params['bg_frame'][0]}" if @cgi.params['bg_frame'][0] == "1"
157
+ @conf['tdiarygraph_f.bar_rgb'] = @cgi.params['bar_rgb'][0]
158
+ argv << "bar_rgb=0x#{@cgi.params['bar_rgb'][0]}" if @cgi.params['bar_rgb'][0] != ""
159
+ @conf['tdiarygraph_f.bar_alpha'] = @cgi.params['bar_alpha'][0]
160
+ argv << "bar_alpha=#{@cgi.params['bar_alpha'][0]}" if @cgi.params['bar_alpha'][0] != ""
161
+ @conf['tdiarygraph_f.line_rgb'] = @cgi.params['line_rgb'][0]
162
+ argv << "line_rgb=0x#{@cgi.params['line_rgb'][0]}" if @cgi.params['line_rgb'][0] != ""
163
+ @conf['tdiarygraph_f.line_alpha'] = @cgi.params['line_alpha'][0]
164
+ argv << "line_alpha=#{@cgi.params['line_alpha'][0]}" if @cgi.params['line_alpha'][0] != ""
165
+
166
+ @conf['tdiarygraph_f.bar_width'] = @cgi.params['bar_width'][0]
167
+ argv << "bar_width=#{@cgi.params['bar_width'][0]}" if @cgi.params['bar_width'][0] != ""
168
+ @conf['tdiarygraph_f.line_width'] = @cgi.params['line_width'][0]
169
+ argv << "line_width=#{@cgi.params['line_width'][0]}" if @cgi.params['line_width'][0] != ""
170
+
171
+ @conf['tdiarygraph_f.bold'] = @cgi.params['bold'][0]
172
+ argv << "bold=#{@cgi.params['bold'][0]}" if @cgi.params['bold'][0] != ""
173
+
174
+ @conf['tdiarygraph_f.preview'] = @cgi.params['preview'][0]
175
+
176
+ if @cgi.params['type'][0] == "0"
177
+ filename = @cgi.params['filename'][0]
178
+ width = @cgi.params['width'][0]
179
+ height = @cgi.params['height'][0]
180
+ elsif @cgi.params['type'][0]
181
+ filename = "tdiarygraph#{@cgi.params['type'][0].delete('-')}.swf"
182
+ width = @cgi.params['type'][0].split('-').first.split('x')[0]
183
+ height = @cgi.params['type'][0].split('-').first.split('x')[1]
184
+ end
185
+
186
+ if argv.size > 0 then argvs = "?#{argv.join('&amp;')}" end
187
+
188
+ @conf['tdiarygraph_f.templete'] = tdiarygraph_flashstyle_templete(filename, argvs, width, height)
189
+ end
190
+
191
+
192
+ <<-HTML
193
+ <h3 class="subtitle">設定の概要</h3>
194
+ <p>() 内は初期値です。初期値を使用する場合は、空欄のままで構いません。色は RRGGBB 形式で指定して下さい。不透明度は 0 (透明) 〜 100 (不透明) です。線幅はピクセルで指定します。</p>
195
+ <hr>
196
+ <h3 class="subtitle">プレビュー</h3>
197
+ #{tdiarygraph_flashstyle_preview}
198
+ <hr>
199
+ <h3 class="subtitle">表示する Flash アプレットの選択</h3>
200
+ <p><select name="type">
201
+ <option value="0"#{" selected" if @conf['tdiarygraph_f.type'] == "0"}>プリセットを使用しない</option>
202
+ <option value="468x60-e"#{" selected" if @conf['tdiarygraph_f.type'] == "468x60-e" or @conf['tdiarygraph_f.type'] == nil or @conf['tdiarygraph_f.type'] == ""}>tdiarygraph468x60e.swf, 468x60</option>
203
+ <option value="728x90-e"#{" selected" if @conf['tdiarygraph_f.type'] == "728x90-e"}>tdiarygraph728x90e.swf, 728x90</option>
204
+ <option value="125x125-e"#{" selected" if @conf['tdiarygraph_f.type'] == "125x125-e"}>tdiarygraph125x125e.swf, 125x125</option>
205
+ <option value="240x180-e"#{" selected" if @conf['tdiarygraph_f.type'] == "240x180-e"}>tdiarygraph240x180e.swf, 240x180</option>
206
+ <option value="120x90-e"#{" selected" if @conf['tdiarygraph_f.type'] == "120x90-e"}>tdiarygraph120x90e.swf, 120x90</option>
207
+ </select></p>
208
+ <h3 class="subtitle">プリセットを使用しない場合は、以下で指定して下さい。</h3>
209
+ <p>Flash のファイル名<br><input name="filename" value="#{h @conf['tdiarygraph_f.filename']}" size="40"></p>
210
+ <p>Flash の表示幅<br><input name="width" value="#{h @conf['tdiarygraph_f.width']}" size="20"></p>
211
+ <p>Flash の表示高さ<br><input name="height" value="#{h @conf['tdiarygraph_f.height']}" size="20"></p>
212
+ <hr>
213
+ <h3 class="subtitle">アクセスログデータ</h3>
214
+ <p>本プラグインが作成する counter.log の複製のファイル名 (counter.log)<br><input name="log_path" value="#{h @conf['tdiarygraph_f.log_path']}" size="20"></p>
215
+ <p>累計アクセス数の初期値。(0) counter.rb で init_num を指定している場合は、同じ値 (#{@conf['counter.init_num']}) を設定してください。<br><input name="init_num" value="#{h @conf['tdiarygraph_f.init_num']}" size="20"></p>
216
+ <hr>
217
+ <h3 class="subtitle">タイトルテキスト</h3>
218
+ <p>タイトルテキスト (TDIARYGRAPH-FLASHSTYLE)<br>使用出来る文字は、英大文字 (A-Z) と数字 (0-9)、および記号のみです。<br><input name="text_text" value="#{h @conf['tdiarygraph_f.text_text']}" size="20"></p>
219
+ <p>タイトルテキストの色 (FFFFFF)<br><input name="text_rgb" value="#{h @conf['tdiarygraph_f.text_rgb']}" size="20"></p>
220
+ <h3 class="subtitle">レポートテキスト</h3>
221
+ <p>レポートの表示有無 (表示)<br><select name="text_report">
222
+ <option value="1"#{" selected" if @conf['tdiarygraph_f.text_report'] != "0"}>表示</option>
223
+ <option value="0"#{" selected" if @conf['tdiarygraph_f.text_report'] == "0"}>非表示</option>
224
+ </select></p>
225
+ <p>レポートテキストの色 (CCCCCC)<br><input name="text_report_rgb" value="#{h @conf['tdiarygraph_f.text_report_rgb']}" size="20"></p>
226
+ <h3 class="subtitle">レポート書式のカスタマイズ</h3>
227
+ <p>タグを埋め込んだ位置にデータが展開されます。<br>使用出来る文字 (タグを除く) は、英大文字 (A-Z) と数字 (0-9)、および記号のみです。<br><input name="text_report_format" value="#{h @conf['tdiarygraph_f.text_report_format']}" size="70"></p>
228
+ <p>[ 使用出来るタグ ] &lt;firstday&gt; : ログ初日, &lt;lastday&gt; : ログ最終日, &lt;days&gt; : ログ日数, &lt;total&gt; : 累計アクセス数, &lt;peak&gt; : 日別最大アクセス数, &lt;br&gt; : 改行</p>
229
+ <hr>
230
+ <h3 class="subtitle">背景や棒グラフの色</h3>
231
+ <p>背景の色 (333333)<br><input name="bg_rgb" value="#{h @conf['tdiarygraph_f.bg_rgb']}" size="20"></p>
232
+ <p>背景の不透明度 (100)<br><input name="bg_alpha" value="#{h @conf['tdiarygraph_f.bg_alpha']}" size="20"></p>
233
+ <p>背景の枠線 (非表示)<br><select name="bg_frame">
234
+ <option value="0"#{" selected" if @conf['tdiarygraph_f.bg_frame'] == "0" or @conf['tdiarygraph_f.bg_frame'] == nil or @conf['tdiarygraph_f.bg_frame'] == ""}>非表示</option>
235
+ <option value="1"#{" selected" if @conf['tdiarygraph_f.bg_frame'] == "1"}>左と上に表示</option>
236
+ </select></p>
237
+ <p>日別アクセス数棒グラフの色 (CCCCCC)<br><input name="bar_rgb" value="#{h @conf['tdiarygraph_f.bar_rgb']}" size="20"></p>
238
+ <p>日別アクセス数棒グラフの不透明度 (100)<br><input name="bar_alpha" value="#{h @conf['tdiarygraph_f.bar_alpha']}" size="20"></p>
239
+ <p>累計アクセス数棒グラフの色 (666666)<br><input name="line_rgb" value="#{h @conf['tdiarygraph_f.line_rgb']}" size="20"></p>
240
+ <p>累計アクセス数棒グラフの不透明度 (100)<br><input name="line_alpha" value="#{h @conf['tdiarygraph_f.line_alpha']}" size="20"></p>
241
+ <hr>
242
+ <h3 class="subtitle">棒グラフの線幅</h3>
243
+ <p>日別アクセス数棒グラフの線幅を絶対値で指定します。<br><input name="bar_width" value="#{h @conf['tdiarygraph_f.bar_width']}" size="20"></p>
244
+ <p>累計アクセス数棒グラフの線幅を絶対値で指定します。<br><input name="line_width" value="#{h @conf['tdiarygraph_f.line_width']}" size="20"></p>
245
+ <hr>
246
+ <h3 class="subtitle">モアレ対策</h3>
247
+ <p>棒グラフの線幅を相対的に微調整します。(0) 設定した値に対して線幅がリニアに変更されるわけではありません。<br><br><input name="bold" value="#{h @conf['tdiarygraph_f.bold']}" size="20"></p>
248
+ <hr>
249
+ <h3 class="subtitle">ユニークID を使用したファイル取得</h3>
250
+ <p>ファイル取得のリクエストにユニークID (例えば ?#{Time.now.to_i}) を含めることにより、古いファイルがブラウザにキャッシュされたままになるのを防ぎます。Flash のユニークID はプリファレンス設定時に、ログファイルのユニークID はエントリ登録時に更新されます。</p>
251
+ <p>ユニークID の付加 (付加する)<br><select name="uid">
252
+ <option value="1"#{" selected" if @conf['tdiarygraph_f.uid'] != "0"}>付加する</option>
253
+ <option value="0"#{" selected" if @conf['tdiarygraph_f.uid'] == "0"}>付加しない</option>
254
+ </select></p>
255
+ <hr>
256
+ <h3 class="subtitle">プレビュー</h3>
257
+ <p>表示したい SWF ファイル (.swf) が tdiary.rb と同じフォルダにアップロードされている必要があります。また、カウンタログファイルが SWF ファイルと同じフォルダに転送されていない場合にはグラフが表示されません。</p>
258
+ <p>プレビュー (非表示)<br><select name="preview">
259
+ <option value="0"#{" selected" if @conf['tdiarygraph_f.preview'] != "1"}>非表示</option>
260
+ <option value="1"#{" selected" if @conf['tdiarygraph_f.preview'] == "1"}>表示</option>
261
+ </select></p>
262
+ HTML
263
+
264
+ end
265
+
266
+
267
+ def tdiarygraph_flashstyle_preview
268
+ unless @conf.mobile_agent?
269
+ <<-r
270
+ <p>#{if @conf['tdiarygraph_f.preview'] == "1" then "#{tdiarygraph_flashstyle}" else "プレビュー表示を有効にすると、ここに Flash が表示されます。" end}</p>
271
+ r
272
+ end
273
+ end
274
+
275
+
276
+ def tdiarygraph_flashstyle_templete( filename="tdiarygraph468x60e.swf", argvs="", width="468", height="60" )
277
+ <<-r
278
+ <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.adobe.com/pub/shockwave/cabs/flash/swflash.cab" width="#{h width}" height="#{h height}" id="tdiarygraph" align="middle">
279
+ <param name="allowScriptAccess" value="sameDomain">
280
+ <param name="movie" value="#{h filename}#{h argvs}">
281
+ <param name="play" value="false">
282
+ <param name="loop" value="false">
283
+ <param name="quality" value="high">
284
+ <param name="wmode" value="transparent">
285
+ <param name="bgcolor" value="#ffffff">
286
+ <embed src="#{h filename}#{h argvs}" play="false" loop="false" quality="high" wmode="transparent" bgcolor="#ffffff" width="#{h width}" height="#{h height}" name="tdiarygraph" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed>
287
+ </object>
288
+ r
289
+ end
290
+
291
+
292
+ def tdiarygraph_flashstyle_text_report_format( format="" )
293
+ if format != ""
294
+ r = format.gsub('<', '&lt;').gsub('>', '&gt;').gsub(' ', '+')
295
+ end
296
+ end