summaryrefslogtreecommitdiff
path: root/rbot/plugins/url.rb
diff options
context:
space:
mode:
authorTom Gilbert <tom@linuxbrit.co.uk>2005-07-27 15:59:13 +0000
committerTom Gilbert <tom@linuxbrit.co.uk>2005-07-27 15:59:13 +0000
commit21949774b91eaec6ecde4eaa8ad121e2c0a36b87 (patch)
tree41a7601e168018ac203bad7ca8d7f9f82515bc28 /rbot/plugins/url.rb
parent51cf09ec02d089bfdd80e5f728cfc92a234dc437 (diff)
rearrange repo for packaging
Diffstat (limited to 'rbot/plugins/url.rb')
-rw-r--r--rbot/plugins/url.rb98
1 files changed, 0 insertions, 98 deletions
diff --git a/rbot/plugins/url.rb b/rbot/plugins/url.rb
deleted file mode 100644
index ed82d1c1..00000000
--- a/rbot/plugins/url.rb
+++ /dev/null
@@ -1,98 +0,0 @@
-Url = Struct.new("Url", :channel, :nick, :time, :url)
-
-class UrlPlugin < Plugin
- def initialize
- super
- @registry.set_default(Array.new)
- end
- def help(plugin, topic="")
- "urls [<max>=4] => list <max> last urls mentioned in current channel, urls <channel> [<max>=4] => list <max> last urls mentioned in <channel>, urls search <regexp> => search for matching urls, urls search <channel> <regexp>, search for matching urls in channel <channel>"
- end
- def listen(m)
- return unless m.kind_of?(PrivMessage)
- return if m.address?
- # TODO support multiple urls in one line
- if m.message =~ /(f|ht)tps?:\/\//
- if m.message =~ /((f|ht)tps?:\/\/.*?)(?:\s+|$)/
- url = Url.new(m.target, m.sourcenick, Time.new, $1)
- list = @registry[m.target]
- debug "#{list.length} urls so far"
- if list.length > 50
- list.pop
- end
- debug "storing url #{url.url}"
- list.unshift url
- debug "#{list.length} urls now"
- @registry[m.target] = list
- end
- end
- end
- def privmsg(m)
- case m.params
- when nil
- if m.public?
- urls m, m.target
- else
- m.reply "in a private message, you need to specify a channel name for urls"
- end
- when (/^(\d+)$/)
- max = $1.to_i
- if m.public?
- urls m, m.target, max
- else
- m.reply "in a private message, you need to specify a channel name for urls"
- end
- when (/^(#.*?)\s+(\d+)$/)
- channel = $1
- max = $2.to_i
- urls m, channel, max
- when (/^(#.*?)$/)
- channel = $1
- urls m, channel
- when (/^search\s+(#.*?)\s+(.*)$/)
- channel = $1
- string = $2
- search m, channel, string
- when (/^search\s+(.*)$/)
- string = $1
- if m.public?
- search m, m.target, string
- else
- m.reply "in a private message, you need to specify a channel name for urls"
- end
- else
- m.reply "incorrect usage: " + help(m.plugin)
- end
- end
-
- def urls(m, channel, max=4)
- max = 10 if max > 10
- max = 1 if max < 1
- list = @registry[channel]
- if list.empty?
- m.reply "no urls seen yet for channel #{channel}"
- else
- list[0..(max-1)].each do |url|
- m.reply "[#{url.time.strftime('%Y/%m/%d %H:%M:%S')}] <#{url.nick}> #{url.url}"
- end
- end
- end
-
- def search(m, channel, string, max=4)
- max = 10 if max > 10
- max = 1 if max < 1
- regex = Regexp.new(string)
- list = @registry[channel].find_all {|url|
- regex.match(url.url) || regex.match(url.nick)
- }
- if list.empty?
- m.reply "no matches for channel #{channel}"
- else
- list[0..(max-1)].each do |url|
- m.reply "[#{url.time.strftime('%Y/%m/%d %H:%M:%S')}] <#{url.nick}> #{url.url}"
- end
- end
- end
-end
-plugin = UrlPlugin.new
-plugin.register("urls")