From: Giuseppe Bilotta Date: Wed, 29 Aug 2007 19:48:18 +0000 (+0000) Subject: Color codes and Irc.color(fg, bg) methods to ease color display X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=17d1d6ec370313dbf0e49681241049e8c6fe0717;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git Color codes and Irc.color(fg, bg) methods to ease color display --- diff --git a/lib/rbot/core/utils/extends.rb b/lib/rbot/core/utils/extends.rb index e0c781b1..31a348a9 100644 --- a/lib/rbot/core/utils/extends.rb +++ b/lib/rbot/core/utils/extends.rb @@ -227,6 +227,79 @@ end module ::Irc + # Define standard IRC attriubtes (not so standard actually, + # but the closest thing we have ...) + Bold = "\002" + Underline = "\037" + Reverse = "\026" + Italic = "\011" + NormalText = "\017" + + # Color is prefixed by \003 and followed by optional + # foreground and background specifications, two-digits-max + # numbers separated by a comma. One of the two parts + # must be present. + Color = "\003" + ColorRx = /#{Color}\d?\d?(?:,\d\d?)?/ + + # Standard color codes + ColorCode = { + :black => 1, + :blue => 2, + :navyblue => 2, + :navy_blue => 2, + :green => 3, + :red => 4, + :brown => 5, + :purple => 6, + :olive => 7, + :yellow => 8, + :limegreen => 9, + :lime_green => 9, + :teal => 10, + :aqualight => 11, + :aqua_light => 11, + :royal_blue => 12, + :hotpink => 13, + :hot_pink => 13, + :darkgray => 14, + :dark_gray => 14, + :lightgray => 15, + :light_gray => 15, + :white => 16 + } + + # Convert a String or Symbol into a color number + def Irc.find_color(data) + if Integer === data + data + else + f = if String === data + data.intern + else + data + end + if ColorCode.key?(f) + ColorCode[f] + else + 0 + end + end + end + + # Insert the full color code for a given + # foreground/background combination. + def Irc.color(fg=nil,bg=nil) + str = Color.dup + if fg + str << Irc.find_color(fg).to_s + end + if bg + str << "," << Irc.find_color(bg).to_s + end + return str + end + class BasicUserMessage diff --git a/lib/rbot/message.rb b/lib/rbot/message.rb index 192e02f1..75427a9e 100644 --- a/lib/rbot/message.rb +++ b/lib/rbot/message.rb @@ -14,13 +14,6 @@ module Irc :desc => "when replying with nick put this character after the nick of the user the bot is replying to" ) - Bold = "\002" - Underline = "\037" - Reverse = "\026" - Italic = "\011" - Color = "\003" - ColorRx = /#{Color}\d?\d?(?:,\d\d?)?/ - # base user message class, all user messages derive from this # (a user message is defined as having a source hostmask, a target # nick/channel and a message part)