rbot 0.9.10 → 0.9.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (706) hide show
  1. data/AUTHORS +22 -4
  2. data/COPYING +5 -18
  3. data/ChangeLog +396 -0
  4. data/README +23 -25
  5. data/REQUIREMENTS +58 -12
  6. data/Rakefile +215 -0
  7. data/bin/rbot +47 -25
  8. data/bin/rbot-remote +76 -0
  9. data/data/rbot/languages/french.lang +5 -5
  10. data/data/rbot/languages/german.lang +4 -4
  11. data/data/rbot/languages/italian.lang +53 -0
  12. data/data/rbot/languages/japanese.lang +43 -0
  13. data/data/rbot/languages/russian.lang +60 -60
  14. data/data/rbot/languages/traditional_chinese.lang +75 -0
  15. data/data/rbot/plugins/alias.rb +192 -0
  16. data/data/rbot/plugins/autoop.rb +74 -37
  17. data/data/rbot/plugins/autorejoin.rb +15 -5
  18. data/data/rbot/plugins/bans.rb +454 -150
  19. data/data/rbot/plugins/bash.rb +173 -31
  20. data/data/rbot/plugins/botsnack.rb +37 -0
  21. data/data/rbot/plugins/cal.rb +11 -2
  22. data/data/rbot/plugins/chanserv.rb +132 -0
  23. data/data/rbot/plugins/chucknorris.rb +2 -2
  24. data/data/rbot/plugins/chucknorris.yml.gz +0 -0
  25. data/data/rbot/plugins/debugger.rb +136 -0
  26. data/data/rbot/plugins/deepthoughts.rb +89 -95
  27. data/data/rbot/plugins/delicious.rb +109 -0
  28. data/data/rbot/plugins/dice.rb +77 -25
  29. data/data/rbot/plugins/dict.rb +243 -0
  30. data/data/rbot/plugins/dictclient.rb +211 -0
  31. data/data/rbot/plugins/digg.rb +2 -2
  32. data/data/rbot/plugins/excuse.rb +4 -4
  33. data/data/rbot/plugins/factoids.rb +506 -0
  34. data/data/rbot/plugins/figlet.rb +127 -18
  35. data/data/rbot/plugins/fish.rb +93 -33
  36. data/data/rbot/plugins/forecast.rb +40 -27
  37. data/data/rbot/plugins/fortune.rb +86 -11
  38. data/data/rbot/plugins/freshmeat.rb +46 -12
  39. data/data/rbot/plugins/games/azgame.rb +565 -0
  40. data/data/rbot/plugins/games/quiz.rb +961 -0
  41. data/data/rbot/plugins/games/roshambo.rb +62 -0
  42. data/data/rbot/plugins/{roulette.rb → games/roulette.rb} +58 -8
  43. data/data/rbot/plugins/games/shiritori.rb +485 -0
  44. data/data/rbot/plugins/games/uno.rb +1205 -0
  45. data/data/rbot/plugins/games/wheelfortune.rb +615 -0
  46. data/data/rbot/plugins/grouphug.rb +76 -22
  47. data/data/rbot/plugins/hl2.rb +97 -0
  48. data/data/rbot/plugins/host.rb +10 -1
  49. data/data/rbot/plugins/httpd.rb.disabled +1 -0
  50. data/data/rbot/plugins/imdb.rb +511 -47
  51. data/data/rbot/plugins/insult.rb +32 -37
  52. data/data/rbot/plugins/iplookup.rb +224 -224
  53. data/data/rbot/plugins/karma.rb +45 -21
  54. data/data/rbot/plugins/keywords.rb +258 -160
  55. data/data/rbot/plugins/lart.rb +126 -95
  56. data/data/rbot/plugins/lastfm.rb +421 -12
  57. data/data/rbot/plugins/linkbot.rb +75 -0
  58. data/data/rbot/plugins/markov.rb +103 -46
  59. data/data/rbot/plugins/math.rb +6 -5
  60. data/data/rbot/plugins/modes.rb +114 -0
  61. data/data/rbot/plugins/nickrecover.rb +97 -0
  62. data/data/rbot/plugins/nickserv.rb +111 -48
  63. data/data/rbot/plugins/nslookup.rb +15 -19
  64. data/data/rbot/plugins/plugin.header +11 -0
  65. data/data/rbot/plugins/quakeauth.rb +74 -11
  66. data/data/rbot/plugins/quotes.rb +189 -233
  67. data/data/rbot/plugins/reaction.rb +415 -0
  68. data/data/rbot/plugins/remind.rb +11 -15
  69. data/data/rbot/plugins/remotectl.rb +29 -0
  70. data/data/rbot/plugins/ri.rb +74 -0
  71. data/data/rbot/plugins/rot13.rb +16 -1
  72. data/data/rbot/plugins/rss.rb +1219 -585
  73. data/data/rbot/plugins/salut.rb +226 -0
  74. data/data/rbot/plugins/script.rb +184 -0
  75. data/data/rbot/plugins/search.rb +233 -0
  76. data/data/rbot/plugins/seen.rb +44 -40
  77. data/data/rbot/plugins/shortenurls.rb +93 -0
  78. data/data/rbot/plugins/slashdot.rb +49 -11
  79. data/data/rbot/plugins/spell.rb +37 -27
  80. data/data/rbot/plugins/theyfightcrime.rb +36 -39
  81. data/data/rbot/plugins/threat.rb +25 -22
  82. data/data/rbot/plugins/time.rb +135 -0
  83. data/data/rbot/plugins/topic.rb +107 -50
  84. data/data/rbot/plugins/translator.rb +360 -0
  85. data/data/rbot/plugins/tube.rb +28 -40
  86. data/data/rbot/plugins/twitter.rb +187 -0
  87. data/data/rbot/plugins/urban.rb +62 -53
  88. data/data/rbot/plugins/url.rb +193 -409
  89. data/data/rbot/plugins/usermodes.rb +26 -0
  90. data/data/rbot/plugins/wall.rb +60 -0
  91. data/data/rbot/plugins/weather.rb +254 -598
  92. data/data/rbot/plugins/wow.rb +41 -37
  93. data/data/rbot/plugins/wserver.rb +17 -25
  94. data/data/rbot/plugins/youtube.rb +237 -0
  95. data/data/rbot/templates/lart/{larts → larts-english} +0 -0
  96. data/data/rbot/templates/lart/larts-italian +25 -0
  97. data/data/rbot/templates/lart/larts-japanese +10 -0
  98. data/data/rbot/templates/lart/{praises → praises-english} +0 -0
  99. data/data/rbot/templates/lart/praises-italian +4 -0
  100. data/data/rbot/templates/lart/praises-japanese +3 -0
  101. data/data/rbot/templates/quiz/win_messages +11 -0
  102. data/data/rbot/templates/salut/salut-english +40 -0
  103. data/data/rbot/templates/salut/salut-french +29 -0
  104. data/data/rbot/templates/salut/salut-italian +51 -0
  105. data/data/rbot/templates/salut/salut-japanese +31 -0
  106. data/lib/rbot/botuser.rb +940 -0
  107. data/lib/rbot/config-compat.rb +23 -0
  108. data/lib/rbot/config.rb +211 -276
  109. data/lib/rbot/core/auth.rb +1063 -0
  110. data/lib/rbot/core/basics.rb +214 -0
  111. data/lib/rbot/core/config.rb +330 -0
  112. data/lib/rbot/core/filters_ui.rb +64 -0
  113. data/lib/rbot/core/irclog.rb +292 -0
  114. data/lib/rbot/core/remote.rb +401 -0
  115. data/lib/rbot/core/unicode.rb +91 -0
  116. data/lib/rbot/core/userdata.rb +200 -0
  117. data/lib/rbot/core/utils/extends.rb +444 -0
  118. data/lib/rbot/core/utils/filters.rb +154 -0
  119. data/lib/rbot/core/utils/httputil.rb +689 -0
  120. data/lib/rbot/core/utils/utils.rb +717 -0
  121. data/lib/rbot/dbhash.rb +30 -9
  122. data/lib/rbot/irc.rb +1966 -0
  123. data/lib/rbot/ircbot.rb +816 -675
  124. data/lib/rbot/ircsocket.rb +246 -232
  125. data/lib/rbot/language.rb +86 -8
  126. data/lib/rbot/load-gettext.rb +154 -0
  127. data/lib/rbot/maskdb.rb +162 -0
  128. data/lib/rbot/message.rb +392 -65
  129. data/lib/rbot/messagemapper.rb +438 -94
  130. data/lib/rbot/pkgconfig.rb +6 -0
  131. data/lib/rbot/plugins.rb +713 -172
  132. data/lib/rbot/post-config.rb +1 -0
  133. data/lib/rbot/rbotconfig.rb +31 -12
  134. data/lib/rbot/registry.rb +79 -48
  135. data/lib/rbot/rfc2812.rb +927 -519
  136. data/lib/rbot/timer.rb +232 -167
  137. data/po/en_US/rbot-alias.po +82 -0
  138. data/po/en_US/rbot-autoop.po +0 -0
  139. data/po/en_US/rbot-autorejoin.po +0 -0
  140. data/po/en_US/rbot-azgame.po +200 -0
  141. data/po/en_US/rbot-bans.po +0 -0
  142. data/po/en_US/rbot-bash.po +0 -0
  143. data/po/en_US/rbot-botsnack.po +0 -0
  144. data/po/en_US/rbot-cal.po +3 -0
  145. data/po/en_US/rbot-chanserv.po +0 -0
  146. data/po/en_US/rbot-chucknorris.po +0 -0
  147. data/po/en_US/rbot-debugger.po +0 -0
  148. data/po/en_US/rbot-deepthoughts.po +0 -0
  149. data/po/en_US/rbot-delicious.po +0 -0
  150. data/po/en_US/rbot-dice.po +0 -0
  151. data/po/en_US/rbot-dict.po +0 -0
  152. data/po/en_US/rbot-dictclient.po +124 -0
  153. data/po/en_US/rbot-digg.po +0 -0
  154. data/po/en_US/rbot-eightball.po +0 -0
  155. data/po/en_US/rbot-excuse.po +0 -0
  156. data/po/en_US/rbot-factoids.po +107 -0
  157. data/po/en_US/rbot-figlet.po +36 -0
  158. data/po/en_US/rbot-fish.po +0 -0
  159. data/po/en_US/rbot-forecast.po +0 -0
  160. data/po/en_US/rbot-fortune.po +0 -0
  161. data/po/en_US/rbot-freshmeat.po +0 -0
  162. data/po/en_US/rbot-grouphug.po +18 -0
  163. data/po/en_US/rbot-hl2.po +0 -0
  164. data/po/en_US/rbot-host.po +3 -0
  165. data/po/en_US/rbot-imdb.po +0 -0
  166. data/po/en_US/rbot-insult.po +0 -0
  167. data/po/en_US/rbot-iplookup.po +0 -0
  168. data/po/en_US/rbot-karma.po +0 -0
  169. data/po/en_US/rbot-keywords.po +24 -0
  170. data/po/en_US/rbot-lart.po +0 -0
  171. data/po/en_US/rbot-lastfm.po +172 -0
  172. data/po/en_US/rbot-linkbot.po +0 -0
  173. data/po/en_US/rbot-markov.po +20 -0
  174. data/po/en_US/rbot-math.po +0 -0
  175. data/po/en_US/rbot-modes.po +0 -0
  176. data/po/en_US/rbot-nickrecover.po +40 -0
  177. data/po/en_US/rbot-nickserv.po +104 -0
  178. data/po/en_US/rbot-nslookup.po +0 -0
  179. data/po/en_US/rbot-quakeauth.po +0 -0
  180. data/po/en_US/rbot-quiz.po +0 -0
  181. data/po/en_US/rbot-quotes.po +108 -0
  182. data/po/en_US/rbot-reaction.po +0 -0
  183. data/po/en_US/rbot-remind.po +0 -0
  184. data/po/en_US/rbot-remotectl.po +0 -0
  185. data/po/en_US/rbot-ri.po +0 -0
  186. data/po/en_US/rbot-roshambo.po +0 -0
  187. data/po/en_US/rbot-rot13.po +0 -0
  188. data/po/en_US/rbot-roulette.po +0 -0
  189. data/po/en_US/rbot-rss.po +20 -0
  190. data/po/en_US/rbot-salut.po +0 -0
  191. data/po/en_US/rbot-script.po +0 -0
  192. data/po/en_US/rbot-search.po +0 -0
  193. data/po/en_US/rbot-seen.po +0 -0
  194. data/po/en_US/rbot-shiritori.po +113 -0
  195. data/po/en_US/rbot-shortenurls.po +0 -0
  196. data/po/en_US/rbot-slashdot.po +0 -0
  197. data/po/en_US/rbot-spell.po +54 -0
  198. data/po/en_US/rbot-theyfightcrime.po +0 -0
  199. data/po/en_US/rbot-threat.po +0 -0
  200. data/po/en_US/rbot-time.po +0 -0
  201. data/po/en_US/rbot-topic.po +0 -0
  202. data/po/en_US/rbot-translator.po +77 -0
  203. data/po/en_US/rbot-tube.po +0 -0
  204. data/po/en_US/rbot-twitter.po +24 -0
  205. data/po/en_US/rbot-uno.po +512 -0
  206. data/po/en_US/rbot-urban.po +0 -0
  207. data/po/en_US/rbot-url.po +0 -0
  208. data/po/en_US/rbot-usermodes.po +0 -0
  209. data/po/en_US/rbot-wall.po +33 -0
  210. data/po/en_US/rbot-weather.po +0 -0
  211. data/po/en_US/rbot-wheelfortune.po +205 -0
  212. data/po/en_US/rbot-wow.po +0 -0
  213. data/po/en_US/rbot-wserver.po +0 -0
  214. data/po/en_US/rbot-youtube.po +58 -0
  215. data/po/en_US/rbot.po +1097 -0
  216. data/po/fr/rbot-alias.po +97 -0
  217. data/po/fr/rbot-autoop.po +0 -0
  218. data/po/fr/rbot-autorejoin.po +0 -0
  219. data/po/fr/rbot-azgame.po +204 -0
  220. data/po/fr/rbot-bans.po +0 -0
  221. data/po/fr/rbot-bash.po +0 -0
  222. data/po/fr/rbot-botsnack.po +0 -0
  223. data/po/fr/rbot-cal.po +3 -0
  224. data/po/fr/rbot-chanserv.po +0 -0
  225. data/po/fr/rbot-chucknorris.po +0 -0
  226. data/po/fr/rbot-debugger.po +0 -0
  227. data/po/fr/rbot-deepthoughts.po +0 -0
  228. data/po/fr/rbot-delicious.po +0 -0
  229. data/po/fr/rbot-dice.po +0 -0
  230. data/po/fr/rbot-dict.po +0 -0
  231. data/po/fr/rbot-dictclient.po +134 -0
  232. data/po/fr/rbot-digg.po +0 -0
  233. data/po/fr/rbot-eightball.po +0 -0
  234. data/po/fr/rbot-excuse.po +0 -0
  235. data/po/fr/rbot-factoids.po +111 -0
  236. data/po/fr/rbot-figlet.po +37 -0
  237. data/po/fr/rbot-fish.po +0 -0
  238. data/po/fr/rbot-forecast.po +0 -0
  239. data/po/fr/rbot-fortune.po +0 -0
  240. data/po/fr/rbot-freshmeat.po +0 -0
  241. data/po/fr/rbot-grouphug.po +18 -0
  242. data/po/fr/rbot-hl2.po +0 -0
  243. data/po/fr/rbot-host.po +3 -0
  244. data/po/fr/rbot-imdb.po +0 -0
  245. data/po/fr/rbot-insult.po +0 -0
  246. data/po/fr/rbot-iplookup.po +0 -0
  247. data/po/fr/rbot-karma.po +0 -0
  248. data/po/fr/rbot-keywords.po +24 -0
  249. data/po/fr/rbot-lart.po +0 -0
  250. data/po/fr/rbot-lastfm.po +172 -0
  251. data/po/fr/rbot-linkbot.po +0 -0
  252. data/po/fr/rbot-markov.po +20 -0
  253. data/po/fr/rbot-math.po +0 -0
  254. data/po/fr/rbot-modes.po +0 -0
  255. data/po/fr/rbot-nickrecover.po +36 -0
  256. data/po/fr/rbot-nickserv.po +116 -0
  257. data/po/fr/rbot-nslookup.po +0 -0
  258. data/po/fr/rbot-quakeauth.po +0 -0
  259. data/po/fr/rbot-quiz.po +0 -0
  260. data/po/fr/rbot-quotes.po +138 -0
  261. data/po/fr/rbot-reaction.po +0 -0
  262. data/po/fr/rbot-remind.po +0 -0
  263. data/po/fr/rbot-remotectl.po +0 -0
  264. data/po/fr/rbot-ri.po +0 -0
  265. data/po/fr/rbot-roshambo.po +0 -0
  266. data/po/fr/rbot-rot13.po +0 -0
  267. data/po/fr/rbot-roulette.po +0 -0
  268. data/po/fr/rbot-rss.po +20 -0
  269. data/po/fr/rbot-salut.po +0 -0
  270. data/po/fr/rbot-script.po +0 -0
  271. data/po/fr/rbot-search.po +0 -0
  272. data/po/fr/rbot-seen.po +0 -0
  273. data/po/fr/rbot-shiritori.po +119 -0
  274. data/po/fr/rbot-shortenurls.po +0 -0
  275. data/po/fr/rbot-slashdot.po +0 -0
  276. data/po/fr/rbot-spell.po +56 -0
  277. data/po/fr/rbot-theyfightcrime.po +0 -0
  278. data/po/fr/rbot-threat.po +0 -0
  279. data/po/fr/rbot-time.po +0 -0
  280. data/po/fr/rbot-topic.po +0 -0
  281. data/po/fr/rbot-translator.po +90 -0
  282. data/po/fr/rbot-tube.po +0 -0
  283. data/po/fr/rbot-twitter.po +24 -0
  284. data/po/fr/rbot-uno.po +521 -0
  285. data/po/fr/rbot-urban.po +0 -0
  286. data/po/fr/rbot-url.po +0 -0
  287. data/po/fr/rbot-usermodes.po +0 -0
  288. data/po/fr/rbot-wall.po +33 -0
  289. data/po/fr/rbot-weather.po +0 -0
  290. data/po/fr/rbot-wheelfortune.po +255 -0
  291. data/po/fr/rbot-wow.po +0 -0
  292. data/po/fr/rbot-wserver.po +0 -0
  293. data/po/fr/rbot-youtube.po +64 -0
  294. data/po/fr/rbot.po +1133 -0
  295. data/po/it/rbot-alias.po +82 -0
  296. data/po/it/rbot-autoop.po +0 -0
  297. data/po/it/rbot-autorejoin.po +0 -0
  298. data/po/it/rbot-azgame.po +186 -0
  299. data/po/it/rbot-bans.po +0 -0
  300. data/po/it/rbot-bash.po +0 -0
  301. data/po/it/rbot-botsnack.po +0 -0
  302. data/po/it/rbot-cal.po +3 -0
  303. data/po/it/rbot-chanserv.po +0 -0
  304. data/po/it/rbot-chucknorris.po +0 -0
  305. data/po/it/rbot-debugger.po +0 -0
  306. data/po/it/rbot-deepthoughts.po +0 -0
  307. data/po/it/rbot-delicious.po +0 -0
  308. data/po/it/rbot-dice.po +0 -0
  309. data/po/it/rbot-dict.po +0 -0
  310. data/po/it/rbot-dictclient.po +111 -0
  311. data/po/it/rbot-digg.po +0 -0
  312. data/po/it/rbot-eightball.po +0 -0
  313. data/po/it/rbot-excuse.po +0 -0
  314. data/po/it/rbot-factoids.po +110 -0
  315. data/po/it/rbot-figlet.po +36 -0
  316. data/po/it/rbot-fish.po +0 -0
  317. data/po/it/rbot-forecast.po +0 -0
  318. data/po/it/rbot-fortune.po +0 -0
  319. data/po/it/rbot-freshmeat.po +0 -0
  320. data/po/it/rbot-grouphug.po +18 -0
  321. data/po/it/rbot-hl2.po +0 -0
  322. data/po/it/rbot-host.po +3 -0
  323. data/po/it/rbot-imdb.po +0 -0
  324. data/po/it/rbot-insult.po +0 -0
  325. data/po/it/rbot-iplookup.po +0 -0
  326. data/po/it/rbot-karma.po +0 -0
  327. data/po/it/rbot-keywords.po +24 -0
  328. data/po/it/rbot-lart.po +0 -0
  329. data/po/it/rbot-lastfm.po +172 -0
  330. data/po/it/rbot-linkbot.po +0 -0
  331. data/po/it/rbot-markov.po +20 -0
  332. data/po/it/rbot-math.po +0 -0
  333. data/po/it/rbot-modes.po +0 -0
  334. data/po/it/rbot-nickrecover.po +36 -0
  335. data/po/it/rbot-nickserv.po +104 -0
  336. data/po/it/rbot-nslookup.po +0 -0
  337. data/po/it/rbot-quakeauth.po +0 -0
  338. data/po/it/rbot-quiz.po +0 -0
  339. data/po/it/rbot-quotes.po +108 -0
  340. data/po/it/rbot-reaction.po +0 -0
  341. data/po/it/rbot-remind.po +0 -0
  342. data/po/it/rbot-remotectl.po +0 -0
  343. data/po/it/rbot-ri.po +0 -0
  344. data/po/it/rbot-roshambo.po +0 -0
  345. data/po/it/rbot-rot13.po +0 -0
  346. data/po/it/rbot-roulette.po +0 -0
  347. data/po/it/rbot-rss.po +20 -0
  348. data/po/it/rbot-salut.po +0 -0
  349. data/po/it/rbot-script.po +0 -0
  350. data/po/it/rbot-search.po +0 -0
  351. data/po/it/rbot-seen.po +0 -0
  352. data/po/it/rbot-shiritori.po +102 -0
  353. data/po/it/rbot-shortenurls.po +0 -0
  354. data/po/it/rbot-slashdot.po +0 -0
  355. data/po/it/rbot-spell.po +54 -0
  356. data/po/it/rbot-theyfightcrime.po +0 -0
  357. data/po/it/rbot-threat.po +0 -0
  358. data/po/it/rbot-time.po +0 -0
  359. data/po/it/rbot-topic.po +0 -0
  360. data/po/it/rbot-translator.po +77 -0
  361. data/po/it/rbot-tube.po +0 -0
  362. data/po/it/rbot-twitter.po +24 -0
  363. data/po/it/rbot-uno.po +564 -0
  364. data/po/it/rbot-urban.po +0 -0
  365. data/po/it/rbot-url.po +0 -0
  366. data/po/it/rbot-usermodes.po +0 -0
  367. data/po/it/rbot-wall.po +33 -0
  368. data/po/it/rbot-weather.po +0 -0
  369. data/po/it/rbot-wheelfortune.po +251 -0
  370. data/po/it/rbot-wow.po +0 -0
  371. data/po/it/rbot-wserver.po +0 -0
  372. data/po/it/rbot-youtube.po +64 -0
  373. data/po/it/rbot.po +1127 -0
  374. data/po/ja/rbot-alias.po +82 -0
  375. data/po/ja/rbot-autoop.po +0 -0
  376. data/po/ja/rbot-autorejoin.po +0 -0
  377. data/po/ja/rbot-azgame.po +194 -0
  378. data/po/ja/rbot-bans.po +0 -0
  379. data/po/ja/rbot-bash.po +0 -0
  380. data/po/ja/rbot-botsnack.po +0 -0
  381. data/po/ja/rbot-cal.po +3 -0
  382. data/po/ja/rbot-chanserv.po +0 -0
  383. data/po/ja/rbot-chucknorris.po +0 -0
  384. data/po/ja/rbot-debugger.po +0 -0
  385. data/po/ja/rbot-deepthoughts.po +0 -0
  386. data/po/ja/rbot-delicious.po +0 -0
  387. data/po/ja/rbot-dice.po +0 -0
  388. data/po/ja/rbot-dict.po +0 -0
  389. data/po/ja/rbot-dictclient.po +111 -0
  390. data/po/ja/rbot-digg.po +0 -0
  391. data/po/ja/rbot-eightball.po +0 -0
  392. data/po/ja/rbot-excuse.po +0 -0
  393. data/po/ja/rbot-factoids.po +107 -0
  394. data/po/ja/rbot-figlet.po +36 -0
  395. data/po/ja/rbot-fish.po +0 -0
  396. data/po/ja/rbot-forecast.po +0 -0
  397. data/po/ja/rbot-fortune.po +0 -0
  398. data/po/ja/rbot-freshmeat.po +0 -0
  399. data/po/ja/rbot-grouphug.po +18 -0
  400. data/po/ja/rbot-hl2.po +0 -0
  401. data/po/ja/rbot-host.po +3 -0
  402. data/po/ja/rbot-imdb.po +0 -0
  403. data/po/ja/rbot-insult.po +0 -0
  404. data/po/ja/rbot-iplookup.po +0 -0
  405. data/po/ja/rbot-karma.po +0 -0
  406. data/po/ja/rbot-keywords.po +24 -0
  407. data/po/ja/rbot-lart.po +0 -0
  408. data/po/ja/rbot-lastfm.po +172 -0
  409. data/po/ja/rbot-linkbot.po +0 -0
  410. data/po/ja/rbot-markov.po +20 -0
  411. data/po/ja/rbot-math.po +0 -0
  412. data/po/ja/rbot-modes.po +0 -0
  413. data/po/ja/rbot-nickrecover.po +36 -0
  414. data/po/ja/rbot-nickserv.po +104 -0
  415. data/po/ja/rbot-nslookup.po +0 -0
  416. data/po/ja/rbot-quakeauth.po +0 -0
  417. data/po/ja/rbot-quiz.po +0 -0
  418. data/po/ja/rbot-quotes.po +108 -0
  419. data/po/ja/rbot-reaction.po +0 -0
  420. data/po/ja/rbot-remind.po +0 -0
  421. data/po/ja/rbot-remotectl.po +0 -0
  422. data/po/ja/rbot-ri.po +0 -0
  423. data/po/ja/rbot-roshambo.po +0 -0
  424. data/po/ja/rbot-rot13.po +0 -0
  425. data/po/ja/rbot-roulette.po +0 -0
  426. data/po/ja/rbot-rss.po +20 -0
  427. data/po/ja/rbot-salut.po +0 -0
  428. data/po/ja/rbot-script.po +0 -0
  429. data/po/ja/rbot-search.po +0 -0
  430. data/po/ja/rbot-seen.po +0 -0
  431. data/po/ja/rbot-shiritori.po +115 -0
  432. data/po/ja/rbot-shortenurls.po +0 -0
  433. data/po/ja/rbot-slashdot.po +0 -0
  434. data/po/ja/rbot-spell.po +54 -0
  435. data/po/ja/rbot-theyfightcrime.po +0 -0
  436. data/po/ja/rbot-threat.po +0 -0
  437. data/po/ja/rbot-time.po +0 -0
  438. data/po/ja/rbot-topic.po +0 -0
  439. data/po/ja/rbot-translator.po +77 -0
  440. data/po/ja/rbot-tube.po +0 -0
  441. data/po/ja/rbot-twitter.po +24 -0
  442. data/po/ja/rbot-uno.po +512 -0
  443. data/po/ja/rbot-urban.po +0 -0
  444. data/po/ja/rbot-url.po +0 -0
  445. data/po/ja/rbot-usermodes.po +0 -0
  446. data/po/ja/rbot-wall.po +33 -0
  447. data/po/ja/rbot-weather.po +0 -0
  448. data/po/ja/rbot-wheelfortune.po +205 -0
  449. data/po/ja/rbot-wow.po +0 -0
  450. data/po/ja/rbot-wserver.po +0 -0
  451. data/po/ja/rbot-youtube.po +58 -0
  452. data/po/ja/rbot.po +999 -0
  453. data/po/rbot-alias.pot +83 -0
  454. data/po/rbot-autoop.pot +0 -0
  455. data/po/rbot-autorejoin.pot +0 -0
  456. data/po/rbot-azgame.pot +187 -0
  457. data/po/rbot-bans.pot +0 -0
  458. data/po/rbot-bash.pot +0 -0
  459. data/po/rbot-botsnack.pot +0 -0
  460. data/po/rbot-cal.pot +21 -0
  461. data/po/rbot-chanserv.pot +0 -0
  462. data/po/rbot-chucknorris.pot +0 -0
  463. data/po/rbot-debugger.pot +0 -0
  464. data/po/rbot-deepthoughts.pot +0 -0
  465. data/po/rbot-delicious.pot +0 -0
  466. data/po/rbot-dice.pot +0 -0
  467. data/po/rbot-dict.pot +0 -0
  468. data/po/rbot-dictclient.pot +112 -0
  469. data/po/rbot-digg.pot +0 -0
  470. data/po/rbot-eightball.pot +0 -0
  471. data/po/rbot-excuse.pot +0 -0
  472. data/po/rbot-factoids.pot +108 -0
  473. data/po/rbot-figlet.pot +37 -0
  474. data/po/rbot-fish.pot +0 -0
  475. data/po/rbot-forecast.pot +0 -0
  476. data/po/rbot-fortune.pot +0 -0
  477. data/po/rbot-freshmeat.pot +0 -0
  478. data/po/rbot-grouphug.pot +36 -0
  479. data/po/rbot-hl2.pot +0 -0
  480. data/po/rbot-host.pot +21 -0
  481. data/po/rbot-imdb.pot +0 -0
  482. data/po/rbot-insult.pot +0 -0
  483. data/po/rbot-iplookup.pot +0 -0
  484. data/po/rbot-karma.pot +0 -0
  485. data/po/rbot-keywords.pot +25 -0
  486. data/po/rbot-lart.pot +0 -0
  487. data/po/rbot-lastfm.pot +190 -0
  488. data/po/rbot-linkbot.pot +0 -0
  489. data/po/rbot-markov.pot +21 -0
  490. data/po/rbot-math.pot +0 -0
  491. data/po/rbot-modes.pot +0 -0
  492. data/po/rbot-nickrecover.pot +37 -0
  493. data/po/rbot-nickserv.pot +105 -0
  494. data/po/rbot-nslookup.pot +0 -0
  495. data/po/rbot-quakeauth.pot +0 -0
  496. data/po/rbot-quiz.pot +0 -0
  497. data/po/rbot-quotes.pot +109 -0
  498. data/po/rbot-reaction.pot +0 -0
  499. data/po/rbot-remind.pot +0 -0
  500. data/po/rbot-remotectl.pot +0 -0
  501. data/po/rbot-ri.pot +0 -0
  502. data/po/rbot-roshambo.pot +0 -0
  503. data/po/rbot-rot13.pot +0 -0
  504. data/po/rbot-roulette.pot +0 -0
  505. data/po/rbot-rss.pot +21 -0
  506. data/po/rbot-salut.pot +0 -0
  507. data/po/rbot-script.pot +0 -0
  508. data/po/rbot-search.pot +0 -0
  509. data/po/rbot-seen.pot +0 -0
  510. data/po/rbot-shiritori.pot +103 -0
  511. data/po/rbot-shortenurls.pot +0 -0
  512. data/po/rbot-slashdot.pot +0 -0
  513. data/po/rbot-spell.pot +55 -0
  514. data/po/rbot-theyfightcrime.pot +0 -0
  515. data/po/rbot-threat.pot +0 -0
  516. data/po/rbot-time.pot +0 -0
  517. data/po/rbot-topic.pot +0 -0
  518. data/po/rbot-translator.pot +78 -0
  519. data/po/rbot-tube.pot +0 -0
  520. data/po/rbot-twitter.pot +25 -0
  521. data/po/rbot-uno.pot +513 -0
  522. data/po/rbot-urban.pot +0 -0
  523. data/po/rbot-url.pot +0 -0
  524. data/po/rbot-usermodes.pot +0 -0
  525. data/po/rbot-wall.pot +33 -0
  526. data/po/rbot-weather.pot +0 -0
  527. data/po/rbot-wheelfortune.pot +206 -0
  528. data/po/rbot-wow.pot +0 -0
  529. data/po/rbot-wserver.pot +0 -0
  530. data/po/rbot-youtube.pot +59 -0
  531. data/po/rbot.pot +1004 -0
  532. data/po/zh_CN/rbot-alias.po +82 -0
  533. data/po/zh_CN/rbot-autoop.po +0 -0
  534. data/po/zh_CN/rbot-autorejoin.po +0 -0
  535. data/po/zh_CN/rbot-azgame.po +186 -0
  536. data/po/zh_CN/rbot-bans.po +0 -0
  537. data/po/zh_CN/rbot-bash.po +0 -0
  538. data/po/zh_CN/rbot-botsnack.po +0 -0
  539. data/po/zh_CN/rbot-cal.po +3 -0
  540. data/po/zh_CN/rbot-chanserv.po +0 -0
  541. data/po/zh_CN/rbot-chucknorris.po +0 -0
  542. data/po/zh_CN/rbot-debugger.po +0 -0
  543. data/po/zh_CN/rbot-deepthoughts.po +0 -0
  544. data/po/zh_CN/rbot-delicious.po +0 -0
  545. data/po/zh_CN/rbot-dice.po +0 -0
  546. data/po/zh_CN/rbot-dict.po +0 -0
  547. data/po/zh_CN/rbot-dictclient.po +111 -0
  548. data/po/zh_CN/rbot-digg.po +0 -0
  549. data/po/zh_CN/rbot-eightball.po +0 -0
  550. data/po/zh_CN/rbot-excuse.po +0 -0
  551. data/po/zh_CN/rbot-factoids.po +107 -0
  552. data/po/zh_CN/rbot-figlet.po +36 -0
  553. data/po/zh_CN/rbot-fish.po +0 -0
  554. data/po/zh_CN/rbot-forecast.po +0 -0
  555. data/po/zh_CN/rbot-fortune.po +0 -0
  556. data/po/zh_CN/rbot-freshmeat.po +0 -0
  557. data/po/zh_CN/rbot-grouphug.po +18 -0
  558. data/po/zh_CN/rbot-hl2.po +0 -0
  559. data/po/zh_CN/rbot-host.po +3 -0
  560. data/po/zh_CN/rbot-imdb.po +0 -0
  561. data/po/zh_CN/rbot-insult.po +0 -0
  562. data/po/zh_CN/rbot-iplookup.po +0 -0
  563. data/po/zh_CN/rbot-karma.po +0 -0
  564. data/po/zh_CN/rbot-keywords.po +24 -0
  565. data/po/zh_CN/rbot-lart.po +0 -0
  566. data/po/zh_CN/rbot-lastfm.po +172 -0
  567. data/po/zh_CN/rbot-linkbot.po +0 -0
  568. data/po/zh_CN/rbot-markov.po +20 -0
  569. data/po/zh_CN/rbot-math.po +0 -0
  570. data/po/zh_CN/rbot-modes.po +0 -0
  571. data/po/zh_CN/rbot-nickrecover.po +36 -0
  572. data/po/zh_CN/rbot-nickserv.po +104 -0
  573. data/po/zh_CN/rbot-nslookup.po +0 -0
  574. data/po/zh_CN/rbot-quakeauth.po +0 -0
  575. data/po/zh_CN/rbot-quiz.po +0 -0
  576. data/po/zh_CN/rbot-quotes.po +108 -0
  577. data/po/zh_CN/rbot-reaction.po +0 -0
  578. data/po/zh_CN/rbot-remind.po +0 -0
  579. data/po/zh_CN/rbot-remotectl.po +0 -0
  580. data/po/zh_CN/rbot-ri.po +0 -0
  581. data/po/zh_CN/rbot-roshambo.po +0 -0
  582. data/po/zh_CN/rbot-rot13.po +0 -0
  583. data/po/zh_CN/rbot-roulette.po +0 -0
  584. data/po/zh_CN/rbot-rss.po +20 -0
  585. data/po/zh_CN/rbot-salut.po +0 -0
  586. data/po/zh_CN/rbot-script.po +0 -0
  587. data/po/zh_CN/rbot-search.po +0 -0
  588. data/po/zh_CN/rbot-seen.po +0 -0
  589. data/po/zh_CN/rbot-shiritori.po +102 -0
  590. data/po/zh_CN/rbot-shortenurls.po +0 -0
  591. data/po/zh_CN/rbot-slashdot.po +0 -0
  592. data/po/zh_CN/rbot-spell.po +54 -0
  593. data/po/zh_CN/rbot-theyfightcrime.po +0 -0
  594. data/po/zh_CN/rbot-threat.po +0 -0
  595. data/po/zh_CN/rbot-time.po +0 -0
  596. data/po/zh_CN/rbot-topic.po +0 -0
  597. data/po/zh_CN/rbot-translator.po +77 -0
  598. data/po/zh_CN/rbot-tube.po +0 -0
  599. data/po/zh_CN/rbot-twitter.po +24 -0
  600. data/po/zh_CN/rbot-uno.po +512 -0
  601. data/po/zh_CN/rbot-urban.po +0 -0
  602. data/po/zh_CN/rbot-url.po +0 -0
  603. data/po/zh_CN/rbot-usermodes.po +0 -0
  604. data/po/zh_CN/rbot-wall.po +33 -0
  605. data/po/zh_CN/rbot-weather.po +0 -0
  606. data/po/zh_CN/rbot-wheelfortune.po +205 -0
  607. data/po/zh_CN/rbot-wow.po +0 -0
  608. data/po/zh_CN/rbot-wserver.po +0 -0
  609. data/po/zh_CN/rbot-youtube.po +58 -0
  610. data/po/zh_CN/rbot.po +1006 -0
  611. data/po/zh_TW/rbot-alias.po +82 -0
  612. data/po/zh_TW/rbot-autoop.po +0 -0
  613. data/po/zh_TW/rbot-autorejoin.po +0 -0
  614. data/po/zh_TW/rbot-azgame.po +186 -0
  615. data/po/zh_TW/rbot-bans.po +0 -0
  616. data/po/zh_TW/rbot-bash.po +0 -0
  617. data/po/zh_TW/rbot-botsnack.po +0 -0
  618. data/po/zh_TW/rbot-cal.po +3 -0
  619. data/po/zh_TW/rbot-chanserv.po +0 -0
  620. data/po/zh_TW/rbot-chucknorris.po +0 -0
  621. data/po/zh_TW/rbot-debugger.po +0 -0
  622. data/po/zh_TW/rbot-deepthoughts.po +0 -0
  623. data/po/zh_TW/rbot-delicious.po +0 -0
  624. data/po/zh_TW/rbot-dice.po +0 -0
  625. data/po/zh_TW/rbot-dict.po +0 -0
  626. data/po/zh_TW/rbot-dictclient.po +111 -0
  627. data/po/zh_TW/rbot-digg.po +0 -0
  628. data/po/zh_TW/rbot-eightball.po +0 -0
  629. data/po/zh_TW/rbot-excuse.po +0 -0
  630. data/po/zh_TW/rbot-factoids.po +107 -0
  631. data/po/zh_TW/rbot-figlet.po +36 -0
  632. data/po/zh_TW/rbot-fish.po +0 -0
  633. data/po/zh_TW/rbot-forecast.po +0 -0
  634. data/po/zh_TW/rbot-fortune.po +0 -0
  635. data/po/zh_TW/rbot-freshmeat.po +0 -0
  636. data/po/zh_TW/rbot-grouphug.po +18 -0
  637. data/po/zh_TW/rbot-hl2.po +0 -0
  638. data/po/zh_TW/rbot-host.po +3 -0
  639. data/po/zh_TW/rbot-imdb.po +0 -0
  640. data/po/zh_TW/rbot-insult.po +0 -0
  641. data/po/zh_TW/rbot-iplookup.po +0 -0
  642. data/po/zh_TW/rbot-karma.po +0 -0
  643. data/po/zh_TW/rbot-keywords.po +24 -0
  644. data/po/zh_TW/rbot-lart.po +0 -0
  645. data/po/zh_TW/rbot-lastfm.po +172 -0
  646. data/po/zh_TW/rbot-linkbot.po +0 -0
  647. data/po/zh_TW/rbot-markov.po +20 -0
  648. data/po/zh_TW/rbot-math.po +0 -0
  649. data/po/zh_TW/rbot-modes.po +0 -0
  650. data/po/zh_TW/rbot-nickrecover.po +36 -0
  651. data/po/zh_TW/rbot-nickserv.po +104 -0
  652. data/po/zh_TW/rbot-nslookup.po +0 -0
  653. data/po/zh_TW/rbot-quakeauth.po +0 -0
  654. data/po/zh_TW/rbot-quiz.po +0 -0
  655. data/po/zh_TW/rbot-quotes.po +108 -0
  656. data/po/zh_TW/rbot-reaction.po +0 -0
  657. data/po/zh_TW/rbot-remind.po +0 -0
  658. data/po/zh_TW/rbot-remotectl.po +0 -0
  659. data/po/zh_TW/rbot-ri.po +0 -0
  660. data/po/zh_TW/rbot-roshambo.po +0 -0
  661. data/po/zh_TW/rbot-rot13.po +0 -0
  662. data/po/zh_TW/rbot-roulette.po +0 -0
  663. data/po/zh_TW/rbot-rss.po +20 -0
  664. data/po/zh_TW/rbot-salut.po +0 -0
  665. data/po/zh_TW/rbot-script.po +0 -0
  666. data/po/zh_TW/rbot-search.po +0 -0
  667. data/po/zh_TW/rbot-seen.po +0 -0
  668. data/po/zh_TW/rbot-shiritori.po +102 -0
  669. data/po/zh_TW/rbot-shortenurls.po +0 -0
  670. data/po/zh_TW/rbot-slashdot.po +0 -0
  671. data/po/zh_TW/rbot-spell.po +54 -0
  672. data/po/zh_TW/rbot-theyfightcrime.po +0 -0
  673. data/po/zh_TW/rbot-threat.po +0 -0
  674. data/po/zh_TW/rbot-time.po +0 -0
  675. data/po/zh_TW/rbot-topic.po +0 -0
  676. data/po/zh_TW/rbot-translator.po +77 -0
  677. data/po/zh_TW/rbot-tube.po +0 -0
  678. data/po/zh_TW/rbot-twitter.po +24 -0
  679. data/po/zh_TW/rbot-uno.po +512 -0
  680. data/po/zh_TW/rbot-urban.po +0 -0
  681. data/po/zh_TW/rbot-url.po +0 -0
  682. data/po/zh_TW/rbot-usermodes.po +0 -0
  683. data/po/zh_TW/rbot-wall.po +33 -0
  684. data/po/zh_TW/rbot-weather.po +0 -0
  685. data/po/zh_TW/rbot-wheelfortune.po +205 -0
  686. data/po/zh_TW/rbot-wow.po +0 -0
  687. data/po/zh_TW/rbot-wserver.po +0 -0
  688. data/po/zh_TW/rbot-youtube.po +58 -0
  689. data/po/zh_TW/rbot.po +1034 -0
  690. data/setup.rb +800 -574
  691. metadata +723 -108
  692. data/data/rbot/contrib/plugins/figlet.rb +0 -20
  693. data/data/rbot/contrib/plugins/ri.rb +0 -83
  694. data/data/rbot/plugins/demauro.rb +0 -95
  695. data/data/rbot/plugins/google.rb +0 -53
  696. data/data/rbot/plugins/opme.rb +0 -19
  697. data/data/rbot/plugins/roshambo.rb +0 -54
  698. data/data/rbot/plugins/rubyurl.rb +0 -39
  699. data/data/rbot/plugins/tinyurl.rb +0 -39
  700. data/data/rbot/plugins/xmlrpc.rb.disabled +0 -52
  701. data/data/rbot/templates/levels.rbot +0 -32
  702. data/data/rbot/templates/users.rbot +0 -1
  703. data/lib/rbot/auth.rb +0 -314
  704. data/lib/rbot/channel.rb +0 -54
  705. data/lib/rbot/httputil.rb +0 -309
  706. data/lib/rbot/utils.rb +0 -83
