From 4b3975fc0a495ea18ae3bcaf0fbf5ee2c924ed8c Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 2 Jan 2013 05:06:04 +0100 Subject: Adjust strings. --- modules/Topic.rb | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) (limited to 'modules/Topic.rb') diff --git a/modules/Topic.rb b/modules/Topic.rb index 14bd9c4..fa2291a 100644 --- a/modules/Topic.rb +++ b/modules/Topic.rb @@ -13,16 +13,16 @@ module Lain show_topic(muc, message) elsif /\A!topic\s+a(?:dd)?\s+(.+)\Z/ =~ message.body add_topic(muc, message, $~[1].strip) - elsif /\A!topic\s+d(?:el(?:ete)?)?\s+(\d+)\Z/ =~ message.body - del_topic(muc, message, $~[1].to_i) + elsif /\A!topic\s+d(?:el(?:ete)?)?\s+([[:xdigit:]]+)\Z/ =~ message.body + del_topic(muc, message, $~[1].to_i(16)) end end def commands { - '!topic [s[how]]' => 'show topics (with IDs)', - '!topic a[dd] ' => 'add a topic to the topic line', - '!topic d[el[ete]] ' => 'remove topic ' + '!topic [s[how]]' => 'show topics (with indices)', + '!topic a[dd] ' => 'add a topic', + '!topic d[el[ete]] ' => 'remove topic ' } end @@ -40,36 +40,47 @@ module Lain end def topic_list(topic) - topic.each_with_index.map { |t, i| "[#{i}] #{t}" }.join("\n") + topic.each_with_index.map { |t, i| "[#{'%02x' % i}] #{t}" }.join("\n") end def show_topic(muc, message) topic = current_topic muc if topic.empty? - muc.send(Jabber::Message.new(muc.room, "No topic set.")) + muc.say "\nTOPIC EMPTY" return end - muc.send(Jabber::Message.new(muc.room, "Current topics:\n" + topic_list(topic))) + muc.say("\nBEGIN TOPIC LIST\n" + topic_list(topic) + "\nEND TOPIC LIST") end def add_topic(muc, message, text) topic = current_topic muc - topic.unshift text - set_topic(muc, topic) + if text.empty? + pre = "\nERROR: No topic given." + else + topic.unshift text + set_topic(muc, topic) + pre = "\nSUCCESS" + end - muc.send(Jabber::Message.new(muc.room, "New topics:\n" + topic_list(topic))) + muc.say(pre + "\n\nBEGIN TOPIC LIST\n" + topic_list(topic) + "\nEND TOPIC LIST") end - def del_topic(muc, message, id) + def del_topic(muc, message, index) topic = current_topic muc begin - topic.delete_at id + deleted = topic.delete_at index rescue + deleted = nil + end + if deleted.nil? + pre = "\nERROR: Invalid index [#{'%02x' % index}]." + else + set_topic(muc, topic) + pre = "\nSUCCESS" end - set_topic(muc, topic) - muc.send(Jabber::Message.new(muc.room, "New topics:\n" + topic_list(topic))) + muc.say(pre + "\n\nBEGIN TOPIC LIST\n" + topic_list(topic) + "\nEND TOPIC LIST") end end end -- cgit v1.2.3