summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2008-06-24message handling: improve IRC format handling for received messagesGiuseppe Bilotta
Rather than stripping colors all around and keeping other format codes, we only strip initial and final formatting before parsing the message. We store the original, unstripped message in #logmessage() and a fully stripped copy of the message in #plainmessage() This means that most plugins will now have full formatting of arguments preserved, while stupid IRC usage of formatting whole lines will not interfere with bot usage. Plugins that need a fully stripped version of the message can still access it.
2008-06-24ircsocket.rb: use syswrite since ruby's buffered io is racyGiuseppe Bilotta
In some situations a PRIVMSG could be output twice in sequence with no intervening newline when using the Socket#puts function. Use syswrite to skip Ruby's buffered IO.
2008-06-24fake_message duplicates m.reply and m.in_thread from the :from messageYaohan Chen
this makes it possible to create a fake message, override its reply method in order to get its "return value", even if the fake message will be handled by creating another fake message.
2008-06-24fake messages will use the originating message's reply methodYaohan Chen
this allows shell plugin to capture replies of a command even if this command is run because of a fake message
2008-06-24ircbot.rb: copy missing template files on startupGiuseppe Bilotta
2008-06-24config.rb: system wide overrides in /etc/rbot.confGiuseppe Bilotta
2008-06-23Set GetText.cached = false so that mo files are reloaded when setting localeYaohan Chen
2008-06-23rfc2812.rb: skip unknown channel modes altogetherGiuseppe Bilotta
Some servers set non-advertized channel modes. Since we cannot handle them (as we don't know what type they are) and setting them crashes the bot, we remove them.
2008-06-23+ strip all colours and formatting when sending to a +c or +C channelGiuseppe Bilotta
2008-06-23#any? and #all? methods for Channel#mode to check if modes are setGiuseppe Bilotta
2008-06-23extends: define Array#shuffle(\!) only if not present already, and use ↵Giuseppe Bilotta
simpler definitions
2008-06-23rfc2812.rb: warn about unhandled numeric replies tooGiuseppe Bilotta
2008-06-23ircbot.rb: ask about current channel modes on joinGiuseppe Bilotta
2008-06-23rfc2812.rb: refactor MODE parsing to use it for RPL_CHANNELMODEIS (324) tooGiuseppe Bilotta
2008-06-20dbhash: dohGiuseppe Bilotta
2008-06-20dbhash.rb: slightly rework errors for failing to load bdbGiuseppe Bilotta
2008-06-20ircbot.rb: ensure that the logger is flushedGiuseppe Bilotta
If the bot fails to load (e.g. because of missing dependency) the user might miss the last error messages because the logger thread wouldn't reach completion. Ensure its closure in an END block.
2008-06-19rbotconfig: be aware that -git versions also have revision informationGiuseppe Bilotta
2008-06-18rfc2812: be compatible with ruby < 1.8.7Giuseppe Bilotta
String#each_char is only available in ruby 1.8.7, so use each_byte followed by .chr
2008-06-18rfc2812: fix MODE line parsingGiuseppe Bilotta
2008-06-18+ core/irclog: dedicated loggers threaddmitry kim
2008-06-18* ircbot: fix quiet/reset_quiet wrt missing argsdmitry kim
2008-06-17+ print the location of the debug log to stdout on startdmitry kim
2008-06-17* load-gettext: warn() -> warning()dmitry kim
2008-06-17* plugins.rb: avoid uninitialized warning on @prioritydmitry kim
2008-06-16irclog: log own CTCP message with correct syntaxGiuseppe Bilotta
2008-06-07recommit 33c336af346dc08b4f4f4951dd6eae7150cef481 po file per pluginYaohan Chen
each plugin uses its own po file, no change required for plugin source, Rakefile, plugin loader and gettext loader are modified to adjust to the change
2008-06-06Revert "each plugin uses its own po file"Yaohan Chen
This reverts commit 33c336af346dc08b4f4f4951dd6eae7150cef481.
2008-06-05each plugin uses its own po fileYaohan Chen
no modification in plugin source is needed, plugin loader is modified to automatically bind to the plugin's text domain updatepo task is modified to maintain per-plugin po file po files are updated and cleaned
2008-05-28changed m.thread to m.in_thread, with different semanticsYaohan Chen
m.in_thread indicates that the caller of delegate is in thread (and is handled by not creating another thread for m's mapped action)
2008-05-27use m.thread.nil? rather than longer m.thread == nilYaohan Chen
2008-05-27add attribute BasicUserMessage#threadYaohan Chen
this specifies whether the message handler is to be threaded, and overrides the map option if non-nil.
2008-05-23* autoflush $stdout in setup wizarddmitry kim
2008-05-20Fix m.reply() regexp check for nick presence, which failed for nicks such as ↵Giuseppe Bilotta
unfo- or jsn-
2008-05-04fixed typo in help authMoritz 'moemoe' Augsburger
2008-05-01* unicode.rb: @old_kcode --> @@old_kcode [we aren't always called as an ↵dmitry kim
instance]
2008-05-01messagemapper: Regexp#mm_cleanup method instead of repeated (and wrong) ↵Giuseppe Bilotta
progressive cleanup
2008-05-01messagemapper.rb: keep options when removing captures in regexpsGiuseppe Bilotta
2008-05-01rfc2812.rb: handle mode changes like -o+bGiuseppe Bilotta
2008-04-24config core botmodule: only show possible keys summary when more than one ↵Giuseppe Bilotta
key was found
2008-04-24config core botmodule: bolden keys on searchGiuseppe Bilotta
2008-04-23core: refactor signal trapping, and call it from initialize()Giuseppe Bilotta
2008-04-23core: restart on SIGHUPGiuseppe Bilotta
2008-04-22Licensing uniformity: dual-license rbot core under MIT+acknowledgement and GPLv2Giuseppe Bilotta
2008-04-19core/irclog: black and whitelistsGiuseppe Bilotta
2008-04-19core/irclog: config option for max open filesGiuseppe Bilotta
2008-04-18* make the daemonization thing to suck less (wrt standard io channels)dmitry kim
2008-04-16gettext: support anonymous modules (and thus plugins) with newer gettextGiuseppe Bilotta
While older ruby-gettext raised when trying to bind for anonymous modules (such as the ones that wrap rbot plugins), newer versions just provide an empty array. This makes the previous fix (which used rescue) ineffective. Solve by rescuing with [] (so that older gettext behaves like the new one) and then adding Object if the list is indeed empty.
2008-04-16+ ircbot logging: log_session_end on restarts, toodmitry kim
2008-04-16* ircbot logging: fixed the logger thread wrt daemonizingdmitry kim