data/AUTHORS CHANGED
@@ -1,15 +1,33 @@
1
- Main Author
1
+ Original Author
2
2
  o Tom Gilbert (giblet) <tom@linuxbrit.co.uk>
3
3
 
4
- Bugbear (heavy-duty framework reworker and backwards-compatibility-breaker)
5
- o Giuseppe Bilotta (tango_) <giuseppe.bilotta@gmail.com>
4
+ Ruthless Tyrant (yes, that means 'project lead')
5
+ o Giuseppe "Oblomov" Bilotta (tango_) <giuseppe.bilotta@gmail.com>
6
+
7
+ Sanity keeper
8
+ o Dmitry Kim (jsn) <dmitry dot kim at gmail dot com>
9
+
10
+ YAML & Multilingual expert, blame collector
11
+ o Yaohan Chen (hagabaka) <yaohan.chen@gmail.com>
12
+
13
+ Insanity keeper
14
+ o Mark Kretschmann (markey) <markey@web.de>
15
+
16
+ Chuck Norris trainer
17
+ o Chris Gahan (epitron) <chris@ill-logic.com>
6
18
 
7
19
  Patch contributors
8
20
  o Peter Suschlik (pesu) <peter@zilium.de>
9
21
  o Alexey I. Froloff <raorn@altlinux.ru>
