rbot 0.9.10 → 0.9.12
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +22 -4
- data/COPYING +5 -18
- data/ChangeLog +396 -0
- data/README +23 -25
- data/REQUIREMENTS +58 -12
- data/Rakefile +215 -0
- data/bin/rbot +47 -25
- data/bin/rbot-remote +76 -0
- data/data/rbot/languages/french.lang +5 -5
- data/data/rbot/languages/german.lang +4 -4
- data/data/rbot/languages/italian.lang +53 -0
- data/data/rbot/languages/japanese.lang +43 -0
- data/data/rbot/languages/russian.lang +60 -60
- data/data/rbot/languages/traditional_chinese.lang +75 -0
- data/data/rbot/plugins/alias.rb +192 -0
- data/data/rbot/plugins/autoop.rb +74 -37
- data/data/rbot/plugins/autorejoin.rb +15 -5
- data/data/rbot/plugins/bans.rb +454 -150
- data/data/rbot/plugins/bash.rb +173 -31
- data/data/rbot/plugins/botsnack.rb +37 -0
- data/data/rbot/plugins/cal.rb +11 -2
- data/data/rbot/plugins/chanserv.rb +132 -0
- data/data/rbot/plugins/chucknorris.rb +2 -2
- data/data/rbot/plugins/chucknorris.yml.gz +0 -0
- data/data/rbot/plugins/debugger.rb +136 -0
- data/data/rbot/plugins/deepthoughts.rb +89 -95
- data/data/rbot/plugins/delicious.rb +109 -0
- data/data/rbot/plugins/dice.rb +77 -25
- data/data/rbot/plugins/dict.rb +243 -0
- data/data/rbot/plugins/dictclient.rb +211 -0
- data/data/rbot/plugins/digg.rb +2 -2
- data/data/rbot/plugins/excuse.rb +4 -4
- data/data/rbot/plugins/factoids.rb +506 -0
- data/data/rbot/plugins/figlet.rb +127 -18
- data/data/rbot/plugins/fish.rb +93 -33
- data/data/rbot/plugins/forecast.rb +40 -27
- data/data/rbot/plugins/fortune.rb +86 -11
- data/data/rbot/plugins/freshmeat.rb +46 -12
- data/data/rbot/plugins/games/azgame.rb +565 -0
- data/data/rbot/plugins/games/quiz.rb +961 -0
- data/data/rbot/plugins/games/roshambo.rb +62 -0
- data/data/rbot/plugins/{roulette.rb → games/roulette.rb} +58 -8
- data/data/rbot/plugins/games/shiritori.rb +485 -0
- data/data/rbot/plugins/games/uno.rb +1205 -0
- data/data/rbot/plugins/games/wheelfortune.rb +615 -0
- data/data/rbot/plugins/grouphug.rb +76 -22
- data/data/rbot/plugins/hl2.rb +97 -0
- data/data/rbot/plugins/host.rb +10 -1
- data/data/rbot/plugins/httpd.rb.disabled +1 -0
- data/data/rbot/plugins/imdb.rb +511 -47
- data/data/rbot/plugins/insult.rb +32 -37
- data/data/rbot/plugins/iplookup.rb +224 -224
- data/data/rbot/plugins/karma.rb +45 -21
- data/data/rbot/plugins/keywords.rb +258 -160
- data/data/rbot/plugins/lart.rb +126 -95
- data/data/rbot/plugins/lastfm.rb +421 -12
- data/data/rbot/plugins/linkbot.rb +75 -0
- data/data/rbot/plugins/markov.rb +103 -46
- data/data/rbot/plugins/math.rb +6 -5
- data/data/rbot/plugins/modes.rb +114 -0
- data/data/rbot/plugins/nickrecover.rb +97 -0
- data/data/rbot/plugins/nickserv.rb +111 -48
- data/data/rbot/plugins/nslookup.rb +15 -19
- data/data/rbot/plugins/plugin.header +11 -0
- data/data/rbot/plugins/quakeauth.rb +74 -11
- data/data/rbot/plugins/quotes.rb +189 -233
- data/data/rbot/plugins/reaction.rb +415 -0
- data/data/rbot/plugins/remind.rb +11 -15
- data/data/rbot/plugins/remotectl.rb +29 -0
- data/data/rbot/plugins/ri.rb +74 -0
- data/data/rbot/plugins/rot13.rb +16 -1
- data/data/rbot/plugins/rss.rb +1219 -585
- data/data/rbot/plugins/salut.rb +226 -0
- data/data/rbot/plugins/script.rb +184 -0
- data/data/rbot/plugins/search.rb +233 -0
- data/data/rbot/plugins/seen.rb +44 -40
- data/data/rbot/plugins/shortenurls.rb +93 -0
- data/data/rbot/plugins/slashdot.rb +49 -11
- data/data/rbot/plugins/spell.rb +37 -27
- data/data/rbot/plugins/theyfightcrime.rb +36 -39
- data/data/rbot/plugins/threat.rb +25 -22
- data/data/rbot/plugins/time.rb +135 -0
- data/data/rbot/plugins/topic.rb +107 -50
- data/data/rbot/plugins/translator.rb +360 -0
- data/data/rbot/plugins/tube.rb +28 -40
- data/data/rbot/plugins/twitter.rb +187 -0
- data/data/rbot/plugins/urban.rb +62 -53
- data/data/rbot/plugins/url.rb +193 -409
- data/data/rbot/plugins/usermodes.rb +26 -0
- data/data/rbot/plugins/wall.rb +60 -0
- data/data/rbot/plugins/weather.rb +254 -598
- data/data/rbot/plugins/wow.rb +41 -37
- data/data/rbot/plugins/wserver.rb +17 -25
- data/data/rbot/plugins/youtube.rb +237 -0
- data/data/rbot/templates/lart/{larts → larts-english} +0 -0
- data/data/rbot/templates/lart/larts-italian +25 -0
- data/data/rbot/templates/lart/larts-japanese +10 -0
- data/data/rbot/templates/lart/{praises → praises-english} +0 -0
- data/data/rbot/templates/lart/praises-italian +4 -0
- data/data/rbot/templates/lart/praises-japanese +3 -0
- data/data/rbot/templates/quiz/win_messages +11 -0
- data/data/rbot/templates/salut/salut-english +40 -0
- data/data/rbot/templates/salut/salut-french +29 -0
- data/data/rbot/templates/salut/salut-italian +51 -0
- data/data/rbot/templates/salut/salut-japanese +31 -0
- data/lib/rbot/botuser.rb +940 -0
- data/lib/rbot/config-compat.rb +23 -0
- data/lib/rbot/config.rb +211 -276
- data/lib/rbot/core/auth.rb +1063 -0
- data/lib/rbot/core/basics.rb +214 -0
- data/lib/rbot/core/config.rb +330 -0
- data/lib/rbot/core/filters_ui.rb +64 -0
- data/lib/rbot/core/irclog.rb +292 -0
- data/lib/rbot/core/remote.rb +401 -0
- data/lib/rbot/core/unicode.rb +91 -0
- data/lib/rbot/core/userdata.rb +200 -0
- data/lib/rbot/core/utils/extends.rb +444 -0
- data/lib/rbot/core/utils/filters.rb +154 -0
- data/lib/rbot/core/utils/httputil.rb +689 -0
- data/lib/rbot/core/utils/utils.rb +717 -0
- data/lib/rbot/dbhash.rb +30 -9
- data/lib/rbot/irc.rb +1966 -0
- data/lib/rbot/ircbot.rb +816 -675
- data/lib/rbot/ircsocket.rb +246 -232
- data/lib/rbot/language.rb +86 -8
- data/lib/rbot/load-gettext.rb +154 -0
- data/lib/rbot/maskdb.rb +162 -0
- data/lib/rbot/message.rb +392 -65
- data/lib/rbot/messagemapper.rb +438 -94
- data/lib/rbot/pkgconfig.rb +6 -0
- data/lib/rbot/plugins.rb +713 -172
- data/lib/rbot/post-config.rb +1 -0
- data/lib/rbot/rbotconfig.rb +31 -12
- data/lib/rbot/registry.rb +79 -48
- data/lib/rbot/rfc2812.rb +927 -519
- data/lib/rbot/timer.rb +232 -167
- data/po/en_US/rbot-alias.po +82 -0
- data/po/en_US/rbot-autoop.po +0 -0
- data/po/en_US/rbot-autorejoin.po +0 -0
- data/po/en_US/rbot-azgame.po +200 -0
- data/po/en_US/rbot-bans.po +0 -0
- data/po/en_US/rbot-bash.po +0 -0
- data/po/en_US/rbot-botsnack.po +0 -0
- data/po/en_US/rbot-cal.po +3 -0
- data/po/en_US/rbot-chanserv.po +0 -0
- data/po/en_US/rbot-chucknorris.po +0 -0
- data/po/en_US/rbot-debugger.po +0 -0
- data/po/en_US/rbot-deepthoughts.po +0 -0
- data/po/en_US/rbot-delicious.po +0 -0
- data/po/en_US/rbot-dice.po +0 -0
- data/po/en_US/rbot-dict.po +0 -0
- data/po/en_US/rbot-dictclient.po +124 -0
- data/po/en_US/rbot-digg.po +0 -0
- data/po/en_US/rbot-eightball.po +0 -0
- data/po/en_US/rbot-excuse.po +0 -0
- data/po/en_US/rbot-factoids.po +107 -0
- data/po/en_US/rbot-figlet.po +36 -0
- data/po/en_US/rbot-fish.po +0 -0
- data/po/en_US/rbot-forecast.po +0 -0
- data/po/en_US/rbot-fortune.po +0 -0
- data/po/en_US/rbot-freshmeat.po +0 -0
- data/po/en_US/rbot-grouphug.po +18 -0
- data/po/en_US/rbot-hl2.po +0 -0
- data/po/en_US/rbot-host.po +3 -0
- data/po/en_US/rbot-imdb.po +0 -0
- data/po/en_US/rbot-insult.po +0 -0
- data/po/en_US/rbot-iplookup.po +0 -0
- data/po/en_US/rbot-karma.po +0 -0
- data/po/en_US/rbot-keywords.po +24 -0
- data/po/en_US/rbot-lart.po +0 -0
- data/po/en_US/rbot-lastfm.po +172 -0
- data/po/en_US/rbot-linkbot.po +0 -0
- data/po/en_US/rbot-markov.po +20 -0
- data/po/en_US/rbot-math.po +0 -0
- data/po/en_US/rbot-modes.po +0 -0
- data/po/en_US/rbot-nickrecover.po +40 -0
- data/po/en_US/rbot-nickserv.po +104 -0
- data/po/en_US/rbot-nslookup.po +0 -0
- data/po/en_US/rbot-quakeauth.po +0 -0
- data/po/en_US/rbot-quiz.po +0 -0
- data/po/en_US/rbot-quotes.po +108 -0
- data/po/en_US/rbot-reaction.po +0 -0
- data/po/en_US/rbot-remind.po +0 -0
- data/po/en_US/rbot-remotectl.po +0 -0
- data/po/en_US/rbot-ri.po +0 -0
- data/po/en_US/rbot-roshambo.po +0 -0
- data/po/en_US/rbot-rot13.po +0 -0
- data/po/en_US/rbot-roulette.po +0 -0
- data/po/en_US/rbot-rss.po +20 -0
- data/po/en_US/rbot-salut.po +0 -0
- data/po/en_US/rbot-script.po +0 -0
- data/po/en_US/rbot-search.po +0 -0
- data/po/en_US/rbot-seen.po +0 -0
- data/po/en_US/rbot-shiritori.po +113 -0
- data/po/en_US/rbot-shortenurls.po +0 -0
- data/po/en_US/rbot-slashdot.po +0 -0
- data/po/en_US/rbot-spell.po +54 -0
- data/po/en_US/rbot-theyfightcrime.po +0 -0
- data/po/en_US/rbot-threat.po +0 -0
- data/po/en_US/rbot-time.po +0 -0
- data/po/en_US/rbot-topic.po +0 -0
- data/po/en_US/rbot-translator.po +77 -0
- data/po/en_US/rbot-tube.po +0 -0
- data/po/en_US/rbot-twitter.po +24 -0
- data/po/en_US/rbot-uno.po +512 -0
- data/po/en_US/rbot-urban.po +0 -0
- data/po/en_US/rbot-url.po +0 -0
- data/po/en_US/rbot-usermodes.po +0 -0
- data/po/en_US/rbot-wall.po +33 -0
- data/po/en_US/rbot-weather.po +0 -0
- data/po/en_US/rbot-wheelfortune.po +205 -0
- data/po/en_US/rbot-wow.po +0 -0
- data/po/en_US/rbot-wserver.po +0 -0
- data/po/en_US/rbot-youtube.po +58 -0
- data/po/en_US/rbot.po +1097 -0
- data/po/fr/rbot-alias.po +97 -0
- data/po/fr/rbot-autoop.po +0 -0
- data/po/fr/rbot-autorejoin.po +0 -0
- data/po/fr/rbot-azgame.po +204 -0
- data/po/fr/rbot-bans.po +0 -0
- data/po/fr/rbot-bash.po +0 -0
- data/po/fr/rbot-botsnack.po +0 -0
- data/po/fr/rbot-cal.po +3 -0
- data/po/fr/rbot-chanserv.po +0 -0
- data/po/fr/rbot-chucknorris.po +0 -0
- data/po/fr/rbot-debugger.po +0 -0
- data/po/fr/rbot-deepthoughts.po +0 -0
- data/po/fr/rbot-delicious.po +0 -0
- data/po/fr/rbot-dice.po +0 -0
- data/po/fr/rbot-dict.po +0 -0
- data/po/fr/rbot-dictclient.po +134 -0
- data/po/fr/rbot-digg.po +0 -0
- data/po/fr/rbot-eightball.po +0 -0
- data/po/fr/rbot-excuse.po +0 -0
- data/po/fr/rbot-factoids.po +111 -0
- data/po/fr/rbot-figlet.po +37 -0
- data/po/fr/rbot-fish.po +0 -0
- data/po/fr/rbot-forecast.po +0 -0
- data/po/fr/rbot-fortune.po +0 -0
- data/po/fr/rbot-freshmeat.po +0 -0
- data/po/fr/rbot-grouphug.po +18 -0
- data/po/fr/rbot-hl2.po +0 -0
- data/po/fr/rbot-host.po +3 -0
- data/po/fr/rbot-imdb.po +0 -0
- data/po/fr/rbot-insult.po +0 -0
- data/po/fr/rbot-iplookup.po +0 -0
- data/po/fr/rbot-karma.po +0 -0
- data/po/fr/rbot-keywords.po +24 -0
- data/po/fr/rbot-lart.po +0 -0
- data/po/fr/rbot-lastfm.po +172 -0
- data/po/fr/rbot-linkbot.po +0 -0
- data/po/fr/rbot-markov.po +20 -0
- data/po/fr/rbot-math.po +0 -0
- data/po/fr/rbot-modes.po +0 -0
- data/po/fr/rbot-nickrecover.po +36 -0
- data/po/fr/rbot-nickserv.po +116 -0
- data/po/fr/rbot-nslookup.po +0 -0
- data/po/fr/rbot-quakeauth.po +0 -0
- data/po/fr/rbot-quiz.po +0 -0
- data/po/fr/rbot-quotes.po +138 -0
- data/po/fr/rbot-reaction.po +0 -0
- data/po/fr/rbot-remind.po +0 -0
- data/po/fr/rbot-remotectl.po +0 -0
- data/po/fr/rbot-ri.po +0 -0
- data/po/fr/rbot-roshambo.po +0 -0
- data/po/fr/rbot-rot13.po +0 -0
- data/po/fr/rbot-roulette.po +0 -0
- data/po/fr/rbot-rss.po +20 -0
- data/po/fr/rbot-salut.po +0 -0
- data/po/fr/rbot-script.po +0 -0
- data/po/fr/rbot-search.po +0 -0
- data/po/fr/rbot-seen.po +0 -0
- data/po/fr/rbot-shiritori.po +119 -0
- data/po/fr/rbot-shortenurls.po +0 -0
- data/po/fr/rbot-slashdot.po +0 -0
- data/po/fr/rbot-spell.po +56 -0
- data/po/fr/rbot-theyfightcrime.po +0 -0
- data/po/fr/rbot-threat.po +0 -0
- data/po/fr/rbot-time.po +0 -0
- data/po/fr/rbot-topic.po +0 -0
- data/po/fr/rbot-translator.po +90 -0
- data/po/fr/rbot-tube.po +0 -0
- data/po/fr/rbot-twitter.po +24 -0
- data/po/fr/rbot-uno.po +521 -0
- data/po/fr/rbot-urban.po +0 -0
- data/po/fr/rbot-url.po +0 -0
- data/po/fr/rbot-usermodes.po +0 -0
- data/po/fr/rbot-wall.po +33 -0
- data/po/fr/rbot-weather.po +0 -0
- data/po/fr/rbot-wheelfortune.po +255 -0
- data/po/fr/rbot-wow.po +0 -0
- data/po/fr/rbot-wserver.po +0 -0
- data/po/fr/rbot-youtube.po +64 -0
- data/po/fr/rbot.po +1133 -0
- data/po/it/rbot-alias.po +82 -0
- data/po/it/rbot-autoop.po +0 -0
- data/po/it/rbot-autorejoin.po +0 -0
- data/po/it/rbot-azgame.po +186 -0
- data/po/it/rbot-bans.po +0 -0
- data/po/it/rbot-bash.po +0 -0
- data/po/it/rbot-botsnack.po +0 -0
- data/po/it/rbot-cal.po +3 -0
- data/po/it/rbot-chanserv.po +0 -0
- data/po/it/rbot-chucknorris.po +0 -0
- data/po/it/rbot-debugger.po +0 -0
- data/po/it/rbot-deepthoughts.po +0 -0
- data/po/it/rbot-delicious.po +0 -0
- data/po/it/rbot-dice.po +0 -0
- data/po/it/rbot-dict.po +0 -0
- data/po/it/rbot-dictclient.po +111 -0
- data/po/it/rbot-digg.po +0 -0
- data/po/it/rbot-eightball.po +0 -0
- data/po/it/rbot-excuse.po +0 -0
- data/po/it/rbot-factoids.po +110 -0
- data/po/it/rbot-figlet.po +36 -0
- data/po/it/rbot-fish.po +0 -0
- data/po/it/rbot-forecast.po +0 -0
- data/po/it/rbot-fortune.po +0 -0
- data/po/it/rbot-freshmeat.po +0 -0
- data/po/it/rbot-grouphug.po +18 -0
- data/po/it/rbot-hl2.po +0 -0
- data/po/it/rbot-host.po +3 -0
- data/po/it/rbot-imdb.po +0 -0
- data/po/it/rbot-insult.po +0 -0
- data/po/it/rbot-iplookup.po +0 -0
- data/po/it/rbot-karma.po +0 -0
- data/po/it/rbot-keywords.po +24 -0
- data/po/it/rbot-lart.po +0 -0
- data/po/it/rbot-lastfm.po +172 -0
- data/po/it/rbot-linkbot.po +0 -0
- data/po/it/rbot-markov.po +20 -0
- data/po/it/rbot-math.po +0 -0
- data/po/it/rbot-modes.po +0 -0
- data/po/it/rbot-nickrecover.po +36 -0
- data/po/it/rbot-nickserv.po +104 -0
- data/po/it/rbot-nslookup.po +0 -0
- data/po/it/rbot-quakeauth.po +0 -0
- data/po/it/rbot-quiz.po +0 -0
- data/po/it/rbot-quotes.po +108 -0
- data/po/it/rbot-reaction.po +0 -0
- data/po/it/rbot-remind.po +0 -0
- data/po/it/rbot-remotectl.po +0 -0
- data/po/it/rbot-ri.po +0 -0
- data/po/it/rbot-roshambo.po +0 -0
- data/po/it/rbot-rot13.po +0 -0
- data/po/it/rbot-roulette.po +0 -0
- data/po/it/rbot-rss.po +20 -0
- data/po/it/rbot-salut.po +0 -0
- data/po/it/rbot-script.po +0 -0
- data/po/it/rbot-search.po +0 -0
- data/po/it/rbot-seen.po +0 -0
- data/po/it/rbot-shiritori.po +102 -0
- data/po/it/rbot-shortenurls.po +0 -0
- data/po/it/rbot-slashdot.po +0 -0
- data/po/it/rbot-spell.po +54 -0
- data/po/it/rbot-theyfightcrime.po +0 -0
- data/po/it/rbot-threat.po +0 -0
- data/po/it/rbot-time.po +0 -0
- data/po/it/rbot-topic.po +0 -0
- data/po/it/rbot-translator.po +77 -0
- data/po/it/rbot-tube.po +0 -0
- data/po/it/rbot-twitter.po +24 -0
- data/po/it/rbot-uno.po +564 -0
- data/po/it/rbot-urban.po +0 -0
- data/po/it/rbot-url.po +0 -0
- data/po/it/rbot-usermodes.po +0 -0
- data/po/it/rbot-wall.po +33 -0
- data/po/it/rbot-weather.po +0 -0
- data/po/it/rbot-wheelfortune.po +251 -0
- data/po/it/rbot-wow.po +0 -0
- data/po/it/rbot-wserver.po +0 -0
- data/po/it/rbot-youtube.po +64 -0
- data/po/it/rbot.po +1127 -0
- data/po/ja/rbot-alias.po +82 -0
- data/po/ja/rbot-autoop.po +0 -0
- data/po/ja/rbot-autorejoin.po +0 -0
- data/po/ja/rbot-azgame.po +194 -0
- data/po/ja/rbot-bans.po +0 -0
- data/po/ja/rbot-bash.po +0 -0
- data/po/ja/rbot-botsnack.po +0 -0
- data/po/ja/rbot-cal.po +3 -0
- data/po/ja/rbot-chanserv.po +0 -0
- data/po/ja/rbot-chucknorris.po +0 -0
- data/po/ja/rbot-debugger.po +0 -0
- data/po/ja/rbot-deepthoughts.po +0 -0
- data/po/ja/rbot-delicious.po +0 -0
- data/po/ja/rbot-dice.po +0 -0
- data/po/ja/rbot-dict.po +0 -0
- data/po/ja/rbot-dictclient.po +111 -0
- data/po/ja/rbot-digg.po +0 -0
- data/po/ja/rbot-eightball.po +0 -0
- data/po/ja/rbot-excuse.po +0 -0
- data/po/ja/rbot-factoids.po +107 -0
- data/po/ja/rbot-figlet.po +36 -0
- data/po/ja/rbot-fish.po +0 -0
- data/po/ja/rbot-forecast.po +0 -0
- data/po/ja/rbot-fortune.po +0 -0
- data/po/ja/rbot-freshmeat.po +0 -0
- data/po/ja/rbot-grouphug.po +18 -0
- data/po/ja/rbot-hl2.po +0 -0
- data/po/ja/rbot-host.po +3 -0
- data/po/ja/rbot-imdb.po +0 -0
- data/po/ja/rbot-insult.po +0 -0
- data/po/ja/rbot-iplookup.po +0 -0
- data/po/ja/rbot-karma.po +0 -0
- data/po/ja/rbot-keywords.po +24 -0
- data/po/ja/rbot-lart.po +0 -0
- data/po/ja/rbot-lastfm.po +172 -0
- data/po/ja/rbot-linkbot.po +0 -0
- data/po/ja/rbot-markov.po +20 -0
- data/po/ja/rbot-math.po +0 -0
- data/po/ja/rbot-modes.po +0 -0
- data/po/ja/rbot-nickrecover.po +36 -0
- data/po/ja/rbot-nickserv.po +104 -0
- data/po/ja/rbot-nslookup.po +0 -0
- data/po/ja/rbot-quakeauth.po +0 -0
- data/po/ja/rbot-quiz.po +0 -0
- data/po/ja/rbot-quotes.po +108 -0
- data/po/ja/rbot-reaction.po +0 -0
- data/po/ja/rbot-remind.po +0 -0
- data/po/ja/rbot-remotectl.po +0 -0
- data/po/ja/rbot-ri.po +0 -0
- data/po/ja/rbot-roshambo.po +0 -0
- data/po/ja/rbot-rot13.po +0 -0
- data/po/ja/rbot-roulette.po +0 -0
- data/po/ja/rbot-rss.po +20 -0
- data/po/ja/rbot-salut.po +0 -0
- data/po/ja/rbot-script.po +0 -0
- data/po/ja/rbot-search.po +0 -0
- data/po/ja/rbot-seen.po +0 -0
- data/po/ja/rbot-shiritori.po +115 -0
- data/po/ja/rbot-shortenurls.po +0 -0
- data/po/ja/rbot-slashdot.po +0 -0
- data/po/ja/rbot-spell.po +54 -0
- data/po/ja/rbot-theyfightcrime.po +0 -0
- data/po/ja/rbot-threat.po +0 -0
- data/po/ja/rbot-time.po +0 -0
- data/po/ja/rbot-topic.po +0 -0
- data/po/ja/rbot-translator.po +77 -0
- data/po/ja/rbot-tube.po +0 -0
- data/po/ja/rbot-twitter.po +24 -0
- data/po/ja/rbot-uno.po +512 -0
- data/po/ja/rbot-urban.po +0 -0
- data/po/ja/rbot-url.po +0 -0
- data/po/ja/rbot-usermodes.po +0 -0
- data/po/ja/rbot-wall.po +33 -0
- data/po/ja/rbot-weather.po +0 -0
- data/po/ja/rbot-wheelfortune.po +205 -0
- data/po/ja/rbot-wow.po +0 -0
- data/po/ja/rbot-wserver.po +0 -0
- data/po/ja/rbot-youtube.po +58 -0
- data/po/ja/rbot.po +999 -0
- data/po/rbot-alias.pot +83 -0
- data/po/rbot-autoop.pot +0 -0
- data/po/rbot-autorejoin.pot +0 -0
- data/po/rbot-azgame.pot +187 -0
- data/po/rbot-bans.pot +0 -0
- data/po/rbot-bash.pot +0 -0
- data/po/rbot-botsnack.pot +0 -0
- data/po/rbot-cal.pot +21 -0
- data/po/rbot-chanserv.pot +0 -0
- data/po/rbot-chucknorris.pot +0 -0
- data/po/rbot-debugger.pot +0 -0
- data/po/rbot-deepthoughts.pot +0 -0
- data/po/rbot-delicious.pot +0 -0
- data/po/rbot-dice.pot +0 -0
- data/po/rbot-dict.pot +0 -0
- data/po/rbot-dictclient.pot +112 -0
- data/po/rbot-digg.pot +0 -0
- data/po/rbot-eightball.pot +0 -0
- data/po/rbot-excuse.pot +0 -0
- data/po/rbot-factoids.pot +108 -0
- data/po/rbot-figlet.pot +37 -0
- data/po/rbot-fish.pot +0 -0
- data/po/rbot-forecast.pot +0 -0
- data/po/rbot-fortune.pot +0 -0
- data/po/rbot-freshmeat.pot +0 -0
- data/po/rbot-grouphug.pot +36 -0
- data/po/rbot-hl2.pot +0 -0
- data/po/rbot-host.pot +21 -0
- data/po/rbot-imdb.pot +0 -0
- data/po/rbot-insult.pot +0 -0
- data/po/rbot-iplookup.pot +0 -0
- data/po/rbot-karma.pot +0 -0
- data/po/rbot-keywords.pot +25 -0
- data/po/rbot-lart.pot +0 -0
- data/po/rbot-lastfm.pot +190 -0
- data/po/rbot-linkbot.pot +0 -0
- data/po/rbot-markov.pot +21 -0
- data/po/rbot-math.pot +0 -0
- data/po/rbot-modes.pot +0 -0
- data/po/rbot-nickrecover.pot +37 -0
- data/po/rbot-nickserv.pot +105 -0
- data/po/rbot-nslookup.pot +0 -0
- data/po/rbot-quakeauth.pot +0 -0
- data/po/rbot-quiz.pot +0 -0
- data/po/rbot-quotes.pot +109 -0
- data/po/rbot-reaction.pot +0 -0
- data/po/rbot-remind.pot +0 -0
- data/po/rbot-remotectl.pot +0 -0
- data/po/rbot-ri.pot +0 -0
- data/po/rbot-roshambo.pot +0 -0
- data/po/rbot-rot13.pot +0 -0
- data/po/rbot-roulette.pot +0 -0
- data/po/rbot-rss.pot +21 -0
- data/po/rbot-salut.pot +0 -0
- data/po/rbot-script.pot +0 -0
- data/po/rbot-search.pot +0 -0
- data/po/rbot-seen.pot +0 -0
- data/po/rbot-shiritori.pot +103 -0
- data/po/rbot-shortenurls.pot +0 -0
- data/po/rbot-slashdot.pot +0 -0
- data/po/rbot-spell.pot +55 -0
- data/po/rbot-theyfightcrime.pot +0 -0
- data/po/rbot-threat.pot +0 -0
- data/po/rbot-time.pot +0 -0
- data/po/rbot-topic.pot +0 -0
- data/po/rbot-translator.pot +78 -0
- data/po/rbot-tube.pot +0 -0
- data/po/rbot-twitter.pot +25 -0
- data/po/rbot-uno.pot +513 -0
- data/po/rbot-urban.pot +0 -0
- data/po/rbot-url.pot +0 -0
- data/po/rbot-usermodes.pot +0 -0
- data/po/rbot-wall.pot +33 -0
- data/po/rbot-weather.pot +0 -0
- data/po/rbot-wheelfortune.pot +206 -0
- data/po/rbot-wow.pot +0 -0
- data/po/rbot-wserver.pot +0 -0
- data/po/rbot-youtube.pot +59 -0
- data/po/rbot.pot +1004 -0
- data/po/zh_CN/rbot-alias.po +82 -0
- data/po/zh_CN/rbot-autoop.po +0 -0
- data/po/zh_CN/rbot-autorejoin.po +0 -0
- data/po/zh_CN/rbot-azgame.po +186 -0
- data/po/zh_CN/rbot-bans.po +0 -0
- data/po/zh_CN/rbot-bash.po +0 -0
- data/po/zh_CN/rbot-botsnack.po +0 -0
- data/po/zh_CN/rbot-cal.po +3 -0
- data/po/zh_CN/rbot-chanserv.po +0 -0
- data/po/zh_CN/rbot-chucknorris.po +0 -0
- data/po/zh_CN/rbot-debugger.po +0 -0
- data/po/zh_CN/rbot-deepthoughts.po +0 -0
- data/po/zh_CN/rbot-delicious.po +0 -0
- data/po/zh_CN/rbot-dice.po +0 -0
- data/po/zh_CN/rbot-dict.po +0 -0
- data/po/zh_CN/rbot-dictclient.po +111 -0
- data/po/zh_CN/rbot-digg.po +0 -0
- data/po/zh_CN/rbot-eightball.po +0 -0
- data/po/zh_CN/rbot-excuse.po +0 -0
- data/po/zh_CN/rbot-factoids.po +107 -0
- data/po/zh_CN/rbot-figlet.po +36 -0
- data/po/zh_CN/rbot-fish.po +0 -0
- data/po/zh_CN/rbot-forecast.po +0 -0
- data/po/zh_CN/rbot-fortune.po +0 -0
- data/po/zh_CN/rbot-freshmeat.po +0 -0
- data/po/zh_CN/rbot-grouphug.po +18 -0
- data/po/zh_CN/rbot-hl2.po +0 -0
- data/po/zh_CN/rbot-host.po +3 -0
- data/po/zh_CN/rbot-imdb.po +0 -0
- data/po/zh_CN/rbot-insult.po +0 -0
- data/po/zh_CN/rbot-iplookup.po +0 -0
- data/po/zh_CN/rbot-karma.po +0 -0
- data/po/zh_CN/rbot-keywords.po +24 -0
- data/po/zh_CN/rbot-lart.po +0 -0
- data/po/zh_CN/rbot-lastfm.po +172 -0
- data/po/zh_CN/rbot-linkbot.po +0 -0
- data/po/zh_CN/rbot-markov.po +20 -0
- data/po/zh_CN/rbot-math.po +0 -0
- data/po/zh_CN/rbot-modes.po +0 -0
- data/po/zh_CN/rbot-nickrecover.po +36 -0
- data/po/zh_CN/rbot-nickserv.po +104 -0
- data/po/zh_CN/rbot-nslookup.po +0 -0
- data/po/zh_CN/rbot-quakeauth.po +0 -0
- data/po/zh_CN/rbot-quiz.po +0 -0
- data/po/zh_CN/rbot-quotes.po +108 -0
- data/po/zh_CN/rbot-reaction.po +0 -0
- data/po/zh_CN/rbot-remind.po +0 -0
- data/po/zh_CN/rbot-remotectl.po +0 -0
- data/po/zh_CN/rbot-ri.po +0 -0
- data/po/zh_CN/rbot-roshambo.po +0 -0
- data/po/zh_CN/rbot-rot13.po +0 -0
- data/po/zh_CN/rbot-roulette.po +0 -0
- data/po/zh_CN/rbot-rss.po +20 -0
- data/po/zh_CN/rbot-salut.po +0 -0
- data/po/zh_CN/rbot-script.po +0 -0
- data/po/zh_CN/rbot-search.po +0 -0
- data/po/zh_CN/rbot-seen.po +0 -0
- data/po/zh_CN/rbot-shiritori.po +102 -0
- data/po/zh_CN/rbot-shortenurls.po +0 -0
- data/po/zh_CN/rbot-slashdot.po +0 -0
- data/po/zh_CN/rbot-spell.po +54 -0
- data/po/zh_CN/rbot-theyfightcrime.po +0 -0
- data/po/zh_CN/rbot-threat.po +0 -0
- data/po/zh_CN/rbot-time.po +0 -0
- data/po/zh_CN/rbot-topic.po +0 -0
- data/po/zh_CN/rbot-translator.po +77 -0
- data/po/zh_CN/rbot-tube.po +0 -0
- data/po/zh_CN/rbot-twitter.po +24 -0
- data/po/zh_CN/rbot-uno.po +512 -0
- data/po/zh_CN/rbot-urban.po +0 -0
- data/po/zh_CN/rbot-url.po +0 -0
- data/po/zh_CN/rbot-usermodes.po +0 -0
- data/po/zh_CN/rbot-wall.po +33 -0
- data/po/zh_CN/rbot-weather.po +0 -0
- data/po/zh_CN/rbot-wheelfortune.po +205 -0
- data/po/zh_CN/rbot-wow.po +0 -0
- data/po/zh_CN/rbot-wserver.po +0 -0
- data/po/zh_CN/rbot-youtube.po +58 -0
- data/po/zh_CN/rbot.po +1006 -0
- data/po/zh_TW/rbot-alias.po +82 -0
- data/po/zh_TW/rbot-autoop.po +0 -0
- data/po/zh_TW/rbot-autorejoin.po +0 -0
- data/po/zh_TW/rbot-azgame.po +186 -0
- data/po/zh_TW/rbot-bans.po +0 -0
- data/po/zh_TW/rbot-bash.po +0 -0
- data/po/zh_TW/rbot-botsnack.po +0 -0
- data/po/zh_TW/rbot-cal.po +3 -0
- data/po/zh_TW/rbot-chanserv.po +0 -0
- data/po/zh_TW/rbot-chucknorris.po +0 -0
- data/po/zh_TW/rbot-debugger.po +0 -0
- data/po/zh_TW/rbot-deepthoughts.po +0 -0
- data/po/zh_TW/rbot-delicious.po +0 -0
- data/po/zh_TW/rbot-dice.po +0 -0
- data/po/zh_TW/rbot-dict.po +0 -0
- data/po/zh_TW/rbot-dictclient.po +111 -0
- data/po/zh_TW/rbot-digg.po +0 -0
- data/po/zh_TW/rbot-eightball.po +0 -0
- data/po/zh_TW/rbot-excuse.po +0 -0
- data/po/zh_TW/rbot-factoids.po +107 -0
- data/po/zh_TW/rbot-figlet.po +36 -0
- data/po/zh_TW/rbot-fish.po +0 -0
- data/po/zh_TW/rbot-forecast.po +0 -0
- data/po/zh_TW/rbot-fortune.po +0 -0
- data/po/zh_TW/rbot-freshmeat.po +0 -0
- data/po/zh_TW/rbot-grouphug.po +18 -0
- data/po/zh_TW/rbot-hl2.po +0 -0
- data/po/zh_TW/rbot-host.po +3 -0
- data/po/zh_TW/rbot-imdb.po +0 -0
- data/po/zh_TW/rbot-insult.po +0 -0
- data/po/zh_TW/rbot-iplookup.po +0 -0
- data/po/zh_TW/rbot-karma.po +0 -0
- data/po/zh_TW/rbot-keywords.po +24 -0
- data/po/zh_TW/rbot-lart.po +0 -0
- data/po/zh_TW/rbot-lastfm.po +172 -0
- data/po/zh_TW/rbot-linkbot.po +0 -0
- data/po/zh_TW/rbot-markov.po +20 -0
- data/po/zh_TW/rbot-math.po +0 -0
- data/po/zh_TW/rbot-modes.po +0 -0
- data/po/zh_TW/rbot-nickrecover.po +36 -0
- data/po/zh_TW/rbot-nickserv.po +104 -0
- data/po/zh_TW/rbot-nslookup.po +0 -0
- data/po/zh_TW/rbot-quakeauth.po +0 -0
- data/po/zh_TW/rbot-quiz.po +0 -0
- data/po/zh_TW/rbot-quotes.po +108 -0
- data/po/zh_TW/rbot-reaction.po +0 -0
- data/po/zh_TW/rbot-remind.po +0 -0
- data/po/zh_TW/rbot-remotectl.po +0 -0
- data/po/zh_TW/rbot-ri.po +0 -0
- data/po/zh_TW/rbot-roshambo.po +0 -0
- data/po/zh_TW/rbot-rot13.po +0 -0
- data/po/zh_TW/rbot-roulette.po +0 -0
- data/po/zh_TW/rbot-rss.po +20 -0
- data/po/zh_TW/rbot-salut.po +0 -0
- data/po/zh_TW/rbot-script.po +0 -0
- data/po/zh_TW/rbot-search.po +0 -0
- data/po/zh_TW/rbot-seen.po +0 -0
- data/po/zh_TW/rbot-shiritori.po +102 -0
- data/po/zh_TW/rbot-shortenurls.po +0 -0
- data/po/zh_TW/rbot-slashdot.po +0 -0
- data/po/zh_TW/rbot-spell.po +54 -0
- data/po/zh_TW/rbot-theyfightcrime.po +0 -0
- data/po/zh_TW/rbot-threat.po +0 -0
- data/po/zh_TW/rbot-time.po +0 -0
- data/po/zh_TW/rbot-topic.po +0 -0
- data/po/zh_TW/rbot-translator.po +77 -0
- data/po/zh_TW/rbot-tube.po +0 -0
- data/po/zh_TW/rbot-twitter.po +24 -0
- data/po/zh_TW/rbot-uno.po +512 -0
- data/po/zh_TW/rbot-urban.po +0 -0
- data/po/zh_TW/rbot-url.po +0 -0
- data/po/zh_TW/rbot-usermodes.po +0 -0
- data/po/zh_TW/rbot-wall.po +33 -0
- data/po/zh_TW/rbot-weather.po +0 -0
- data/po/zh_TW/rbot-wheelfortune.po +205 -0
- data/po/zh_TW/rbot-wow.po +0 -0
- data/po/zh_TW/rbot-wserver.po +0 -0
- data/po/zh_TW/rbot-youtube.po +58 -0
- data/po/zh_TW/rbot.po +1034 -0
- data/setup.rb +800 -574
- metadata +723 -108
- data/data/rbot/contrib/plugins/figlet.rb +0 -20
- data/data/rbot/contrib/plugins/ri.rb +0 -83
- data/data/rbot/plugins/demauro.rb +0 -95
- data/data/rbot/plugins/google.rb +0 -53
- data/data/rbot/plugins/opme.rb +0 -19
- data/data/rbot/plugins/roshambo.rb +0 -54
- data/data/rbot/plugins/rubyurl.rb +0 -39
- data/data/rbot/plugins/tinyurl.rb +0 -39
- data/data/rbot/plugins/xmlrpc.rb.disabled +0 -52
- data/data/rbot/templates/levels.rbot +0 -32
- data/data/rbot/templates/users.rbot +0 -1
- data/lib/rbot/auth.rb +0 -314
- data/lib/rbot/channel.rb +0 -54
- data/lib/rbot/httputil.rb +0 -309
- data/lib/rbot/utils.rb +0 -83
data/bin/rbot-remote
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
require 'drb'
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
#++
|
6
|
+
#
|
7
|
+
# :title: RemoteCtl example script
|
8
|
+
#
|
9
|
+
# Author:: jsn (dmitry kim) <dmitry dot kim at gmail dot org>
|
10
|
+
# Copyright:: (C) 2007 dmitry kim
|
11
|
+
# License:: in public domain
|
12
|
+
|
13
|
+
user = nil
|
14
|
+
pw = nil
|
15
|
+
dst = nil
|
16
|
+
uri = 'druby://localhost:7268'
|
17
|
+
|
18
|
+
opts = OptionParser.new
|
19
|
+
opts.on('-u', '--user <user>', "remote user (mandatory)") { |v| user = v }
|
20
|
+
opts.on('-p', '--password <pw>', "remote user password (mandatory)") { |v| pw = v }
|
21
|
+
opts.on('-d', '--destination <user or #channel>') { |v| dst = v }
|
22
|
+
opts.on('-r', '--uri <drb uri>', "rbot url (#{uri})") { |v| uri = v }
|
23
|
+
opts.on('-h', '--help', "this message") { |v| pw = nil } # sorry!
|
24
|
+
opts.on('-a', '--about', "what it's all about.") { |v|
|
25
|
+
puts <<EOF
|
26
|
+
This is just a proof-of-concept example for rbot druby-based api. This program
|
27
|
+
reads lines of text from the standard input and sends them to a specified irc
|
28
|
+
channel or user via rbot. Make sure you have remotectl.rb plugin loaded before
|
29
|
+
use.
|
30
|
+
|
31
|
+
The necessary setup is:
|
32
|
+
1) # create a new rbot user ("rmuser", in this example) with a password
|
33
|
+
# ("rmpw", in this example). in an open query to rbot:
|
34
|
+
|
35
|
+
<you> user create rmuser rmpw
|
36
|
+
<rbot> created botuser remote
|
37
|
+
|
38
|
+
2) # add a remotectl permission to your newly created remote user:
|
39
|
+
|
40
|
+
<you> permissions set +remotectl for rmuser
|
41
|
+
<rbot> okies!
|
42
|
+
|
43
|
+
3) # add specific permissions for the commands you want to allow via
|
44
|
+
# remote interface. for example, in this script we want 'say',
|
45
|
+
# 'action' and other basic commands to work:
|
46
|
+
|
47
|
+
<you> permissions set +basics::talk::do for rmuser
|
48
|
+
<rbot> alright
|
49
|
+
|
50
|
+
4) # run the #{$0} and type something. the message should
|
51
|
+
# show up on your channel / arrive as an irc private message.
|
52
|
+
|
53
|
+
[you@yourhost ~]$ ./bin/rbot-remote -u rmuser -p rmpw -d '#your-channel'
|
54
|
+
hello, world!
|
55
|
+
<Ctrl-D>
|
56
|
+
[you@yourhost ~]$
|
57
|
+
EOF
|
58
|
+
exit 0
|
59
|
+
}
|
60
|
+
opts.parse!
|
61
|
+
|
62
|
+
if !pw || !user || !dst
|
63
|
+
puts opts.to_s
|
64
|
+
exit 0
|
65
|
+
end
|
66
|
+
|
67
|
+
rbot = DRbObject.new_with_uri(uri)
|
68
|
+
id = rbot.delegate(nil, "remote login #{user} #{pw}")[:return]
|
69
|
+
puts "id is #{id.inspect}"
|
70
|
+
loop {
|
71
|
+
s = gets or break
|
72
|
+
s.chomp!
|
73
|
+
rv = rbot.delegate(id, "dispatch say #{dst} #{s}") or break
|
74
|
+
puts "rv is #{rv.inspect}"
|
75
|
+
}
|
76
|
+
|
@@ -3,8 +3,8 @@ okay:
|
|
3
3
|
dunno:
|
4
4
|
de quoi est mort votre dernier esclave?
|
5
5
|
je vous aurais bien aide, mais je ne vous aime pas
|
6
|
-
faites-le vous-
|
7
|
-
parle
|
6
|
+
faites-le vous-même
|
7
|
+
parle à mon cul, ma tête est malade
|
8
8
|
je ne sais pas
|
9
9
|
je ne peut pas faire ca Dave.
|
10
10
|
dunno_about_X:
|
@@ -12,10 +12,10 @@ dunno_about_X:
|
|
12
12
|
insult:
|
13
13
|
%s: putin!
|
14
14
|
%s: :(
|
15
|
-
%s: je te
|
15
|
+
%s: je te déteste :(
|
16
16
|
%s: tu es completement debile
|
17
|
-
%s: mais t'as une
|
18
|
-
%s: est-ce que vous
|
17
|
+
%s: mais t'as une tête a faire sauter les plaques d'egouts!
|
18
|
+
%s: est-ce que vous êtes ivre?
|
19
19
|
hello:
|
20
20
|
bonjour
|
21
21
|
salut
|
@@ -19,8 +19,8 @@ dunno:
|
|
19
19
|
ich kann es nicht tun
|
20
20
|
am besten du schaust selber nach
|
21
21
|
dunno_about_X:
|
22
|
-
ich weiss nichts
|
23
|
-
ich habe nie von %s
|
22
|
+
ich weiss nichts über %s
|
23
|
+
ich habe nie von %s gehört :(
|
24
24
|
was zum Teufel ist %s?
|
25
25
|
insult:
|
26
26
|
%s: Arsch!
|
@@ -56,14 +56,14 @@ welcome:
|
|
56
56
|
np :)
|
57
57
|
thanks:
|
58
58
|
Danke :)
|
59
|
-
|
59
|
+
Süss!
|
60
60
|
juhu :)
|
61
61
|
:-D
|
62
62
|
Prost!
|
63
63
|
thanks_X:
|
64
64
|
%s: danke :)
|
65
65
|
%s: :-D
|
66
|
-
%s:
|
66
|
+
%s: süss!
|
67
67
|
%s: juhu :)
|
68
68
|
%s: Prost
|
69
69
|
quit:
|
@@ -0,0 +1,53 @@
|
|
1
|
+
okay:
|
2
|
+
okay
|
3
|
+
ok
|
4
|
+
fatto
|
5
|
+
come vuoi
|
6
|
+
detto, fatto
|
7
|
+
dunno:
|
8
|
+
non saprei
|
9
|
+
non ne ho idea
|
10
|
+
boh
|
11
|
+
e chi lo sa
|
12
|
+
chiedi a qualcun altro
|
13
|
+
non so
|
14
|
+
dunno_about_X:
|
15
|
+
non so niente di %s
|
16
|
+
%s? mai sentito
|
17
|
+
insult:
|
18
|
+
fanculo, %s
|
19
|
+
ciuccia, %s
|
20
|
+
%s: vacagher
|
21
|
+
%s, facci un favore e muori
|
22
|
+
odioso, %s
|
23
|
+
%s, rompicoglioni di professione?
|
24
|
+
%s, hai rotto
|
25
|
+
tua mamma, %s
|
26
|
+
hello:
|
27
|
+
ola' :)
|
28
|
+
ciao
|
29
|
+
salve
|
30
|
+
saluti
|
31
|
+
yo
|
32
|
+
hello_X:
|
33
|
+
ola', %s
|
34
|
+
yo %s
|
35
|
+
salve, %s
|
36
|
+
%s, yo
|
37
|
+
%s, ola'
|
38
|
+
ciao %s
|
39
|
+
%s, ciao
|
40
|
+
welcome:
|
41
|
+
quando vuoi
|
42
|
+
de nada
|
43
|
+
no problema
|
44
|
+
thanks:
|
45
|
+
grazie :)
|
46
|
+
grassssie
|
47
|
+
thanks_X:
|
48
|
+
grazie %s
|
49
|
+
quit:
|
50
|
+
adios
|
51
|
+
se vedemio
|
52
|
+
a dopo
|
53
|
+
ciao ciao a tutti
|
@@ -0,0 +1,43 @@
|
|
1
|
+
okay:
|
2
|
+
オッケー
|
3
|
+
はいよ
|
4
|
+
はいはい
|
5
|
+
かしこまりました!
|
6
|
+
dunno:
|
7
|
+
さあ
|
8
|
+
なにそれ?
|
9
|
+
知らないよ!
|
10
|
+
へっ?
|
11
|
+
dunno_about_X:
|
12
|
+
%s ってなに?
|
13
|
+
%s が何かわからない
|
14
|
+
insult:
|
15
|
+
%s大嫌い!
|
16
|
+
%s: :(
|
17
|
+
%s: 貴様、ブックロスぞ!
|
18
|
+
%s: 死ね!
|
19
|
+
%s: ひどいよ!
|
20
|
+
hello:
|
21
|
+
こんにちは
|
22
|
+
おっす!
|
23
|
+
やあ
|
24
|
+
ごきげんよう
|
25
|
+
hello_X:
|
26
|
+
こんにちは、%sさん
|
27
|
+
やあ、%s
|
28
|
+
welcome:
|
29
|
+
どういたしまして
|
30
|
+
いええ
|
31
|
+
thanks:
|
32
|
+
ありがとう!
|
33
|
+
どうも
|
34
|
+
まいどに!
|
35
|
+
=D
|
36
|
+
thanks_X:
|
37
|
+
%sさん、ありがとうございました
|
38
|
+
%sさん、どうも
|
39
|
+
quit:
|
40
|
+
じゃあね
|
41
|
+
またね
|
42
|
+
失礼します!
|
43
|
+
バイバイ!
|
@@ -1,75 +1,75 @@
|
|
1
1
|
okay:
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
хорошо
|
3
|
+
понятно
|
4
|
+
да конечно
|
5
|
+
раз плюнуть
|
6
|
+
сделано
|
7
|
+
можно
|
8
|
+
секундочку
|
9
|
+
да-да
|
10
|
+
секунду
|
11
|
+
без проблем
|
12
12
|
dunno:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
не знаю
|
14
|
+
понятия не имею
|
15
|
+
без понятий
|
16
|
+
я не могу вам помочь
|
17
|
+
что?
|
18
|
+
если бы я знал
|
19
|
+
не спрашивай
|
20
|
+
а кто его знает
|
21
|
+
а вы уверены?
|
22
|
+
да нет!
|
23
23
|
dunno_about_X:
|
24
|
-
|
25
|
-
|
26
|
-
%s?
|
27
|
-
|
24
|
+
не знаю об %s
|
25
|
+
впервые слышу про %s :(
|
26
|
+
%s? а что это такое ?
|
27
|
+
но что значит %s?
|
28
28
|
insult:
|
29
|
-
%s:
|
29
|
+
%s: я вас ненавижу!
|
30
30
|
%s: :(
|
31
|
-
%s:
|
32
|
-
%s:
|
33
|
-
%s:
|
34
|
-
%s:
|
31
|
+
%s: у вас нет совести :(
|
32
|
+
%s: умри!
|
33
|
+
%s: я буду жаловаться
|
34
|
+
%s: а вы меня обидели
|
35
35
|
hello:
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
36
|
+
привет :)
|
37
|
+
как дела :)
|
38
|
+
драсти
|
39
|
+
эй там!
|
40
|
+
будь здоров
|
41
|
+
доброе утро
|
42
|
+
добрый день
|
43
|
+
как дела?
|
44
44
|
hello_X:
|
45
|
-
|
46
|
-
%s:
|
47
|
-
%s:
|
48
|
-
%s:
|
45
|
+
привет %s :)
|
46
|
+
%s: драсти
|
47
|
+
%s: будь здоров
|
48
|
+
%s: доброе утро
|
49
49
|
hey %s :)
|
50
|
-
%s:
|
51
|
-
%s:
|
52
|
-
|
53
|
-
%s:
|
54
|
-
|
50
|
+
%s: эй там!
|
51
|
+
%s: как ты там
|
52
|
+
рад встрече, %s!
|
53
|
+
%s: хей!
|
54
|
+
приветствую %s?
|
55
55
|
welcome:
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
56
|
+
без проблем
|
57
|
+
всегда рад
|
58
|
+
мне было приятно
|
59
|
+
рад помочи
|
60
60
|
:)
|
61
61
|
thanks:
|
62
|
-
|
63
|
-
|
64
|
-
|
62
|
+
пасиба :)
|
63
|
+
ой как хорошо!
|
64
|
+
спасибо :)
|
65
65
|
=D
|
66
|
-
|
66
|
+
а мы друзья!
|
67
67
|
thanks_X:
|
68
|
-
%s:
|
69
|
-
%s:
|
68
|
+
%s: спасибо :)
|
69
|
+
%s: ой как хорошо!!
|
70
70
|
%s: =D
|
71
|
-
%s:
|
72
|
-
%s:
|
71
|
+
%s: пасиба :)
|
72
|
+
%s: а мы друзья
|
73
73
|
quit:
|
74
|
-
|
75
|
-
|
74
|
+
до свиданья
|
75
|
+
ну я пошел
|
@@ -0,0 +1,75 @@
|
|
1
|
+
okay:
|
2
|
+
好的
|
3
|
+
好阿 :)
|
4
|
+
好!
|
5
|
+
好
|
6
|
+
好了
|
7
|
+
沒問題!
|
8
|
+
好吧
|
9
|
+
當然
|
10
|
+
嗯
|
11
|
+
我來幫你搞定
|
12
|
+
dunno:
|
13
|
+
不知道
|
14
|
+
咬我阿
|
15
|
+
想不到
|
16
|
+
沒有頭緒
|
17
|
+
...嗯?
|
18
|
+
*聳肩*
|
19
|
+
別問我
|
20
|
+
天曉得?
|
21
|
+
我不行啦
|
22
|
+
你最好自己搞定!
|
23
|
+
dunno_about_X:
|
24
|
+
我完全不懂 %s
|
25
|
+
我從沒聽過 %s :(
|
26
|
+
%s? 那又如何?
|
27
|
+
什麼是 %s?
|
28
|
+
insult:
|
29
|
+
%s: 討厭鬼!
|
30
|
+
%s: :(
|
31
|
+
%s: 我討厭你 :(
|
32
|
+
%s: 去死吧!
|
33
|
+
%s: 我生氣了!
|
34
|
+
%s: 你傷了我的心
|
35
|
+
hello:
|
36
|
+
hello :)
|
37
|
+
hola :)
|
38
|
+
你好
|
39
|
+
嗨!
|
40
|
+
嗯
|
41
|
+
嗨
|
42
|
+
唷
|
43
|
+
啥事?
|
44
|
+
hello_X:
|
45
|
+
hello %s :)
|
46
|
+
%s: 我在
|
47
|
+
%s: hola :)
|
48
|
+
%s: 你好
|
49
|
+
嗨 %s :)
|
50
|
+
%s: 嗯
|
51
|
+
%s: 嗨!
|
52
|
+
唷 %s!
|
53
|
+
%s: 啥事?
|
54
|
+
啥阿 %s?
|
55
|
+
welcome:
|
56
|
+
沒問題
|
57
|
+
你客氣了
|
58
|
+
de nada
|
59
|
+
any time
|
60
|
+
np :)
|
61
|
+
thanks:
|
62
|
+
謝謝 :)
|
63
|
+
schweet!
|
64
|
+
謝 :)
|
65
|
+
=D
|
66
|
+
cheers!
|
67
|
+
thanks_X:
|
68
|
+
%s: 謝謝 :)
|
69
|
+
%s: schweet!
|
70
|
+
%s: =D
|
71
|
+
%s: 謝 :)
|
72
|
+
%s: cheers
|
73
|
+
quit:
|
74
|
+
好吧,掰
|
75
|
+
再見
|
@@ -0,0 +1,192 @@
|
|
1
|
+
#-- vim:sw=2:et
|
2
|
+
#++
|
3
|
+
#
|
4
|
+
# :title: Alias plugin for rbot
|
5
|
+
#
|
6
|
+
# Author:: Yaohan Chen <yaohan.chen@gmail.com>
|
7
|
+
# Copyright:: (C) 2007 Yaohan Chen
|
8
|
+
# License:: GPLv2
|
9
|
+
#
|
10
|
+
# This plugin allows defining aliases for rbot commands. Aliases are like normal rbot
|
11
|
+
# commands and can take parameters. When called, they will be substituted into an
|
12
|
+
# exisitng rbot command and that is run.
|
13
|
+
#
|
14
|
+
# == Example Session
|
15
|
+
# < alias googlerbot *terms => google site:ruby-rbot.org <terms>
|
16
|
+
# > okay
|
17
|
+
# < googlerbot plugins
|
18
|
+
# > Results for site:ruby-rbot.org plugins: ....
|
19
|
+
#
|
20
|
+
# == Security
|
21
|
+
# By default, only the owner can define and remove aliases, while everyone else can
|
22
|
+
# use and view them. When a command is executed with an alias, it's mapped normally with
|
23
|
+
# the alias user appearing to attempt to execute the command. Therefore it should be not
|
24
|
+
# possible to use aliases to circumvent permission sets. Care should be taken when
|
25
|
+
# defining aliases, due to these concerns:
|
26
|
+
# * Defined aliases can potentially override other plugins' maps, if this plugin is
|
27
|
+
# loaded first
|
28
|
+
# * Aliases can cause infinite recursion of aliases and/or commands. The plugin attempts
|
29
|
+
# to detect and stop this, but a few recursive calls can still cause spamming
|
30
|
+
|
31
|
+
require 'yaml'
|
32
|
+
require 'set'
|
33
|
+
|
34
|
+
class AliasPlugin < Plugin
|
35
|
+
# an exception raised when loading or getting input of invalid alias definitions
|
36
|
+
class AliasDefinitionError < ArgumentError
|
37
|
+
end
|
38
|
+
|
39
|
+
def initialize
|
40
|
+
super
|
41
|
+
@data_path = "#{@bot.botclass}/alias/"
|
42
|
+
@data_file = "#{@data_path}/aliases.yaml"
|
43
|
+
# hash of alias => command entries
|
44
|
+
data = nil
|
45
|
+
aliases = if File.exist?(@data_file) &&
|
46
|
+
(data = YAML.load_file(@data_file)) &&
|
47
|
+
data.respond_to?(:each_pair)
|
48
|
+
data
|
49
|
+
else
|
50
|
+
warning _("Data file is not found or corrupt, reinitializing data")
|
51
|
+
Hash.new
|
52
|
+
end
|
53
|
+
@aliases = Hash.new
|
54
|
+
aliases.each_pair do |a, c|
|
55
|
+
begin
|
56
|
+
add_alias(a, c)
|
57
|
+
rescue AliasDefinitionError
|
58
|
+
warning _("Invalid alias entry %{alias} : %{command} in %{filename}: %{reason}") %
|
59
|
+
{:alias => a, :command => c, :filename => @data_file, :reason => $1}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def save
|
65
|
+
FileUtils.mkdir_p(@data_path)
|
66
|
+
Utils.safe_save(@data_file) {|f| f.write @aliases.to_yaml}
|
67
|
+
end
|
68
|
+
|
69
|
+
def cmd_add(m, params)
|
70
|
+
begin
|
71
|
+
add_alias(params[:text].to_s, params[:command].to_s)
|
72
|
+
m.okay
|
73
|
+
rescue AliasDefinitionError
|
74
|
+
m.reply _('The definition you provided is invalid: %{reason}') % {:reason => $!}
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def cmd_remove(m, params)
|
79
|
+
text = params[:text].to_s
|
80
|
+
if @aliases.has_key?(text)
|
81
|
+
@aliases.delete(text)
|
82
|
+
# TODO when rbot supports it, remove the mapping corresponding to the alias
|
83
|
+
m.okay
|
84
|
+
else
|
85
|
+
m.reply _('No such alias is defined')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def cmd_list(m, params)
|
90
|
+
if @aliases.empty?
|
91
|
+
m.reply _('No aliases defined')
|
92
|
+
else
|
93
|
+
m.reply @aliases.map {|a, c| "#{a} => #{c}"}.join(' | ')
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def cmd_whatis(m, params)
|
98
|
+
text = params[:text].to_s
|
99
|
+
if @aliases.has_key?(text)
|
100
|
+
m.reply _('Alias of %{command}') % {:command => @aliases[text]}
|
101
|
+
else
|
102
|
+
m.reply _('No such alias is defined')
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def add_alias(text, command)
|
107
|
+
# each alias is implemented by adding a message map, whose handler creates a message
|
108
|
+
# containing the aliased command
|
109
|
+
|
110
|
+
command.scan(/<(\w+)>/).flatten.to_set ==
|
111
|
+
text.split.grep(/\A[:*](\w+)\Z/) {$1}.to_set or
|
112
|
+
raise AliasDefinitionError.new(_('The arguments in alias must match the substitutions in command, and vice versa'))
|
113
|
+
|
114
|
+
begin
|
115
|
+
map text, :action => :"alias_handle<#{text}>", :auth_path => 'run'
|
116
|
+
rescue
|
117
|
+
raise AliasDefinitionError.new(_('Error mapping %{text} as command: %{error}') %
|
118
|
+
{:text => text, :error => $!})
|
119
|
+
end
|
120
|
+
@aliases[text] = command
|
121
|
+
end
|
122
|
+
|
123
|
+
def respond_to?(name, include_private=false)
|
124
|
+
name.to_s =~ /\Aalias_handle<.+>\Z/ || super
|
125
|
+
end
|
126
|
+
|
127
|
+
def method_missing(name, *args, &block)
|
128
|
+
if name.to_s =~ /\Aalias_handle<(.+)>\Z/
|
129
|
+
text = $1
|
130
|
+
m, params = args
|
131
|
+
|
132
|
+
command = @aliases[text]
|
133
|
+
if command
|
134
|
+
begin
|
135
|
+
# create a fake message containing the intended command
|
136
|
+
@bot.plugins.privmsg fake_message(command.gsub(/<(\w+)>/) {|arg| params[:"#{$1}"].to_s}, :from => m, :delegate => false)
|
137
|
+
rescue RecurseTooDeep
|
138
|
+
m.reply _('The alias seems to have caused infinite recursion. Please examine your alias definitions')
|
139
|
+
return
|
140
|
+
end
|
141
|
+
else
|
142
|
+
m.reply(_("Error handling the alias, The alias %{text} is not defined or has beeen removed. I will stop responding to it after rescan,") %
|
143
|
+
{:text => text})
|
144
|
+
end
|
145
|
+
else
|
146
|
+
super(name, *args, &block)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def help(plugin, topic='')
|
151
|
+
case topic
|
152
|
+
when ''
|
153
|
+
if plugin == 'alias' # FIXME find out plugin name programmatically
|
154
|
+
_('Create and use aliases for commands. Topics: create, commands')
|
155
|
+
else
|
156
|
+
# show definition of all aliases whose first word is the parameter of the help
|
157
|
+
# command
|
158
|
+
@aliases.keys.select {|a| a[/\A(\w+)/, 1] == plugin}.map do |a|
|
159
|
+
"#{a} => #{@aliases[a]}"
|
160
|
+
end.join ' | '
|
161
|
+
end
|
162
|
+
when 'create'
|
163
|
+
_('"alias <text> => <command>" => add text as an alias of command. Text can contain placeholders marked with : or * for :words and *multiword arguments. The command can contain placeholders enclosed with < > which will be substituded with argument values. For example: alias googlerbot *terms => google site:ruby-rbot.org <terms>')
|
164
|
+
when 'commands'
|
165
|
+
_('alias list => list defined aliases | alias whatis <alias> => show definition of the alias | alias remove <alias> => remove defined alias | see the "create" topic about adding aliases')
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
plugin = AliasPlugin.new
|
171
|
+
plugin.default_auth('edit', false)
|
172
|
+
plugin.default_auth('run', true)
|
173
|
+
plugin.default_auth('list', true)
|
174
|
+
|
175
|
+
plugin.map 'alias list',
|
176
|
+
:action => :cmd_list,
|
177
|
+
:auth_path => 'view'
|
178
|
+
plugin.map 'alias whatis *text',
|
179
|
+
:action => :cmd_whatis,
|
180
|
+
:auth_path => 'view'
|
181
|
+
plugin.map 'alias remove *text',
|
182
|
+
:action => :cmd_remove,
|
183
|
+
:auth_path => 'edit'
|
184
|
+
plugin.map 'alias rm *text',
|
185
|
+
:action => :cmd_remove,
|
186
|
+
:auth_path => 'edit'
|
187
|
+
plugin.map 'alias *text => *command',
|
188
|
+
:action => :cmd_add,
|
189
|
+
:auth_path => 'edit'
|
190
|
+
|
191
|
+
|
192
|
+
|