diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-01-02 05:06:04 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-01-02 05:06:04 +0100 |
commit | 4b3975fc0a495ea18ae3bcaf0fbf5ee2c924ed8c (patch) | |
tree | 14fdf5784b38489de17f57387d3f4b5780a8f272 /modules/Topic.rb | |
parent | 58649c9843707c5d8b4211d07535fcf51421ebec (diff) | |
download | lain-4b3975fc0a495ea18ae3bcaf0fbf5ee2c924ed8c.tar lain-4b3975fc0a495ea18ae3bcaf0fbf5ee2c924ed8c.zip |
Adjust strings.
Diffstat (limited to 'modules/Topic.rb')
-rw-r--r-- | modules/Topic.rb | 41 |
1 files changed, 26 insertions, 15 deletions
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] <topic>' => 'add a topic to the topic line', - '!topic d[el[ete]] <ID>' => 'remove topic <ID>' + '!topic [s[how]]' => 'show topics (with indices)', + '!topic a[dd] <topic>' => 'add a topic', + '!topic d[el[ete]] <index>' => 'remove topic <index>' } 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 |