10
22
  o Ari Pollak <ajp@aripollak.com>
11
23
  o Rudolf Polzer <atfield-dt@durchnull.de>
12
- o Ren� Nussbaumer <public@killerfox.forkbomb.ch>
24
+ o René Nussbaumer <public@killerfox.forkbomb.ch>
25
+ o Adam James (atj) <atj@pulsewidth.org.uk>
26
+ o Robert Corsaro (doki_pen) <rcorsaro@optaros.com>
27
+ o Jesse Keys (jessekeys) <jesse@teranetworks.de>
28
+ o Jan Wikholm (unfo-) <jw@jw.fi>
29
+ o Moritz Augsburger (moemoe) <rbot@moritz.augsburger.name>
30
+ o Alexander Beisig <alexander.beisig@gmx.de>
13
31
 
14
32
  Module contributors
15
33
  o dice.rb - David Dorward (Dorward) <david@david.us-lot.org>
data/COPYING CHANGED
@@ -1,21 +1,8 @@
1
- Copyright (C) 2002-2005 Tom Gilbert.
1
+ rbot the Ruby IRC bot
2
2
 
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to
5
- deal in the Software without restriction, including without limitation the
6
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- sell copies of the Software, and to permit persons to whom the Software is
8
- furnished to do so, subject to the following conditions:
3
+ Copyright (C) 2007-2008 Giuseppe Bilotta and the rbot development team
9
4
 
