summaryrefslogtreecommitdiff
path: root/contrib
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 /contrib
parent51cf09ec02d089bfdd80e5f728cfc92a234dc437 (diff)
rearrange repo for packaging
Diffstat (limited to 'contrib')
-rw-r--r--contrib/plugins/figlet.rb20
-rw-r--r--contrib/plugins/ri.rb83
-rw-r--r--contrib/plugins/stats.rb232
-rw-r--r--contrib/plugins/vandale.rb49
4 files changed, 0 insertions, 384 deletions
diff --git a/contrib/plugins/figlet.rb b/contrib/plugins/figlet.rb
deleted file mode 100644
index ce17fe71..00000000
--- a/contrib/plugins/figlet.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-class FigletPlugin < Plugin
- def help(plugin, topic="")
- "figlet [<message>] => print using figlet"
- end
- def privmsg(m)
- case m.params
- when nil
- m.reply "incorrect usage: " + help(m.plugin)
- return
- when (/^-/)
- m.reply "incorrect usage: " + help(m.plugin)
- return
- else
- m.reply Utils.safe_exec("/usr/bin/figlet", "-k", "-f", "mini", m.params)
- return
- end
- end
-end
-plugin = FigletPlugin.new
-plugin.register("figlet")
diff --git a/contrib/plugins/ri.rb b/contrib/plugins/ri.rb
deleted file mode 100644
index 99292f1c..00000000
--- a/contrib/plugins/ri.rb
+++ /dev/null
@@ -1,83 +0,0 @@
-# Author: Michael Brailsford <brailsmt@yahoo.com>
-# aka brailsmt
-# Purpose: To respond to requests for information from the ri command line
-# utility.
-
-class RiPlugin < Plugin
-
- @@handlers = {
- "ri" => "ri_handler",
- "msgri" => "msgri_handler"
- }
-
- #{{{
- def initialize
- super
- @cache = Hash.new
- end
- #}}}
- #{{{
- def privmsg(m)
- if not m.params
- m.reply "uhmm... whatever"
- return
- end
-
- meth = self.method(@@handlers[m.plugin])
- meth.call(m)
- end
- #}}}
- #{{{
- def cleanup
- @cache = nil
- end
- #}}}
- #{{{
- def ri_handler(m)
- response = ""
- if @cache[m.params]
- response = @cache[m.params]
- else
- IO.popen("-") {|p|
- if(p)
- response = p.readlines.join "\n"
- @cache[m.params] = response
- else
- $stderr = $stdout
- exec("ri", m.params)
- end
- }
- @cache[m.params] = response
- end
-
- @bot.say m.sourcenick, response
- m.reply "Finished \"ri #{m.params}\""
- end
- #}}}
- #{{{
- def msgri_handler(m)
- response = ""
- tell_nick, query = m.params.split()
- if @cache[query]
- response = @cache[query]
- else
- IO.popen("-") {|p|
- if(p)
- response = p.readlines.join "\n"
- @cache[m.params] = response
- else
- $stderr = $stdout
- exec("ri", query)
- end
- }
- @cache[query] = response
- end
-
- @bot.say tell_nick, response
- m.reply "Finished telling #{tell_nick} about \"ri #{query}\""
- end
- #}}}
-end
-plugin = RiPlugin.new
-plugin.register("ri")
-plugin.register("msgri")
diff --git a/contrib/plugins/stats.rb b/contrib/plugins/stats.rb
deleted file mode 100644
index 4cafbbe9..00000000
--- a/contrib/plugins/stats.rb
+++ /dev/null
@@ -1,232 +0,0 @@
-# Author: Michael Brailsford <brailsmt@yahoo.com>
-# aka brailsmt
-# Purpose: Provides the ability to track various tokens that are spoken in a
-# channel.
-# Copyright: 2002 Michael Brailsford. All rights reserved.
-# License: This plugin is licensed under the BSD license. The terms of
-# which follow.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-
-class StatsPlugin < Plugin
-
- @@commands = {
- "stats" => "handle_stats",
- "track" => "handle_track",
- "untrack" => "handle_untrack",
- "listtokens" => "handle_listtokens",
- "rmabuser" => "handle_rmabuser"
- }
-
- #{{{
- def initialize
- super
- @listen = true
- @channels = Hash.new
- #check to see if a stats token file already exists for this channel...
- Dir["#{@bot.botclass}/stats/*"].each { |fname|
- channel = File.basename fname
- tokens = Hash.new
- IO.foreach(fname) { |line|
- if line =~ /^(\S+)\s*<=>(.*)/
- tokens[$1] = parse_token_stats $2
- end
- }
- @channels[channel] = tokens
- }
- end
- #}}}
- #{{{
- def cleanup
- @channels = nil
- end
- #}}}
- #{{{
- def help(plugin, topic="")
- "Stats: The stats plugin tracks various tokens from users in the channel. The tokens are only tracked if it is the only thing on a line.\nUsage: stats <token> -- lists the stats for <token>\n [un]track <token> -- Adds or deletes <token> from the list of tokens\n listtokens -- lists the tokens that are currently being tracked"
- end
- #}}}
- #{{{
- def privmsg(m)
- if not m.params and not m.plugin =~ /listtokens/
- m.reply "What a crazy fool! Did you mean |help stats?"
- return
- end
-
- meth = self.method(@@commands[m.plugin])
- meth.call(m)
- end
- #}}}
- #{{{
- def save
- Dir.mkdir("#{@bot.botclass}/stats") if not FileTest.directory?("#{@bot.botclass}/stats")
- #save the tokens to a file...
- @channels.each_pair { |channel, tokens|
- if not tokens.empty?
- File.open("#{@bot.botclass}/stats/#{channel}", "w") { |f|
- tokens.each { |token, datahash|
- f.puts "#{token} <=> #{datahash_to_s(datahash)}"
- }
- }
- else
- File.delete "#{@bot.botclass}/stats/#{channel}"
- end
- }
- end
- #}}}
- #{{{
- def listen(m)
- if not m.private?
- tokens = @channels[m.target]
- if not @@commands[m.plugin]
- tokens.each_pair { |key, hsh|
- if not m.message.scan(/#{Regexp.escape(key)}/).empty?
- if hsh[m.sourcenick]
- hsh[m.sourcenick] += 1
- else
- hsh[m.sourcenick] = 1
- end
- end
- }
- end
- end
-#This is the old code {{{
-# if not m.private?
-# tokens = @channels[m.target]
-# hsh = tokens[m.message]
-# if hsh
-# if hsh[m.sourcenick]
-# hsh[m.sourcenick] += 1
-# else
-# hsh[m.sourcenick] = 1
-# end
-# end
-# end }}}
- end
- #}}}
- #The following are helper functions for the plugin {{{
- def datahash_to_s(dhash)
- rv = ""
- dhash.each { |key, val|
- rv << "#{key}:#{val} "
- }
- rv.chomp
- end
-
- def parse_token_stats(stats)
- rv = Hash.new
- stats.split(" ").each { |nickstat|
- nick, stat = nickstat.split ":"
- rv[nick] = stat.to_i
- }
- rv
- end
- #}}}
- #The following are handler methods for dealing with each command from IRC {{{
- #{{{
- def handle_stats(m)
- if not m.private?
- total = 0
- tokens = @channels[m.target]
- hsh = tokens[m.params]
- msg1 = ""
- if not hsh.empty?
- sorted = hsh.sort { |i, j| j[1] <=> i[1] }
- sorted.each { |a|
- total += a[1]
- }
-
- msg = "Stats for #{m.params}. Said #{total} times. The top sayers are "
- if sorted[0..2]
- msg << "#{sorted[0].join ':'}" if sorted[0]
- msg << ", #{sorted[1].join ':'}" if sorted[1]
- msg << ", and #{sorted[2].join ':'}" if sorted[2]
- msg << "."
-
- msg1 << "#{m.sourcenick} has said it "
- if hsh[m.sourcenick]
- msg1 << "#{hsh[m.sourcenick]} times."
- else
- msg1 << "0 times."
- end
- else
- msg << "#{m.params} has not been said yet!"
- end
- @bot.action m.replyto, msg
- @bot.action m.replyto, msg1 if msg1
- else
- m.reply "#{m.params} is not currently being tracked."
- end
- end
- end
- #}}}
- #{{{
- def handle_track(m)
- if not m.private?
- if @channels[m.target]
- tokens = @channels[m.target]
- else
- tokens = Hash.new
- @channels[m.target] = tokens
- end
- tokens[m.params] = Hash.new
- m.reply "now tracking #{m.params}"
- end
- end
- #}}}
- #{{{
- def handle_untrack(m)
- if not m.private?
- toks = @channels[m.target]
- if toks.has_key? m.params
- toks.delete m.params
- m.reply "no longer tracking #{m.params}"
- else
- m.reply "Are your signals crossed? Since when have I tracked that?"
- end
- end
-
- toks = nil
- end
- #}}}
- #{{{
- def handle_listtokens(m)
- if not m.private? and not @channels.empty?
- tokens = @channels[m.target]
- unless tokens.empty?
- toks = ""
- tokens.each_key { |k|
- toks << "#{k} "
- }
- @bot.action m.replyto, "is currently keeping stats for: #{toks}"
- else
- @bot.action m.replyto, "is not currently keeping stats for anything"
- end
- elsif not m.private?
- @bot.action m.replyto, "is not currently keeping stats for anything"
- end
- end
- #}}}
- #{{{
- def handle_rmabuser(m)
- m.reply "This feature has not yet been implemented"
- end
- #}}}
- #}}}
-
-end
-plugin = StatsPlugin.new
-plugin.register("stats")
-plugin.register("track")
-plugin.register("untrack")
-plugin.register("listtokens")
-#plugin.register("rmabuser")
diff --git a/contrib/plugins/vandale.rb b/contrib/plugins/vandale.rb
deleted file mode 100644
index 7b806c85..00000000
--- a/contrib/plugins/vandale.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-#----------------------------------------------------------------#
-# Filename: vandale.rb
-# Description: Rbot plugin. Looks up a word in the Dutch VanDale
-# dictionary
-# Author: eWoud - ewoud.nuyts<AT>student.kuleuven.ac.be
-# requires GnuVD www.djcbsoftware.nl/projecten/gnuvd/
-#----------------------------------------------------------------#
-
-class VanDalePlugin < Plugin
- def help(plugin, topic="")
- "vandale [<word>] => Look up in the VanDale dictionary"
- end
- def privmsg(m)
- case m.params
- when (/^([\w-]+)$/)
- ret = Array.new
- Utils.safe_exec("/usr/local/bin/gnuvd", m.params).each{|line| if line.length > 5 then ret << line end}
- m.reply ret.delete_at(0)
- while ret[0] =~ /^[[:alpha:]_]*[0-9]/
- m.reply ret.delete_at(0)
- end
- while ret[0] =~ /^[0-9]/
- m.reply ret.delete_at(0)
- end
- i = 0
- while i < ret.length
- ret[i] = ret[i].slice(/^[[:graph:]_]*/)
- if ret[i].length == 0 or ret[i] =~ /^[0-9]/
- then
- ret.delete_at(i)
- else
- i = i+1
- end
- end
- if ret.length != 0 then
- m.reply "zie ook " + ret.join(", ")
- end
- return
- when nil
- m.reply "incorrect usage: " + help(m.plugin)
- return
- else
- m.reply "incorrect usage: " + help(m.plugin)
- return
- end
- end
-end
-plugin = VanDalePlugin.new
-plugin.register("vandale")