summaryrefslogtreecommitdiff
path: root/lib/rbot/ircbot.rb
AgeCommit message (Collapse)Author
2008-12-12ircsocket: tunable IRC penaltyGiuseppe Bilotta
2008-09-24ircbot.rb: fill was_on info when delegating sent QUITGiuseppe Bilotta
2008-09-05quiet exception listGiuseppe Bilotta
Keep a track of exceptions to a global 'quiet' command so that user can use !quiet and !talk in here to make the bot only talk in one channel without quiet-ing it by hand in each one of the other channels.
2008-08-19IRC socket: get rid of delay/burstGiuseppe Bilotta
The penalty system should be enough to prevent the bot from being disconnected because of excess flood, making the old sendq delay/burst code unnecessary. So get rid of the latter altogether. (If the penalty system as implemented ever happens to be insufficient as implemented, it should just get fixed rather than rely on the sendq delay/burst assistance.)
2008-08-10+ handle WHOIS queriesGiuseppe Bilotta
The bot now exposes a whois(nick) method to make WHOIS queries to the server. The extended syntax whois(nick, server) is also supported, allowing another server to be queried (this is useful to retrieve info which is only available on nick's server, such as idle time and signon date). Most if not all RFC-compliant replies are handled, although some of the data received is currently ignored. Non-RFC extended replies such as nickserv identification status are not hanlded yet, since they are highly server-specific, both in numeric reply choice (e.g. 307 vs 320) and in reply message syntax and meaning. A new WhoisMessage is also introduced, for plugin delegation. The source is the originating server, the target is the user for which information was requested. A #whois() method is provided holding all retrieved information.
2008-08-06basics: option to join channel after identification is confirmedGiuseppe Bilotta
Sometimes it is necessary to wait for identification to be confirmed before certain channels may be joined. In this case the option irc.join_after_identify can be set to true, and the bot will wait for nickserv to confirm the identification before joining any channels. This solution is actually a rather ugly hack, but I can't think of a better way to approach the problem without rewriting the whole framework.
2008-07-30+ @bot.wanted_nick stores the nick wanted by the botGiuseppe Bilotta
2008-07-30ircbot.rb: server no-color modes can be configuredGiuseppe Bilotta
2008-06-29* fix handling of IDENTIFY_MSGGiuseppe Bilotta
When a server has IDENTIFY-MSG, we would expect identification in any PRIVMSG or NOTICE, even on those generated from the bot. This caused lots of spurious warnings, and would lead to mislogging when a bot-generated message started with + or -. Fix this by only handling IDENTIFY-MSG on server-generated messages.
2008-06-28ircbot.rb: @bot.topic() can also be used to retrieve topic information ↵Giuseppe Bilotta
instead of setting it
2008-06-26ircbot.rb: make #mode()'s third argument optionalGiuseppe Bilotta
2008-06-24ircbot.rb: create the appropriate directories when updating botclass dir ↵Giuseppe Bilotta
from template
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-24ircbot.rb: copy missing template files on startupGiuseppe Bilotta
2008-06-23+ strip all colours and formatting when sending to a +c or +C channelGiuseppe Bilotta
2008-06-23ircbot.rb: ask about current channel modes on joinGiuseppe 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-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-04-23core: refactor signal trapping, and call it from initialize()Giuseppe Bilotta
2008-04-23core: restart on SIGHUPGiuseppe Bilotta
2008-04-18* make the daemonization thing to suck less (wrt standard io channels)dmitry kim
2008-04-16+ ircbot logging: log_session_end on restarts, toodmitry kim
2008-04-16* ircbot logging: fixed the logger thread wrt daemonizingdmitry kim
2008-04-15+ ircbot logging: atomic multiline log recordsdmitry kim
2008-04-15* ircbot logging: $log_queue / logger threaddmitry kim
2008-04-15debug logging: don't raise on SecurityErrorGiuseppe Bilotta
Some scripts (from the scripts plugin) can trigger the logging functions (debug, warning, info etc) in a $SAFE context: this causes the logger to fail. Catch SecurityError in raw_log() to prevent these valid scripts from failing.
2008-04-15ircbot.rb: fix some IRC log refactoring issuesGiuseppe Bilotta
2008-04-15IRC logging refactoringGiuseppe Bilotta
2008-04-13+ UnknownMessage classGiuseppe Bilotta
2008-04-13+ NamesMessage classGiuseppe Bilotta
2008-04-13rfc2812: parse User mode changes, even though they aren't handled yetGiuseppe Bilotta
2008-04-13+ ModeChangeMessage classGiuseppe Bilotta
2008-04-13+ MotdMessage classGiuseppe Bilotta
2008-04-12+ delegate notice() for NoticeMessageGiuseppe Bilotta
2008-04-12+ WelcomeMessage classGiuseppe Bilotta
2008-04-07message: new 'ignored' propertyGiuseppe Bilotta
2008-04-07plugins: irc_delegate to do listen+actual delegateGiuseppe Bilotta
2008-04-07plugins: message() delegateGiuseppe Bilotta
2008-03-27* handle invites properly -- forgot more than half the files :/Giuseppe Bilotta
2008-03-25ircbot: remove obsolete commented includesGiuseppe Bilotta
2008-03-11ircbot: don't die on SocketError during disconnectGiuseppe Bilotta
2008-02-14* replace references to old website to references to new siteGiuseppe Bilotta
2007-11-06Improved inspect methods all aroundGiuseppe Bilotta
2007-09-24message.rb: logmessage method to retrieve the message for logging purposesGiuseppe Bilotta
When logging messages, it is appropriate to remove color and identification prefixes (in networks that support it), but not the address prefix. Solve this by saving a copy of the message without the address prefix(es) removed, and use it in irclog*() methods.
2007-09-19core: only WHO on join if it's the bot itself joining a channelGiuseppe Bilotta
2007-09-13more rdoc-ificationGiuseppe Bilotta
2007-09-13namespaces: simplify Irc::Bot::Auth manager singleton name and accessorGiuseppe Bilotta
2007-09-12namespaces: provide backwards compatibility methods for BotConfig.register ↵Giuseppe Bilotta
and related classes
2007-09-12namespaces: move rbot-specific classes and modules from Irc::* to Irc::Bot::*Giuseppe Bilotta