10
- The above copyright notice and this permission notice shall be included in
11
- all copies of the Software and its documentation and acknowledgment shall be
12
- given in the documentation and software packages that this Software was
13
- used.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
- THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
5
+ This program is free software; you can redistribute it and/or modify it
6
+ under the terms of the MIT license with acknolwedgement clause (see
7
+ COPYING.rbot) or the GNU General Public License, version 2 (see GPLv2)
21
8
 
data/ChangeLog CHANGED
@@ -1,3 +1,399 @@
1
+ 2007-04-12 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
2
+
3
+ * Basic class extensions: Module#define_structure() method. Syntax:
4
+ define_structure :SomeName, :attr_a, :attr_b
5
+ is equivalent to
6
+ SomeName = Struct.new("SomeName", :attr_a, :attr_b)
7
+ except that the new Struct is not created if it already exists and the
8
+ attributes list is the same.
9
+
10
+ 2007-03-31 Dmitry Kim <dmitry.kim@gmail.com>
11
+
12
+ * HttpUtil: major rework. get_response() method now respects
13
+ caching (can be turned off via options) and supports different HTTP
14
+ methods (GET (default), HEAD and POST) and ranged requests. get() and
15
+ head() methods are now just a thin wrappers around get_request().
16
+ Semantics for user-supplied &block has been made consistent across
17
+ these methods.
18
+ * HttpUtil: get_cached() method has been removed (obsoleted by new
19
+ get()). post() method has been added. get_partial() method for ranged
20
+ requests has been added. Net::HTTPResponse partial_body() method has
21
+ been removed (mostly because it won't play well with future HTTP
22
+ encodings support), please use get_partial() or get_request() instead.
23
+ * Utils: http_get() method has been removed (long obsoleted by
24
+ HttpUtil)
25
+ * different plugins: modified to accomodate for HttpUtil changes.
26
+
27
+ 2007-03-24 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
28
+
29
+ * HttpUtil: new get_response method to follow redirects and get an
30
+ Net::HTTPResponse object with an open connection, allowing partial
31
+ body retrieval.
32
+ * HttpUtil: extend Net::HTTPResponse with a #partial_body() method. The
33
+ method take an argument (max bytes to download) and an optional block;
34
+ the method yields all the partial content that it's being downloaded,
35
+ instead of the single chunks yield by #read_body().
36
+ * url plugin: use the new HttpUtil methods.
37
+ * url plugin: do not block while trying to get link info.
38
+
39
+ 2007-03-14 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
40
+
41
+ * Socket filtering: socket data, both input and output, can now be
42
+ filtered. This is used for example to transcode all input and output
43
+ so that messages are internally managed as UTF-8. By default, the bot
44
+ will try cp1252 (Windows Western European) encoding for non-UTF-8
45
+ strings. Thanks to jsn (Dmitry Kim <dmitry.kim@gmail.com>).
46
+
47
+ 2007-03-10 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
48
+
49
+ * IRC settings: ability to change the IRC name for the bot. Thanks to
50
+ jsn (Dmitry Kim <dmitry.kim@gmail.com>).
51
+ * Plugin: allow customization of the plugin load path. Thanks to
52
+ jsn (Dmitry Kim <dmitry.kim@gmail.com>).
53
+
54
+ 2007-02-20 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
55
+
56
+ * Timers: failing timer actions don't prevent the global timer ticker
57
+ from functioning properly.
58
+ * Shiritori plugin: new word game, contributed by Yaohan Chen
59
+ <yaohan.chen@gmail.com>. People take turns to continue a chain of
60
+ words by saying words that begin with the final letter(s) of the
61
+ previous word.
62
+ * IRC messages are not UTF-8: Most of the string processing across
63
+ rbot is done against IRC messages, which do not have a well-defined
64
+ encoding. Although many clients are now using UTF-8, there is no
65
+ guarantee that an arbitrary string received from IRC will be UTF-8
66
+ encoded. We have to force ASCII (byte-wise/charset agnostic) matching
67
+ because otherwise some strings can give problems: in particular, for
68
+ example, the bytesequence "\340\350\354\362\371" (that is the aeiou
69
+ vowels, each with a grave accent) will cause the string to be
70
+ considered up to the "\354" (i with grave accent) only: so either the
71
+ rest of the message is ignored, or the matching fails.
72
+
73
+ 2007-02-18 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
74
+
75
+ * Plugin: Provide a plugin.header file with boilerplate plugin
76
+ title/author/copyright/license information. Authors of new plugins are
77
+ encouraged to use it. Many existing plugins have been changed to
78
+ follow the same spec.
79
+ * NickServ plugin: delegate #identified() to other plugins after
80
+ successfull identification. Also provide #identified?() method to test
81
+ if the bot has successfully identified. Not perfect yet (gets reset
82
+ after a rescan.)
83
+
84
+ 2007-02-15 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
85
+
86
+ * Plugin: new unreplied() method to handle PRIVMSGs which have not
87
+ been replied to.
88
+ * Regexp: more regexp madness. BasicUserMessage and derivate classes
89
+ now have a new method parse_channel_list() to parse list of channel
90
+ names.
91
+
92
+ 2007-02-12 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
93
+
94
+ * Remote Service Provider: from an idea by halorgium <rbot@spork.in>,
95
+ initial steps towards a DRb-based remote service provider for rbot.
96
+ When complete, it will give plugins the ability to listen to
97
+ 'messages' from remote clients connected to the bot, allowing for such
98
+ things as svn notification without RSS polling, remote control of
99
+ the bot, or even (why not?) botnets.
100
+ * Remote Service Provider: BotModules can now include the
101
+ RemoteBotModule interface that provides them with the remote_map()
102
+ method that works just like the map() method, but for remote commands
103
+ * Remote Service Provider: Remote clients can now login remotely
104
+ before executing commands. This in fact integrates the remote access
105
+ auth security with the User/BotUser used on IRC itself.
106
+
107
+ 2007-02-08 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
108
+
109
+ * Languages: Japanese support with language files, salutations, larts
110
+ and praises, thanks to hagabaka (Yaohan Chen <yaohan.chen@gmail.com>)
111
+
112
+ 2007-02-05 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
113
+
114
+ * sendmsg improvements: the bot sendmsg() method and all the methods
115
+ that rely on it (say(), notice(), and message methods such as reply())
116
+ now accept an option hash to customize its behaviour.
117
+ * :newlines, which can be set to either :split or :join,
118
+ depending on whether newlines in messages should be used as
119
+ split-points, or should be be replaced by some string (defined
120
+ in the :join_with option)
121
+ * :max_lines, which determines the maximum number of lines to be
122
+ sent by each messages. Last line is truncated (see next
123
+ options). Set to nil to have no limits.
124
+ * :overlong, which determines the behaviour when overlong lines
125
+ are to be sent; possible values are :split or :truncate.
126
+ * If :overlong is set to :split, :split_at determines the
127
+ string/regexp to split at; default is /\s+/, other usual
128
+ choice could be /\s+\|\s+/.
129
+ * If :overlong is set to :split, the :purge_split option
130
+ determines whether the :split_at expression should be removed
131
+ from the next lines (defaults to true).
132
+ * If :overlong is set to :truncate, the value of the option
133
+ :truncate_text is replaced at the end of the truncated line
134
+ * LinkBot plugin: initial commit of a plugin to handle messages from
135
+ eggdrops and other bots that act as cross-network channel links.
136
+ Suggested by hagabaka (Yaohan Chen <yaohan.chen@gmail.com>)
137
+
138
+
139
+ 2007-02-03 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
140
+
141
+ * Plugin message mapper: Enhancements to the :requirements option.
142
+ When the requirement of a parameter is a regular expression with
143
+ capturing groups /(...)/, the corresponding map parameters will be
144
+ assigned (by default) the first non-nil capture instead of the whole
145
+ regular expression. If a specific capture group is desired instead,
146
+ the requirement should be in the form
147
+ [/some regexp/, integer_index_of_the_desired_group]
148
+ or in the form
149
+ {
150
+ :regexp => /some regexp/,
151
+ :index => integer_index_of_the_desired_group
152
+ }
153
+ and a nil index will still give the default behavior.
154
+ If you want the whole regular expression to be the matched parameter
155
+ value, there are three options: use an index of 0, wrap the whole
156
+ regular expression in a capturing group, or use non-capturing groups
157
+ /(?:...)/. The latter is preferred because it's much faster.
158
+ When exploiting the capturing groups feature, please try to remember
159
+ to use /\s+/ instead of plain spaces / /, unless it's absolutely
160
+ necessary to have single spaces.
161
+
162
+ 2007-02-02 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
163
+
164
+ * Plugin message mapper: Requirements (as set by the :requirements
165
+ hash) are now embedded in the regular expression matcher rather than
166
+ being cheked separately afterwards.
167
+
168
+ 2007-01-30 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
169
+
170
+ * New IRC Framework: Server methods to retrieve a Channel or User are
171
+ now more robust to empty or nil nicks and channel names passed as
172
+ parameters.
173
+
174
+ 2007-01-29 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
175
+
176
+ * Timer rescheduling: it is now possible to reschedule the period
177
+ any particular Action is taken by issuing the command
178
+ @bot.timer.reschedule(handle, new_period)
179
+ where +handle+ is a timer handle returned by the @bot.timer.add() that
180
+ created the action, and new_period is the new period for the Action.
181
+
182
+ 2007-01-23 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
183
+
184
+ * Reduced saving: the salut, lart, and quotes plugin now only save
185
+ their datafiles if anything changed since last time. This speeds up
186
+ operations such as saving and rescanning; it also allow hand-editing
187
+ of the data files while the bot is running, since a rescan will load
188
+ the changed data files without overwriting them with a useless save
189
+ before. Of course this only works if there are no pending changes in
190
+ the running bot.
191
+
192
+ 2007-01-12 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
193
+
194
+ * Server timeout: rework the server timeout code. Instead of PINGing
195
+ the server unconditionally every server.ping_timeout seconds, we only
196
+ PING it if we don't receive anything in the user-chosen timeout (lazy
197
+ PING). The code rewrite also seems to have fixed the "bot stalling
198
+ doing nothing" problem, which seemed to have been a consequence of
199
+ @socket.select not having a timeout.
200
+
201
+ 2006-11-01 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
202
+
203
+ * SSL support: patch from Robin H. Johnson <robbat2@gentoo.org>
204
+
205
+ 2006-10-28 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
206
+
207
+ * A-Z game: try to guess the word the bot is thinking of: every miss
208
+ helps by reducing the range of allowed words, until it's so small
209
+ around the correct one that you can't miss it.
210
+
211
+ 2006-10-27 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
212
+
213
+ * Flood protection: first attempt at penalty-based flood protection.
214
+ This should make rbot much less prone to Excess Floods *and* still
215
+ serve normally without excessive delays.
216
+
217
+ 2006-10-25 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
218
+
219
+ * HttpUtil: Strings returned by get_cached now have a cached? method
220
+ which returns true or false depending on whether the result was taken
221
+ from the cache or not; this can be exploited by plugins that parse the
222
+ result in some particular way, since they can now skip the parsing
223
+ stage if they cache the parse result.
224
+
225
+ 2006-10-24 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
226
+
227
+ * HttpUtil: initial implementation of proper caching based on
228
+ last-modified and etag HTTP headers
229
+
230
+ 2006-10-17 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
231
+
232
+ * Salut plugin: handles (multilingual) salutations (hello/goodbye)
233
+
234
+ 2006-10-15 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
235
+
236
+ * Language stuff: plugins can now handle language changes in a natural
237
+ fashion. lart is the first plugin to make use of this. NOTE: this
238
+ is not (yet) backwards compatible: the old larts/praises files from
239
+ previous rbot setups have to be renamed manually
240
+ * Language stuff: italian translations
241
+ * Utils.safe_save(filename): allows 'safe' saving of a file: it needs a
242
+ block, to which it will yield a temporary file on which operations can
243
+ be carried out. When the block returns, the tempfile will be renamed to
244
+ the given filename
245
+
246
+ 2006-09-21 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
247
+
248
+ * New Auth Framework: restore backwards compatibility: 'auth
249
+ <masterpassword>' and 'login owner <masterpassword>' both work.
250
+ * Topic plugin: cleanups. Implement 'topic undo'. 'topic undo' after a
251
+ 'topic undo' undoes the last undo.
252
+
253
+ 2006-09-09 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
254
+
255
+ * New Auth Framework: rbot was opping anyone who asked for it (opme
256
+ plugin). Fixed, and cleaned up.
257
+
258
+ 2006-09-01 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
259
+
260
+ * New Auth Framework: document and fine tune permissions view the auth
261
+ core botmodule.
262
+ * Version: when run from a svn checkout, the bot now tries to report
263
+ which svn revision it's at, and if there are local changes
264
+
265
+ 2006-08-31 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
266
+
267
+ * Nickserv plugin: bot will now try to inform nickserv when password
268
+ is changed. Moreover it's not necessary to specify the nick anymore if
269
+ you want to change the password for the current bot nick. Also do some
270
+ internal cleanups while we're at it.
271
+
272
+ 2006-08-29 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
273
+
274
+ * Script plugin: new (UNSAFE!) echo functions. Just like eval, but
275
+ m.replies the result of the evaluation.
276
+ * New Auth Framework: config keys now have their own permissions. So
277
+ you can allow people to view or edit only some of the config values.
278
+ auth.password defaults to false. Still needs some work.
279
+
280
+ 2006-08-26 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
281
+
282
+ * Plugin message mapper: new implementation. Multi-word parameters now
283
+ need not be the last, and it is possible to retrieve the entire
284
+ substring with preserved whitespace by using to_s. Also, parts of the
285
+ map string can be bracketed to make them optional. Examples:
286
+ remind :user [about] *stuff
287
+ will respond to
288
+ remind me about washing my teeth
289
+ and also to
290
+ remind me washing my teeth
291
+ It is possible to have parameters in brackets, in which case they will
292
+ be optional too, and default to nil or [] (resp. single- and
293
+ multi-word parameters) unless an alternative is provided in the
294
+ :defaults hash for the message map options.
295
+ * Script plugin: new (UNSAFE!) eval function. Not documented in help.
296
+ Not permitted by default.
297
+
298
+ 2006-08-25 Mark Kretschmann <markey@web.de>
299
+
300
+ * Added quiz plugin, a multiplayer trivia quiz game.
301
+
302
+ 2006-08-20 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
303
+
304
+ * Topic plugin: fix a bug that prevented it from loading
305
+ correctly.
306
+ * New IRC Framework: make sure that NOTICEs and PRIVMSGs do not
307
+ raise an exception when the target is in one of the special forms
308
+ #<mask> or $<mask>. Needs some work, though, since this case should be
309
+ handled specifically.
310
+
311
+ 2006-08-17 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
312
+
313
+ * Fix help: It got broken while rearranging the plugin stuff, now it's
314
+ properly fixed.
315
+ * New Auth Framework: forgot to create the InvalidPassword exception.
316
+ It's a RuntimeError now.
317
+ * Fix help: this time for real (or so I hope).
318
+ * New IRC Framework: topic plugin now works correctly.
319
+ * New Auth Framework: nickserv plugin now defaults to false for its
320
+ auth, so that only owner can do stuff with it
321
+ * New Auth Framework: fix horrible typo, assignment instead of
322
+ equality test when checking for the username during login.
323
+ * Keywords plugin: tell and forget work again without 'keyword' before
324
+ them.
325
+
326
+ 2006-08-12 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
327
+
328
+ * Subregistry: force prefix to be a String with to_s
329
+
330
+ 2006-08-11 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
331
+
332
+ * AutoOp plugin: adapted to the new IRC framework.
333
+ * AutoOp plugin: trigger autoop on nick change too.
334
+ * New Auth Framework: allow? method now informs a user when they don't
335
+ have permission to do what they asked for.
336
+ * New nickreply and nickokay methods: they act like the old reply
337
+ method, but include the nick of the user the bot is replying to when
338
+ talking in public. The usual reply method can be configured to act
339
+ like this as default.
340
+
341
+ 2006-08-10 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
342
+
343
+ * Fix a bug in new IRC Framework: the list of channels a quitting user was
344
+ on was not built correctly, causing an exception when the user was not
345
+ in the first channel in the list of channels.
346
+ * Fix a bug in new Auth Framework: BotUser's name is changed via
347
+ username=, not name=.
348
+ * New HalfLife 2 plugin from ocr: queries online servers for online
349
+ status and number of users.
350
+
351
+ 2006-08-07 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
352
+
353
+ * Add kick method to kernel: plugins can now use
354
+ @bot.kick channel, user, reason
355
+ to kick a user from a channel
356
+ * RSS plugin: fix rewatch_rss method
357
+ * RSS plugin: the different ways to represent channels before and
358
+ after the New IRC Framework was causing strange problems such as
359
+ watched feed not being listed as such, undeletable watches, double
360
+ watches etc. Fix this by checking both for the Channel objects and
361
+ their to_s form when checking for watches or deleting them.
362
+
363
+ 2006-08-06 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
364
+
365
+ * Updating the ChangeLog again: describe the new stuff in trunk which
366
+ will be made available in the next release. Use Gnu style for new
367
+ changelog entries (yyyy-mm-dd name <email address>\n<tab> ...):
368
+ there's a macro for this since at least Vim 6.x and higher, called by
369
+ <Leader>o (default leader: slash (\))
370
+ * New IRC Framework: Server, Channels, User, Netmasks etc are all
371
+ proper Ruby objects. The better organization will allow multi-server
372
+ connections to be implemented more easily
373
+ * Modularize core: split the internal functionality from what can be
374
+ implemented as botmodules (which work just the same as plugins). Move
375
+ Configuration, Basics and Auth out of the 'kernel' into core
376
+ botmodules.
377
+ * New Auth Framework: BotUsers are now Ruby objects with attached
378
+ PermissionSets which define what the BotUser can do, by channel if
379
+ necessary. The new framework allows very fine-grained control while
380
+ still being very easy to manage for elementary usage. BotUser data can
381
+ be exported and imported, but no backwards compatibility has been
382
+ implemented yet. Most plugins still have to be updated to the new
383
+ command-path-based mechanism.
384
+
385
+ Sun Aug 06 17:33:55 BST 2006 Tom Gilbert <tom@linuxbrit.co.uk>
386
+
387
+ * 0.9.10 released
388
+ * Changes: Lots of new and updated plugins, including one to poll RSS feeds.
389
+ A first step towards a better auth system (total revamp due in 0.9.11).
390
+ Improvements to network and server code which should provide greater
391
+ stability. A new message queueing mechanism with bitrate throttling. A new
392
+ logging framework for debugging and tracing the activities of the bot. A
393
+ new split-db registry system for better performance and transactional
394
+ usage of bdb for resilience. More integration with Nickserv where
395
+ available including optional automatic ghost-killing.
396
+
1
397
  Wed Sep 07 20:16:46 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
2
398
 
3
399
  * Fixed quit, broke it last commit