tdiary 3.2.2.20130507

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 (509) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +16 -0
  4. data/.travis.yml +29 -0
  5. data/Capfile +2 -0
  6. data/ChangeLog +3173 -0
  7. data/Gemfile +58 -0
  8. data/Gemfile.lock +201 -0
  9. data/LICENSE +340 -0
  10. data/Procfile +1 -0
  11. data/README.md +33 -0
  12. data/Rakefile +26 -0
  13. data/bin/tdiary +7 -0
  14. data/config.ru +61 -0
  15. data/data/.htaccess +2 -0
  16. data/doc/HOWTO-authenticate-in-rack.md +89 -0
  17. data/doc/HOWTO-make-io.md +305 -0
  18. data/doc/HOWTO-make-plugin.md +279 -0
  19. data/doc/HOWTO-make-theme.md +67 -0
  20. data/doc/HOWTO-testing-tDiary.md +44 -0
  21. data/doc/HOWTO-use-plugin.md +148 -0
  22. data/doc/HOWTO-write-tDiary.en.md +131 -0
  23. data/doc/HOWTO-write-tDiary.md +136 -0
  24. data/doc/INSTALL-paas.md +202 -0
  25. data/doc/INSTALL.md +160 -0
  26. data/doc/README.en.md +174 -0
  27. data/doc/README.md +56 -0
  28. data/doc/UPGRADE.md +164 -0
  29. data/doc/doc.css +115 -0
  30. data/dot.htaccess +27 -0
  31. data/index.fcgi +45 -0
  32. data/index.rb +57 -0
  33. data/js/00default.js +60 -0
  34. data/js/01conf.js +62 -0
  35. data/js/02edit.coffee +5 -0
  36. data/js/02edit.js +15 -0
  37. data/js/amazon.js +43 -0
  38. data/js/calendar3.js +130 -0
  39. data/js/caretposition.js +170 -0
  40. data/js/category.js +29 -0
  41. data/js/category_autocomplete.js +96 -0
  42. data/js/comment_ajax.js +27 -0
  43. data/js/draft.js +149 -0
  44. data/js/highlight.js +36 -0
  45. data/js/image.js +181 -0
  46. data/misc/convert2.rb +123 -0
  47. data/misc/filter/antispamservice.rb +101 -0
  48. data/misc/filter/limitdays.rb +40 -0
  49. data/misc/filter/linkcheck.rb +81 -0
  50. data/misc/filter/plugin/antispamservice.rb +82 -0
  51. data/misc/filter/plugin/en/antispamservice.rb +21 -0
  52. data/misc/filter/plugin/ja/antispamservice.rb +20 -0
  53. data/misc/lib/README +4 -0
  54. data/misc/lib/compatible.rb +1 -0
  55. data/misc/lib/fcgi_patch.rb +90 -0
  56. data/misc/migrate.rb +157 -0
  57. data/misc/paas/cloudfoundry/Gemfile +26 -0
  58. data/misc/paas/cloudfoundry/Gemfile.lock +85 -0
  59. data/misc/paas/heroku/Gemfile +22 -0
  60. data/misc/paas/heroku/Gemfile.lock +85 -0
  61. data/misc/paas/sqale/Gemfile +19 -0
  62. data/misc/paas/sqale/Gemfile.lock +85 -0
  63. data/misc/paas/sqale/Procfile +1 -0
  64. data/misc/paas/sqale/dot.env +1 -0
  65. data/misc/plugin/ChangeLog.DO_NOT_UPDATE +2333 -0
  66. data/misc/plugin/a.rb +211 -0
  67. data/misc/plugin/amazon.rb +403 -0
  68. data/misc/plugin/amazon/README.en +17 -0
  69. data/misc/plugin/amazon/README.ja +29 -0
  70. data/misc/plugin/amazon/amazonimg.rb +113 -0
  71. data/misc/plugin/amazon/large.png +0 -0
  72. data/misc/plugin/amazon/medium.png +0 -0
  73. data/misc/plugin/amazon/small.png +0 -0
  74. data/misc/plugin/append-css.rb +51 -0
  75. data/misc/plugin/bq.rb +48 -0
  76. data/misc/plugin/calendar2.rb +184 -0
  77. data/misc/plugin/calendar3.rb +256 -0
  78. data/misc/plugin/category.rb +779 -0
  79. data/misc/plugin/category_autocomplete.rb +33 -0
  80. data/misc/plugin/comment_ajax.rb +11 -0
  81. data/misc/plugin/comment_mail-qmail.rb +57 -0
  82. data/misc/plugin/comment_mail-sendmail.rb +56 -0
  83. data/misc/plugin/comment_mail-smtp.rb +59 -0
  84. data/misc/plugin/comment_rank.rb +36 -0
  85. data/misc/plugin/counter.rb +631 -0
  86. data/misc/plugin/daily_theme.rb +55 -0
  87. data/misc/plugin/disp_referrer.rb +1486 -0
  88. data/misc/plugin/doctype-html401tr.rb +16 -0
  89. data/misc/plugin/draft.rb +20 -0
  90. data/misc/plugin/dropdown_calendar.rb +32 -0
  91. data/misc/plugin/edit_today.rb +50 -0
  92. data/misc/plugin/en/a.rb +10 -0
  93. data/misc/plugin/en/amazon.rb +71 -0
  94. data/misc/plugin/en/append-css.rb +17 -0
  95. data/misc/plugin/en/bq.rb +12 -0
  96. data/misc/plugin/en/calendar2.rb +12 -0
  97. data/misc/plugin/en/category.rb +204 -0
  98. data/misc/plugin/en/counter.rb +48 -0
  99. data/misc/plugin/en/daily_theme.rb +14 -0
  100. data/misc/plugin/en/disp_referrer.rb +387 -0
  101. data/misc/plugin/en/dropdown_calendar.rb +14 -0
  102. data/misc/plugin/en/edit_today.rb +22 -0
  103. data/misc/plugin/en/hide-mail-field.rb +19 -0
  104. data/misc/plugin/en/highlight.rb +29 -0
  105. data/misc/plugin/en/image.rb +54 -0
  106. data/misc/plugin/en/kw.rb +22 -0
  107. data/misc/plugin/en/makerss.rb +47 -0
  108. data/misc/plugin/en/pb-show.rb +21 -0
  109. data/misc/plugin/en/ping.rb +16 -0
  110. data/misc/plugin/en/recent_comment.rb +44 -0
  111. data/misc/plugin/en/recent_comment3.rb +56 -0
  112. data/misc/plugin/en/recent_rss.rb +33 -0
  113. data/misc/plugin/en/referer_scheme.rb +48 -0
  114. data/misc/plugin/en/search_control.rb +74 -0
  115. data/misc/plugin/en/search_form.rb +22 -0
  116. data/misc/plugin/en/speed_comment.rb +19 -0
  117. data/misc/plugin/en/tb-show.rb +37 -0
  118. data/misc/plugin/en/todo.rb +43 -0
  119. data/misc/plugin/en/weather.rb +185 -0
  120. data/misc/plugin/en/xmlrpc.rb +14 -0
  121. data/misc/plugin/footnote.rb +92 -0
  122. data/misc/plugin/gradation.rb +39 -0
  123. data/misc/plugin/gradient.rb +36 -0
  124. data/misc/plugin/hide-mail-field.rb +50 -0
  125. data/misc/plugin/highlight.rb +22 -0
  126. data/misc/plugin/html_anchor.rb +34 -0
  127. data/misc/plugin/image.rb +290 -0
  128. data/misc/plugin/ja/amazon.rb +89 -0
  129. data/misc/plugin/ja/bq.rb +13 -0
  130. data/misc/plugin/ja/calendar2.rb +12 -0
  131. data/misc/plugin/ja/category.rb +212 -0
  132. data/misc/plugin/ja/daily_theme.rb +15 -0
  133. data/misc/plugin/ja/disp_referrer.rb +644 -0
  134. data/misc/plugin/ja/edit_today.rb +23 -0
  135. data/misc/plugin/ja/hide-mail-field.rb +20 -0
  136. data/misc/plugin/ja/highlight.rb +30 -0
  137. data/misc/plugin/ja/makerss.rb +44 -0
  138. data/misc/plugin/ja/my-sequel.rb +52 -0
  139. data/misc/plugin/ja/pb-show.rb +23 -0
  140. data/misc/plugin/ja/ping.rb +17 -0
  141. data/misc/plugin/ja/recent_comment.rb +45 -0
  142. data/misc/plugin/ja/recent_comment3.rb +57 -0
  143. data/misc/plugin/ja/recent_rss.rb +34 -0
  144. data/misc/plugin/ja/referer_scheme.rb +86 -0
  145. data/misc/plugin/ja/search_control.rb +75 -0
  146. data/misc/plugin/ja/search_form.rb +32 -0
  147. data/misc/plugin/ja/tb-show.rb +38 -0
  148. data/misc/plugin/ja/todo.rb +46 -0
  149. data/misc/plugin/ja/weather.rb +402 -0
  150. data/misc/plugin/ja/xmlrpc.rb +15 -0
  151. data/misc/plugin/kw.rb +150 -0
  152. data/misc/plugin/list.rb +40 -0
  153. data/misc/plugin/makelirs.rb +89 -0
  154. data/misc/plugin/makerss.rb +744 -0
  155. data/misc/plugin/my-ex.rb +68 -0
  156. data/misc/plugin/my-sequel.rb +539 -0
  157. data/misc/plugin/navi_user.rb +19 -0
  158. data/misc/plugin/number_anchor.rb +47 -0
  159. data/misc/plugin/pb-show.rb +165 -0
  160. data/misc/plugin/ping.rb +99 -0
  161. data/misc/plugin/pre_wrap.rb +19 -0
  162. data/misc/plugin/random_google.rb +165 -0
  163. data/misc/plugin/recent_comment.rb +82 -0
  164. data/misc/plugin/recent_comment3.rb +192 -0
  165. data/misc/plugin/recent_list.rb +91 -0
  166. data/misc/plugin/recent_namazu.rb +50 -0
  167. data/misc/plugin/recent_rss.rb +305 -0
  168. data/misc/plugin/referer-antibot.rb +53 -0
  169. data/misc/plugin/referer-utf8.rb +12 -0
  170. data/misc/plugin/referer_scheme.rb +87 -0
  171. data/misc/plugin/search_control.rb +227 -0
  172. data/misc/plugin/search_form.rb +53 -0
  173. data/misc/plugin/sn.rb +107 -0
  174. data/misc/plugin/speed_comment.rb +68 -0
  175. data/misc/plugin/squeeze.rb +272 -0
  176. data/misc/plugin/src.rb +30 -0
  177. data/misc/plugin/tb-show.rb +212 -0
  178. data/misc/plugin/title_list.rb +41 -0
  179. data/misc/plugin/title_tag.rb +80 -0
  180. data/misc/plugin/tlink.rb +163 -0
  181. data/misc/plugin/todo.rb +182 -0
  182. data/misc/plugin/weather.rb +505 -0
  183. data/misc/plugin/whatsnew.rb +100 -0
  184. data/misc/plugin/xmlrpc.rb +80 -0
  185. data/misc/plugin/xmlrpc/README +20 -0
  186. data/misc/plugin/xmlrpc/xmlrpc.rb +575 -0
  187. data/misc/style/emptdiary/README.rd +83 -0
  188. data/misc/style/emptdiary/README.rd.en +78 -0
  189. data/misc/style/emptdiary/emptdiary_style.rb +199 -0
  190. data/misc/style/etdiary/README.rd +83 -0
  191. data/misc/style/etdiary/etdiary_style.rb +446 -0
  192. data/misc/style/gfm/gfm_style.rb +194 -0
  193. data/misc/style/rd/README.rd +71 -0
  194. data/misc/style/rd/rd_style.rb +366 -0
  195. data/misc/style/wiki/README +116 -0
  196. data/misc/style/wiki/README.en +101 -0
  197. data/misc/style/wiki/wiki_parser.rb +273 -0
  198. data/misc/style/wiki/wiki_style.rb +478 -0
  199. data/misc/theme_convert/Readme.rd +21 -0
  200. data/misc/theme_convert/append.rcss +150 -0
  201. data/misc/theme_convert/theme_convert.rb +453 -0
  202. data/plugin/00default.rb +1015 -0
  203. data/plugin/05referer.rb +298 -0
  204. data/plugin/10spamfilter.rb +183 -0
  205. data/plugin/50sp.rb +146 -0
  206. data/plugin/60sf.rb +152 -0
  207. data/plugin/90migrate.rb +109 -0
  208. data/plugin/en/00default.rb +390 -0
  209. data/plugin/en/05referer.rb +49 -0
  210. data/plugin/en/10spamfilter.rb +81 -0
  211. data/plugin/en/50sp.rb +56 -0
  212. data/plugin/en/60sf.rb +60 -0
  213. data/plugin/ja/00default.rb +401 -0
  214. data/plugin/ja/05referer.rb +47 -0
  215. data/plugin/ja/10spamfilter.rb +79 -0
  216. data/plugin/ja/50sp.rb +66 -0
  217. data/plugin/ja/60sf.rb +73 -0
  218. data/public/.gitkeep +0 -0
  219. data/public/images/.gitkeep +0 -0
  220. data/public/javascripts/.gitkeep +0 -0
  221. data/public/stylesheets/.gitkeep +0 -0
  222. data/skel/category.rhtml +9 -0
  223. data/skel/conf.rhtml +23 -0
  224. data/skel/day.rhtml +33 -0
  225. data/skel/diary.rhtml +83 -0
  226. data/skel/footer.rhtml +8 -0
  227. data/skel/header.rhtml +10 -0
  228. data/skel/i.category.rhtml +6 -0
  229. data/skel/i.conf.rhtml +14 -0
  230. data/skel/i.day.rhtml +28 -0
  231. data/skel/i.diary.rhtml +17 -0
  232. data/skel/i.footer.rhtml +2 -0
  233. data/skel/i.header.rhtml +3 -0
  234. data/skel/i.latest.rhtml +24 -0
  235. data/skel/i.month.rhtml +39 -0
  236. data/skel/i.search.rhtml +5 -0
  237. data/skel/i.update.rhtml +40 -0
  238. data/skel/i.update.rhtml.en +40 -0
  239. data/skel/latest.rhtml +27 -0
  240. data/skel/mail.rtxt +18 -0
  241. data/skel/mail.rtxt.en +18 -0
  242. data/skel/month.rhtml +27 -0
  243. data/skel/plugin_error.rhtml +27 -0
  244. data/skel/preview.rhtml +85 -0
  245. data/skel/preview.rhtml.en +72 -0
  246. data/skel/referer.rhtml +24 -0
  247. data/skel/search.rhtml +14 -0
  248. data/skel/tdiary.rconf +76 -0
  249. data/skel/update.rhtml +103 -0
  250. data/skel/update.rhtml.en +83 -0
  251. data/spec/acceptance/append_comment_spec.rb +94 -0
  252. data/spec/acceptance/append_diary_spec.rb +98 -0
  253. data/spec/acceptance/bugfix/encoding_error_spec.rb +27 -0
  254. data/spec/acceptance/save_conf_comment_spec.rb +87 -0
  255. data/spec/acceptance/save_conf_default_spec.rb +169 -0
  256. data/spec/acceptance/save_conf_dnsbl_spec.rb +152 -0
  257. data/spec/acceptance/save_conf_filter_spec.rb +50 -0
  258. data/spec/acceptance/save_conf_plugin_spec.rb +69 -0
  259. data/spec/acceptance/save_conf_referer_spec.rb +60 -0
  260. data/spec/acceptance/save_conf_security_spec.rb +280 -0
  261. data/spec/acceptance/support/helpers.rb +49 -0
  262. data/spec/acceptance/support/paths.rb +7 -0
  263. data/spec/acceptance/update_diary_spec.rb +113 -0
  264. data/spec/acceptance/view_category_spec.rb +38 -0
  265. data/spec/acceptance/view_comment_spec.rb +67 -0
  266. data/spec/acceptance/view_diary_spec.rb +126 -0
  267. data/spec/acceptance/view_referer_spec.rb +31 -0
  268. data/spec/acceptance_helper.rb +101 -0
  269. data/spec/core/compatible_spec.rb +54 -0
  270. data/spec/core/core_ext_spec.rb +59 -0
  271. data/spec/core/plugin_spec.rb +389 -0
  272. data/spec/core/rack/assets/precompile_spec.rb +76 -0
  273. data/spec/core/rack/html_anchor_spec.rb +57 -0
  274. data/spec/core/rack/valid_request_path_spec.rb +67 -0
  275. data/spec/core/style/emptdiary_style_spec.rb +165 -0
  276. data/spec/core/style/etdiary_style_spec.rb +512 -0
  277. data/spec/core/style/gfm_style_spec.rb +334 -0
  278. data/spec/core/style/rd_style_spec.rb +202 -0
  279. data/spec/core/style/tdiary_style_spec.rb +240 -0
  280. data/spec/core/style/wiki_style_spec.rb +441 -0
  281. data/spec/fixtures/ascii8bit-pstore.db +0 -0
  282. data/spec/fixtures/invalid-sequence-volatile.tdr +9 -0
  283. data/spec/fixtures/just_installed.conf +1 -0
  284. data/spec/fixtures/plugin/ja/sample.rb +4 -0
  285. data/spec/fixtures/plugin/sample.rb +6 -0
  286. data/spec/fixtures/sample.rb +12 -0
  287. data/spec/fixtures/tdiary.conf.gem +212 -0
  288. data/spec/fixtures/tdiary.conf.rack +212 -0
  289. data/spec/fixtures/tdiary.conf.rdb +227 -0
  290. data/spec/fixtures/tdiary.conf.secure +204 -0
  291. data/spec/fixtures/tdiary.conf.webrick +212 -0
  292. data/spec/javascripts/00default_spec.js +35 -0
  293. data/spec/javascripts/fixtures/00default.html +1 -0
  294. data/spec/javascripts/support/jasmine.yml +76 -0
  295. data/spec/plugin/bq_spec.rb +24 -0
  296. data/spec/plugin/plugin_helper.rb +203 -0
  297. data/spec/spec_helper.rb +32 -0
  298. data/tdiary.conf.beginner +244 -0
  299. data/tdiary.conf.sample +345 -0
  300. data/tdiary.conf.sample-en +333 -0
  301. data/tdiary.gemspec +26 -0
  302. data/tdiary.rb +151 -0
  303. data/tdiary/admin.rb +236 -0
  304. data/tdiary/application.rb +57 -0
  305. data/tdiary/author_only_base.rb +171 -0
  306. data/tdiary/base.rb +220 -0
  307. data/tdiary/cli.rb +116 -0
  308. data/tdiary/comment.rb +40 -0
  309. data/tdiary/comment_manager.rb +94 -0
  310. data/tdiary/compatible.rb +72 -0
  311. data/tdiary/config.rb +270 -0
  312. data/tdiary/core_ext.rb +122 -0
  313. data/tdiary/deploy.rb +50 -0
  314. data/tdiary/dispatcher.rb +77 -0
  315. data/tdiary/dispatcher/index_main.rb +122 -0
  316. data/tdiary/dispatcher/update_main.rb +101 -0
  317. data/tdiary/environment.rb +15 -0
  318. data/tdiary/filter.rb +48 -0
  319. data/tdiary/filter/default.rb +54 -0
  320. data/tdiary/filter/spam.rb +304 -0
  321. data/tdiary/io/base.rb +70 -0
  322. data/tdiary/io/cache/file.rb +123 -0
  323. data/tdiary/io/cache/memcached.rb +88 -0
  324. data/tdiary/io/cache/redis.rb +100 -0
  325. data/tdiary/io/default.rb +297 -0
  326. data/tdiary/io/pstore.rb +252 -0
  327. data/tdiary/io/rdb.rb +213 -0
  328. data/tdiary/lang/en.rb +79 -0
  329. data/tdiary/lang/ja.rb +72 -0
  330. data/tdiary/plugin.rb +375 -0
  331. data/tdiary/rack/assets/precompile.rb +37 -0
  332. data/tdiary/rack/auth/basic.rb +38 -0
  333. data/tdiary/rack/auth/omniauth.rb +51 -0
  334. data/tdiary/rack/html_anchor.rb +31 -0
  335. data/tdiary/rack/valid_request_path.rb +36 -0
  336. data/tdiary/referer_manager.rb +80 -0
  337. data/tdiary/request.rb +217 -0
  338. data/tdiary/response.rb +29 -0
  339. data/tdiary/server.rb +85 -0
  340. data/tdiary/style.rb +194 -0
  341. data/tdiary/style/tdiary_style.rb +198 -0
  342. data/tdiary/style/wiki_style.rb +213 -0
  343. data/tdiary/tasks.rb +1 -0
  344. data/tdiary/tasks/assets.rake +31 -0
  345. data/tdiary/tasks/auth.rake +28 -0
  346. data/tdiary/tasks/db.rake +110 -0
  347. data/tdiary/tasks/doc.rake +31 -0
  348. data/tdiary/tasks/heroku.rake +37 -0
  349. data/tdiary/tasks/jasmine.rake +16 -0
  350. data/tdiary/tasks/rdoc.rake +24 -0
  351. data/tdiary/tasks/release.rake +122 -0
  352. data/tdiary/tasks/rspec.rake +51 -0
  353. data/tdiary/tasks/server.rake +33 -0
  354. data/tdiary/tasks/test.rake +17 -0
  355. data/tdiary/version.rb +3 -0
  356. data/tdiary/view.rb +468 -0
  357. data/tdiary/view_helper.rb +15 -0
  358. data/test/disp_referrer_test.rb +93 -0
  359. data/test/my-sequel_test.rb +238 -0
  360. data/test/test_helper.rb +7 -0
  361. data/test/test_plugin_helper.rb +64 -0
  362. data/test/test_plugin_helper_test.rb +28 -0
  363. data/test/weather_test.rb +33 -0
  364. data/theme/base.css +268 -0
  365. data/theme/conf.block.png +0 -0
  366. data/theme/conf.css +254 -0
  367. data/theme/default/README +11 -0
  368. data/theme/default/body.png +0 -0
  369. data/theme/default/default.css +743 -0
  370. data/theme/help.png +0 -0
  371. data/theme/loading.gif +0 -0
  372. data/theme/tdiary1/README +7 -0
  373. data/theme/tdiary1/tdiary1.css +394 -0
  374. data/theme/tdiary2/README +19 -0
  375. data/theme/tdiary2/tdiary2.css +624 -0
  376. data/update.fcgi +45 -0
  377. data/update.rb +57 -0
  378. data/vendor/hikidoc-0.0.6/COPYING +28 -0
  379. data/vendor/hikidoc-0.0.6/NEWS +30 -0
  380. data/vendor/hikidoc-0.0.6/NEWS.ja +30 -0
  381. data/vendor/hikidoc-0.0.6/README +86 -0
  382. data/vendor/hikidoc-0.0.6/README.ja +83 -0
  383. data/vendor/hikidoc-0.0.6/Rakefile +68 -0
  384. data/vendor/hikidoc-0.0.6/TextFormattingRules +320 -0
  385. data/vendor/hikidoc-0.0.6/TextFormattingRules.ja +318 -0
  386. data/vendor/hikidoc-0.0.6/bin/hikidoc +66 -0
  387. data/vendor/hikidoc-0.0.6/lib/hikidoc.rb +914 -0
  388. data/vendor/hikidoc-0.0.6/setup.rb +1360 -0
  389. data/vendor/hikidoc-0.0.6/test/run-test.rb +13 -0
  390. data/vendor/hikidoc-0.0.6/test/test_hikidoc.rb +506 -0
  391. data/vendor/imagesize-0.1.1/Manifest.txt +19 -0
  392. data/vendor/imagesize-0.1.1/README.txt +49 -0
  393. data/vendor/imagesize-0.1.1/lib/image_size.rb +305 -0
  394. data/vendor/imagesize-0.1.1/lib/image_size/version.rb +9 -0
  395. data/vendor/imagesize-0.1.1/setup.rb +1585 -0
  396. data/vendor/imagesize-0.1.1/test/2-4-7.png +0 -0
  397. data/vendor/imagesize-0.1.1/test/4_1_2.gif +0 -0
  398. data/vendor/imagesize-0.1.1/test/bmp.bmp +0 -0
  399. data/vendor/imagesize-0.1.1/test/cursor.xbm +6 -0
  400. data/vendor/imagesize-0.1.1/test/detect.swf +0 -0
  401. data/vendor/imagesize-0.1.1/test/pbm.pbm +0 -0
  402. data/vendor/imagesize-0.1.1/test/pcx.pcx +0 -0
  403. data/vendor/imagesize-0.1.1/test/pgm.pgm +5 -0
  404. data/vendor/imagesize-0.1.1/test/test.xpm +38 -0
  405. data/vendor/imagesize-0.1.1/test/test_helper.rb +2 -0
  406. data/vendor/imagesize-0.1.1/test/test_image_size.rb +71 -0
  407. data/vendor/imagesize-0.1.1/test/tiff.tiff +0 -0
  408. data/vendor/imagesize-0.1.1/test/tokyo_tower.jpg +0 -0
  409. data/vendor/imagesize-0.1.1/test/tower_e.gif.psd +0 -0
  410. data/vendor/jasmine-jquery-1.4.2/jasmine-jquery.js +548 -0
  411. data/vendor/jquery-1.8/jquery.js +9227 -0
  412. data/vendor/rdtool-0.6.38/COPYING.txt +339 -0
  413. data/vendor/rdtool-0.6.38/Gemfile +3 -0
  414. data/vendor/rdtool-0.6.38/HISTORY +318 -0
  415. data/vendor/rdtool-0.6.38/LGPL-2.1 +502 -0
  416. data/vendor/rdtool-0.6.38/LICENSE.txt +58 -0
  417. data/vendor/rdtool-0.6.38/README.html +66 -0
  418. data/vendor/rdtool-0.6.38/README.ja.html +73 -0
  419. data/vendor/rdtool-0.6.38/README.rd +76 -0
  420. data/vendor/rdtool-0.6.38/README.rd.ja +85 -0
  421. data/vendor/rdtool-0.6.38/Rakefile +152 -0
  422. data/vendor/rdtool-0.6.38/TODO +22 -0
  423. data/vendor/rdtool-0.6.38/bin/rd2 +283 -0
  424. data/vendor/rdtool-0.6.38/bin/rdswap.rb +207 -0
  425. data/vendor/rdtool-0.6.38/doc/rd-draft.html +456 -0
  426. data/vendor/rdtool-0.6.38/doc/rd-draft.ja.html +466 -0
  427. data/vendor/rdtool-0.6.38/doc/rd-draft.rd +479 -0
  428. data/vendor/rdtool-0.6.38/doc/rd-draft.rd.ja +487 -0
  429. data/vendor/rdtool-0.6.38/lib/rd/block-element.rb +114 -0
  430. data/vendor/rdtool-0.6.38/lib/rd/complex-list-item.rb +65 -0
  431. data/vendor/rdtool-0.6.38/lib/rd/desclist.rb +55 -0
  432. data/vendor/rdtool-0.6.38/lib/rd/document-struct.rb +46 -0
  433. data/vendor/rdtool-0.6.38/lib/rd/dot.rd2rc +18 -0
  434. data/vendor/rdtool-0.6.38/lib/rd/element.rb +160 -0
  435. data/vendor/rdtool-0.6.38/lib/rd/filter.rb +255 -0
  436. data/vendor/rdtool-0.6.38/lib/rd/head-filter.rb +14 -0
  437. data/vendor/rdtool-0.6.38/lib/rd/inline-element.rb +233 -0
  438. data/vendor/rdtool-0.6.38/lib/rd/labeled-element.rb +14 -0
  439. data/vendor/rdtool-0.6.38/lib/rd/list.rb +57 -0
  440. data/vendor/rdtool-0.6.38/lib/rd/loose-struct.rb +11 -0
  441. data/vendor/rdtool-0.6.38/lib/rd/methodlist.rb +57 -0
  442. data/vendor/rdtool-0.6.38/lib/rd/output-format-visitor.rb +30 -0
  443. data/vendor/rdtool-0.6.38/lib/rd/package.rb +4 -0
  444. data/vendor/rdtool-0.6.38/lib/rd/parser-util.rb +14 -0
  445. data/vendor/rdtool-0.6.38/lib/rd/post-install +1 -0
  446. data/vendor/rdtool-0.6.38/lib/rd/pre-setup.rb +18 -0
  447. data/vendor/rdtool-0.6.38/lib/rd/rbl-file.rb +69 -0
  448. data/vendor/rdtool-0.6.38/lib/rd/rbl-suite.rb +37 -0
  449. data/vendor/rdtool-0.6.38/lib/rd/rd-struct.rb +86 -0
  450. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-lib.rb +266 -0
  451. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-opt.rb +34 -0
  452. data/vendor/rdtool-0.6.38/lib/rd/rd2html-lib.rb +490 -0
  453. data/vendor/rdtool-0.6.38/lib/rd/rd2html-opt.rb +67 -0
  454. data/vendor/rdtool-0.6.38/lib/rd/rd2man-lib.rb +251 -0
  455. data/vendor/rdtool-0.6.38/lib/rd/rd2rdo-lib.rb +19 -0
  456. data/vendor/rdtool-0.6.38/lib/rd/rd2rmi-lib.rb +32 -0
  457. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.ry +518 -0
  458. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.tab.rb +1061 -0
  459. data/vendor/rdtool-0.6.38/lib/rd/rdfmt.rb +15 -0
  460. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.ry +503 -0
  461. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.tab.rb +1243 -0
  462. data/vendor/rdtool-0.6.38/lib/rd/rdvisitor.rb +214 -0
  463. data/vendor/rdtool-0.6.38/lib/rd/reference-resolver.rb +114 -0
  464. data/vendor/rdtool-0.6.38/lib/rd/search-file.rb +14 -0
  465. data/vendor/rdtool-0.6.38/lib/rd/tree.rb +103 -0
  466. data/vendor/rdtool-0.6.38/lib/rd/version.rb +41 -0
  467. data/vendor/rdtool-0.6.38/lib/rd/visitor.rb +86 -0
  468. data/vendor/rdtool-0.6.38/rdtool.gemspec +125 -0
  469. data/vendor/rdtool-0.6.38/setup.rb +1596 -0
  470. data/vendor/rdtool-0.6.38/test/data/includee1.html +1 -0
  471. data/vendor/rdtool-0.6.38/test/data/includee2.html +1 -0
  472. data/vendor/rdtool-0.6.38/test/data/includee3.nothtml +1 -0
  473. data/vendor/rdtool-0.6.38/test/data/includee4.xhtml +0 -0
  474. data/vendor/rdtool-0.6.38/test/data/label.rbl +2 -0
  475. data/vendor/rdtool-0.6.38/test/data/label2.rbl +2 -0
  476. data/vendor/rdtool-0.6.38/test/data/sub/includee2.html +1 -0
  477. data/vendor/rdtool-0.6.38/test/data/sub/includee4.html +0 -0
  478. data/vendor/rdtool-0.6.38/test/dummy-observer.rb +6 -0
  479. data/vendor/rdtool-0.6.38/test/dummy.rb +33 -0
  480. data/vendor/rdtool-0.6.38/test/temp-dir.rb +19 -0
  481. data/vendor/rdtool-0.6.38/test/test-block-parser.rb +46 -0
  482. data/vendor/rdtool-0.6.38/test/test-desclist-item.rb +219 -0
  483. data/vendor/rdtool-0.6.38/test/test-document-element.rb +46 -0
  484. data/vendor/rdtool-0.6.38/test/test-document-struct.rb +66 -0
  485. data/vendor/rdtool-0.6.38/test/test-element.rb +46 -0
  486. data/vendor/rdtool-0.6.38/test/test-headline.rb +80 -0
  487. data/vendor/rdtool-0.6.38/test/test-inline-parser.rb +46 -0
  488. data/vendor/rdtool-0.6.38/test/test-list-item.rb +54 -0
  489. data/vendor/rdtool-0.6.38/test/test-list.rb +53 -0
  490. data/vendor/rdtool-0.6.38/test/test-methodlist-item.rb +73 -0
  491. data/vendor/rdtool-0.6.38/test/test-nonterminal-element.rb +170 -0
  492. data/vendor/rdtool-0.6.38/test/test-nonterminal-inline.rb +33 -0
  493. data/vendor/rdtool-0.6.38/test/test-output-format-visitor.rb +48 -0
  494. data/vendor/rdtool-0.6.38/test/test-parser-util.rb +41 -0
  495. data/vendor/rdtool-0.6.38/test/test-rbl-file.rb +156 -0
  496. data/vendor/rdtool-0.6.38/test/test-rbl-suite.rb +43 -0
  497. data/vendor/rdtool-0.6.38/test/test-rd2html-lib.rb +496 -0
  498. data/vendor/rdtool-0.6.38/test/test-rdtree.rb +17 -0
  499. data/vendor/rdtool-0.6.38/test/test-rdvisitor.rb +29 -0
  500. data/vendor/rdtool-0.6.38/test/test-reference-resolver.rb +202 -0
  501. data/vendor/rdtool-0.6.38/test/test-reference.rb +132 -0
  502. data/vendor/rdtool-0.6.38/test/test-search-file.rb +22 -0
  503. data/vendor/rdtool-0.6.38/test/test-terminal-inline.rb +41 -0
  504. data/vendor/rdtool-0.6.38/test/test-textblock.rb +44 -0
  505. data/vendor/rdtool-0.6.38/test/test-tree.rb +82 -0
  506. data/vendor/rdtool-0.6.38/test/test-version.rb +57 -0
  507. data/vendor/rdtool-0.6.38/test/test-visitor.rb +230 -0
  508. data/vendor/rdtool-0.6.38/utils/rd-mode.el +464 -0
  509. metadata +666 -0
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ # gradation.rb
3
+ #
4
+ # gradation.rb: 文字列をグラデーション表示
5
+ # パラメタ:
6
+ # str: 文字列
7
+ # first_color: グラデーション開始色(16進 6桁指定)
8
+ # last_color: グラデーション終了色(16進 6桁指定)
9
+ #
10
+ # Copyright (c) 2002 TADA Tadashi <sho@spc.gr.jp>
11
+ # You can distribute this file under the GPL2.
12
+ #
13
+ def gradation( str, first_color, last_color )
14
+ ary = str.split( //u )
15
+ len = ary.length - 1
16
+ result = ""
17
+ r = first_color[0..1].hex.to_f
18
+ g = first_color[2..3].hex.to_f
19
+ b = first_color[4..5].hex.to_f
20
+ rd = ((last_color[0..1].hex - r)/len)
21
+ gd = ((last_color[2..3].hex - g)/len)
22
+ bd = ((last_color[4..5].hex - b)/len)
23
+ ary.each do |x|
24
+ c = sprintf( '%02x%02x%02x', r, g, b )
25
+ result << %Q[<span style="color: ##{c}">#{h x}</span>]
26
+ r += rd
27
+ g += gd
28
+ b += bd
29
+ end
30
+ result
31
+ end
32
+
33
+
34
+ # Local Variables:
35
+ # mode: ruby
36
+ # indent-tabs-mode: t
37
+ # tab-width: 3
38
+ # ruby-indent-level: 3
39
+ # End:
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ # gradient.rb
3
+ #
4
+ # gradient.rb: 文字の大きさを変化させながら表示
5
+ # パラメタ:
6
+ # str: 文字列
7
+ # first_size: 開始文字サイズ(数値、単位pt)
8
+ # last_size: 開始文字サイズ(数値、単位pt)
9
+ #
10
+ # 例: 「こんなこともできます」を10ptから30ptに拡大
11
+ # <%=gradient 'こんなこともできます', 10, 30 %>
12
+ #
13
+ # Copyright (c) 2002 TADA Tadashi <sho@spc.gr.jp>
14
+ # You can distribute this file under the GPL2.
15
+ #
16
+ def gradient( str, first_size, last_size )
17
+ ary = str.split( //u )
18
+ len = ary.length - 1
19
+ result = ""
20
+ fontsize = first_size.to_f
21
+ sd = ( last_size - first_size ).to_f / len
22
+ ary.each do |x|
23
+ s = sprintf( '%d',fontsize.round )
24
+ result << %Q[<span style="font-size: #{s}pt;">#{h x}</span>]
25
+ fontsize += sd
26
+ end
27
+ result
28
+ end
29
+
30
+
31
+ # Local Variables:
32
+ # mode: ruby
33
+ # indent-tabs-mode: t
34
+ # tab-width: 3
35
+ # ruby-indent-level: 3
36
+ # End:
@@ -0,0 +1,50 @@
1
+ #
2
+ # hide-mail-field.rb: Hide E-mail field in TSUKKOMI form against spams.
3
+ #
4
+ # To enable this plugin effective, you have to add '@' or '.*' into E-mail
5
+ # address field in spamfilter plugin.
6
+ #
7
+ # Copyright (C) 2007 by TADA Tadahi <sho@spc.gr.jp>
8
+ # Distributed under GPL.
9
+ #
10
+ add_header_proc do
11
+ if @mode == 'day' and not @cgi.mobile_agent? then
12
+ <<-STYLE
13
+ <style type="text/css"><!--
14
+ form.comment div.mail { display: none; }
15
+ --></style>
16
+ STYLE
17
+ else
18
+ ''
19
+ end
20
+ end
21
+
22
+ add_footer_proc do
23
+ if @mode == 'day' and not @cgi.mobile_agent? then
24
+ <<-SCRIPT
25
+ <script type="text/javascript"><!--
26
+ document.getElementsByName("mail")[0].value = "";
27
+ //--></script>
28
+ SCRIPT
29
+ else
30
+ ''
31
+ end
32
+ end
33
+
34
+ def comment_form_mobile_mail_field
35
+ %Q|<INPUT NAME="mail" TYPE="hidden">|
36
+ end
37
+
38
+ add_conf_proc( 'hide-mail-field', @hide_mail_field_label_conf, 'security' ) do
39
+ if @mode == 'saveconf'
40
+ @conf['comment_description'] = @cgi.params['comment_description'][0]
41
+ end
42
+ hide_mail_field_conf_html
43
+ end
44
+
45
+ # Local Variables:
46
+ # mode: ruby
47
+ # indent-tabs-mode: t
48
+ # tab-width: 3
49
+ # ruby-indent-level: 3
50
+ # End:
@@ -0,0 +1,22 @@
1
+ #
2
+ # highlight.rb: Highlighting the element jumped from other pages.
3
+ #
4
+ # Copyright (C) 2003 by Ryuji SAKAI
5
+ # Copyright (C) 2003 by Kazuhiro NISHIYAMA
6
+ # Copyright (C) 2011 by MATSUOKA Kohei
7
+ # You can redistribute it and/or modify it under GPL2.
8
+ #
9
+
10
+ if @mode == 'day' and not bot? then
11
+ enable_js('highlight.js')
12
+ title = (@conf.html_title.gsub(/\\/, '\\\\\\') || '').gsub(/"/, '\\"')
13
+ add_js_setting('$tDiary.title', %Q|"#{title}(#{@date.strftime('%Y-%m-%d')})"|)
14
+ end
15
+
16
+ # Local Variables:
17
+ # mode: ruby
18
+ # indent-tabs-mode: t
19
+ # tab-width: 3
20
+ # ruby-indent-level: 3
21
+ # End:
22
+ # vi: ts=3 sw=3
@@ -0,0 +1,34 @@
1
+ # -*- coding: utf-8 -*-
2
+ # html_anchor
3
+ #
4
+ # anchor: アンカーを「YYYYMMDD.html」「YYYYMM.html」形式に置き換える
5
+ # tDiaryから自動的に呼び出されるので、プラグインファイルを
6
+ # 設置するだけでよい。このプラグインを有効に使うためには、
7
+ # Webサーバ側の設定変更も必要。Webサーバの設定に関しては、
8
+ # 以下のサイトが参考になる。
9
+ #
10
+ # http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?html%A4%C7%A5%A2%A5%AF%A5%BB%A5%B9%A4%B7%A4%BF%A4%A4
11
+ #
12
+ # Copyright (c) 2002 TADA Tadashi <sho@spc.gr.jp>
13
+ # Distributed under the GPL
14
+ #
15
+
16
+ def anchor( s )
17
+ if /^([\-\d]+)#?([pct]\d*)?$/ =~ s then
18
+ if $2 then
19
+ "#$1.html##$2"
20
+ else
21
+ "#$1.html"
22
+ end
23
+ else
24
+ ""
25
+ end
26
+ end
27
+
28
+
29
+ # Local Variables:
30
+ # mode: ruby
31
+ # indent-tabs-mode: t
32
+ # tab-width: 3
33
+ # ruby-indent-level: 3
34
+ # End:
@@ -0,0 +1,290 @@
1
+ # -*- coding: utf-8 -*-
2
+ # image.rb
3
+ # -pv-
4
+ #
5
+ # 名称:
6
+ # 絵日記Plugin
7
+ #
8
+ # 概要:
9
+ # 日記更新画面からの画像アップロード、本文への表示
10
+ #
11
+ # 使う場所:
12
+ # 本文
13
+ #
14
+ # 使い方:
15
+ # image( number, 'altword', thumbnail, size, place ) - 画像を表示します。
16
+ # number - 画像の番号0、1、2等
17
+ # altword - imgタグの altに入れる文字列
18
+ # thumbnail - サムネイル(小さな画像)を指定する(省略可)
19
+ # size - 画像のサイズ(Array)。[width, height]の形式で指定(省略可)
20
+ # place - imgタグのclass名(省略可)。省略時は'photo'
21
+ #
22
+ # image_left( number, 'altword', thumbnail, size ) - imageにclass=leftを追加します。
23
+ # image_right( number, 'altword', thumbnail, size ) - imageにclass=rightを追加します。
24
+ #
25
+ # image_link( number, 'desc' ) - 画像へのリンクを生成します。
26
+ # number - 画像の番号0、1、2等
27
+ # desc - 画像の説明
28
+ #
29
+ # その他:
30
+ # tDiary version 1.5.4以降で動作します。
31
+ # tdiary.confで指定できるオプション:
32
+ # @options['image.dir']
33
+ # 画像ファイルを保存するディレクトリ。無指定時は'./images/'
34
+ # Webサーバの権限で書き込めるようにしておく必要があります。
35
+ # @options['image.url']
36
+ # 画像ファイルを保存するディレクトリのURL。無指定時は'./images/'
37
+ # @options['image.maxnum']
38
+ # 1日あたりの最大画像数。無指定時は1
39
+ # ただし@secure = true時のみ有効
40
+ # @options['image.maxsize']
41
+ # 1枚あたりの最大画像バイト数。無指定時は10000
42
+ # ただし@secure = true時のみ有効
43
+ # @options['image.maxwidth']
44
+ # sizeを指定しなかった場合に指定できる画像の最大表示幅。無指定時はnil
45
+ # 表示のたびにファイルアクセスが入るので、重くなるかも?
46
+ # @secure = true時は無効
47
+ #
48
+ # ライセンスについて:
49
+ # Copyright (c) 2002,2003 Daisuke Kato <dai@kato-agri.com>
50
+ # Copyright (c) 2002 Toshi Okada <toshi@neverland.to>
51
+ # Copyright (c) 2003 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
52
+ # Distributed under the GPL
53
+ #
54
+
55
+ unless @resource_loaded then
56
+ def image_error_num( max ); "画像は1日#{h max}枚までです。不要な画像を削除してから追加してください"; end
57
+ def image_error_size( max ); "画像の最大サイズは#{h max}バイトまでです"; end
58
+ def image_label_list_caption; '絵日記(一覧・削除) - 画像をクリックすると本文に追加できます'; end
59
+ def image_label_add_caption; '絵日記(追加)'; end
60
+ def image_label_description; '画像の説明'; end
61
+ def image_label_add_plugin; '本文に追加'; end
62
+ def image_label_delete; 'チェックした画像の削除'; end
63
+ def image_label_only_jpeg; 'JPEGのみ'; end
64
+ def image_label_add_image; 'この画像をアップロードする'; end
65
+ def image_label_drop_here; 'ここにファイルをドロップ'; end
66
+ end
67
+
68
+ def image( id, alt = 'image', thumbnail = nil, size = nil, place = 'photo' )
69
+ if @conf.secure then
70
+ image = "#{@image_date}_#{id}.jpg"
71
+ image_t = "#{@image_date}_#{thumbnail}.jpg" if thumbnail
72
+ else
73
+ image = image_list( @image_date )[id.to_i]
74
+ image_t = image_list( @image_date )[thumbnail.to_i] if thumbnail
75
+ end
76
+ if @cgi.smartphone? then
77
+ size = ''
78
+ elsif size
79
+ if size.kind_of?(Array)
80
+ if size.length > 1
81
+ size = %Q| width="#{h size[0]}" height="#{h size[1]}"|
82
+ elsif size.length > 0
83
+ size = %Q| width="#{h size[0]}"|
84
+ end
85
+ else
86
+ size = %Q| width="#{size.to_i}"|
87
+ end
88
+ elsif @image_maxwidth and not @conf.secure then
89
+ File::open( "#{@image_dir}/#{image}".untaint, 'rb' ) do |f|
90
+ t, w, h = image_info( f )
91
+ if w > @image_maxwidth then
92
+ size = %Q[ width="#{h @image_maxwidth}"]
93
+ else
94
+ size = ""
95
+ end
96
+ end
97
+ end
98
+ if thumbnail then
99
+ %Q[<a href="#{h @image_url}/#{h image}"><img class="#{h place}" src="#{h @image_url}/#{h image_t}" alt="#{h alt}" title="#{h alt}"#{size}></a>]
100
+ else
101
+ %Q[<img class="#{h place}" src="#{h @image_url}/#{h image}" alt="#{h alt}" title="#{h alt}"#{size}>]
102
+ end
103
+ end
104
+
105
+ def image_left( id, alt = "image", thumbnail = nil, width = nil )
106
+ image( id, alt, thumbnail, width, "left" )
107
+ end
108
+
109
+ def image_right( id, alt = "image", thumbnail = nil, width = nil )
110
+ image( id, alt, thumbnail, width, "right" )
111
+ end
112
+
113
+ def image_link( id, desc )
114
+ if @conf.secure then
115
+ image = "#{@image_date}_#{id}.jpg"
116
+ else
117
+ image = image_list( @image_date )[id.to_i]
118
+ end
119
+ %Q[<a href="#{h @image_url}/#{h image}">#{desc}</a>]
120
+ end
121
+
122
+ #
123
+ # initialize
124
+ #
125
+ @image_dir = @options && @options['image.dir'] || './images/'
126
+ @image_dir.chop! if /\/$/ =~ @image_dir
127
+ @image_url = @options && @options['image.url'] || "#{base_url}images/"
128
+ @image_url.chop! if /\/$/ =~ @image_url
129
+ @image_maxwidth = @options && @options['image.maxwidth'] || nil
130
+
131
+ add_body_enter_proc do |date|
132
+ @image_date = date.strftime( "%Y%m%d" )
133
+ ""
134
+ end
135
+
136
+ #
137
+ # service methods below.
138
+ #
139
+
140
+ def image_info( f )
141
+ require 'image_size'
142
+ info = ImageSize::new( f.read )
143
+ [info.get_type.downcase.sub( /jpeg/, 'jpg' ), info.get_size].flatten
144
+ end
145
+
146
+ def image_ext
147
+ if @conf.secure then
148
+ 'jpg'
149
+ else
150
+ 'jpg|jpeg|gif|png'
151
+ end
152
+ end
153
+
154
+ def image_list( date )
155
+ return @image_list if @conf.secure and @image_list
156
+ list = []
157
+ reg = /#{date}_(\d+)\.(#{image_ext})$/
158
+ begin
159
+ Dir::glob( @image_dir + "/#{date}_*" ) do |file|
160
+ file = File.basename( file )
161
+ list[$1.to_i] = file if reg =~ file
162
+ end
163
+ rescue Errno::ENOENT
164
+ end
165
+ list
166
+ end
167
+
168
+ if /^(form|edit|formplugin|showcomment)$/ =~ @mode then
169
+ enable_js( 'image.js' )
170
+ add_js_setting( '$tDiary.plugin.image' )
171
+ add_js_setting( '$tDiary.plugin.image.alt', %Q|'#{image_label_description}'| )
172
+ add_js_setting( '$tDiary.plugin.image.drop_here', %Q|'#{image_label_drop_here}'| )
173
+ @image_list = image_list( @date.strftime( '%Y%m%d' ) ) if @conf.secure
174
+ end
175
+
176
+ if /^formplugin$/ =~ @mode then
177
+ maxnum = @options['image.maxnum'] || 1
178
+ maxsize = @options['image.maxsize'] || 10000
179
+
180
+ begin
181
+ date = @date.strftime( "%Y%m%d" )
182
+ images = image_list( date )
183
+ if @cgi.params['plugin_image_addimage'][0]
184
+ @cgi.params['plugin_image_file'].each do |file|
185
+ filename = file.original_filename
186
+ extension, = image_info( file )
187
+ file.rewind
188
+
189
+ if extension =~ /\A(#{image_ext})\z/i
190
+ begin
191
+ size = file.size
192
+ rescue NameError
193
+ size = file.stat.size
194
+ end
195
+ if @conf.secure then
196
+ raise image_error_num( maxnum ) if images.compact.length >= maxnum
197
+ raise image_error_size( maxsize ) if size > maxsize
198
+ end
199
+ output = "#{@image_dir}/#{date}_#{images.length}.#{extension}".untaint
200
+ File::umask( 022 )
201
+ File::open( output, "wb" ) do |f|
202
+ f.print file.read
203
+ end
204
+ images << File::basename( output ) # for secure mode
205
+ end
206
+ end
207
+ elsif @cgi.params['plugin_image_delimage'][0]
208
+ @cgi.params['plugin_image_id'].each do |id|
209
+ file = "#{@image_dir}/#{images[id.to_i]}".untaint
210
+ if File::file?( file ) && File::exist?( file )
211
+ File::delete( file )
212
+ end
213
+ images[id.to_i] = nil # for secure mode
214
+ end
215
+ end
216
+ rescue
217
+ @image_message = $!.to_s
218
+ end
219
+ end
220
+
221
+ add_form_proc do |date|
222
+ r = ''
223
+ tabidx = 1200
224
+ images = image_list( date.strftime( '%Y%m%d' ) )
225
+ if images.length > 0 then
226
+ r << %Q[<div class="form">
227
+ <div class="caption">
228
+ #{image_label_list_caption}
229
+ </div>
230
+ <form id="plugin-image-delimage" class="update" method="post" action="#{h @update}"><div>
231
+ #{csrf_protection}
232
+ <table id="image-table">
233
+ <tr>]
234
+ tmp = ''
235
+ images.each_with_index do |img,id|
236
+ next unless img
237
+ if @conf.secure then
238
+ img_type, img_w, img_h = 'jpg', nil, nil
239
+ else
240
+ img_type, img_w, img_h = open(File.join(@image_dir,img).untaint, 'rb') {|f| image_info(f)}
241
+ end
242
+ r << %Q[<td><img id="image-index-#{id}" class="image-img form" src="#{h @image_url}/#{h img}" alt="#{id}" width="#{h( (img_w && img_w > 160) ? 160 : (img_w ? img_w : 160) )}"></td>]
243
+ if @conf.secure then
244
+ img_info = ''
245
+ else
246
+ img_info = "#{File.size(File.join(@image_dir,img).untaint).to_s.reverse.gsub( /\d{3}/, '\0,' ).sub( /,$/, '' ).reverse} bytes"
247
+ end
248
+ img_info = ''
249
+ if img_w && img_h
250
+ img_info << %Q|<span class="image-width">#{img_w}</span> x <span class="image-height">#{img_h}</span>|
251
+ end
252
+ tmp << %Q[<td id="image-info-#{id}">
253
+ <label><input type="checkbox" tabindex="#{tabidx+id*2}" name="plugin_image_id" value="#{id}">&nbsp;#{img_info}</label>
254
+ </td>]
255
+ end
256
+ r << "</tr><tr>"
257
+ r << tmp
258
+ r << %Q[</tr>
259
+ </table>
260
+ <input type="hidden" name="plugin_image_delimage" value="true">
261
+ <input type="hidden" name="date" value="#{date.strftime( '%Y%m%d' )}">
262
+ <input type="submit" tabindex="#{tabidx+97}" name="plugin" value="#{image_label_delete}">
263
+ </div></form>
264
+ </div>]
265
+ end
266
+
267
+ r << %Q[<div id="plugin-image-addimage" class="form">
268
+ <div class="caption">
269
+ #{image_label_add_caption}
270
+ </div>]
271
+ if @image_message then
272
+ r << %Q[<p class="message">#{@image_message}</p>]
273
+ end
274
+ r << %Q[<form class="update" method="post" enctype="multipart/form-data" action="#{h @update}"><div>
275
+ #{@conf.secure ? image_label_only_jpeg : ''}
276
+ #{csrf_protection}
277
+ <input type="hidden" name="plugin_image_addimage" value="true">
278
+ <input type="hidden" name="date" value="#{date.strftime( '%Y%m%d' )}">
279
+ <input type="file" tabindex="#{tabidx+98}" name="plugin_image_file" size="50" multiple="multiple">
280
+ <input type="submit" tabindex="#{tabidx+99}" name="plugin" value="#{h image_label_add_image}">
281
+ </div></form>
282
+ </div>]
283
+ end
284
+
285
+ # Local Variables:
286
+ # mode: ruby
287
+ # indent-tabs-mode: t
288
+ # tab-width: 3
289
+ # ruby-indent-level: 3
290
+ # End: