From: Giuseppe Bilotta Date: Sat, 9 Aug 2008 21:26:03 +0000 (+0200) Subject: + support channel URL and creation time X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=2f2644f03203b36fd6aa105e62f4cd15070e1cbe;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git + support channel URL and creation time --- diff --git a/lib/rbot/irc.rb b/lib/rbot/irc.rb index 1e1c56b0..23bd9e0d 100644 --- a/lib/rbot/irc.rb +++ b/lib/rbot/irc.rb @@ -1299,12 +1299,15 @@ module Irc include ServerOrCasemap attr_reader :name, :topic, :mode, :users alias :to_s :name + attr_accessor :creation_time, :url def inspect str = self.__to_s__[0..-2] str << " on server #{server}" if server str << " @name=#{@name.inspect} @topic=#{@topic.text.inspect}" str << " @users=[#{user_nicks.sort.join(', ')}]" + str << " (created on #{creation_time})" if creation_time + str << " (URL #{url})" if url str << ">" end @@ -1368,6 +1371,12 @@ module Irc # Flags @mode = ModeHash.new + + # creation time, only on some networks + @creation_time = nil + + # URL, only on some networks + @url = nil end # Removes a user from the channel diff --git a/lib/rbot/rfc2812.rb b/lib/rbot/rfc2812.rb index 378036de..ac448883 100644 --- a/lib/rbot/rfc2812.rb +++ b/lib/rbot/rfc2812.rb @@ -144,6 +144,12 @@ module Irc # " " RPL_CHANNELMODEIS=324 + # " " + RPL_CREATIONTIME=329 + + # " " + RPL_CHANNEL_URL=328 + # " :No topic is set" RPL_NOTOPIC=331 @@ -1279,6 +1285,16 @@ module Irc when RPL_CHANNELMODEIS parse_mode(serverstring, argv[1..-1], data) handle(:mode, data) + when RPL_CREATIONTIME + data[:channel] = argv[1] + data[:time] = Time.at(argv[2].to_i) + @server.get_channel(data[:channel]).creation_time=data[:time] + handle(:creationtime, data) + when RPL_CHANNEL_URL + data[:channel] = argv[1] + data[:url] = argv[2] + @server.get_channel(data[:channel]).url=data[:url].dup + handle(:channel_url, data) else warning "Unknown message #{serverstring.inspect}" handle(:unknown, data)