# TODO:: when Ruby 2.0 gets out, fix the FIXME 2.0 UTF-8 workarounds
# Class for storing question/answer pairs
-QuizBundle = Struct.new( "QuizBundle", :question, :answer )
+define_structure :QuizBundle, :question, :answer
# Class for storing player stats
-PlayerStats = Struct.new( "PlayerStats", :score, :jokers, :jokers_time )
+define_structure :PlayerStats, :score, :jokers, :jokers_time
# Why do we still need jokers_time? //Firetech
# Maximum number of jokers a player can gain
# CLASS QuizPlugin
#######################################################################
class QuizPlugin < Plugin
- BotConfig.register BotConfigBooleanValue.new('quiz.dotted_nicks',
+ Config.register Config::BooleanValue.new('quiz.dotted_nicks',
:default => true,
:desc => "When true, nicks in the top X scores will be camouflaged to prevent IRC hilighting")
- BotConfig.register BotConfigArrayValue.new('quiz.sources',
+ Config.register Config::ArrayValue.new('quiz.sources',
:default => ['quiz.rbot'],
:desc => "List of files and URLs that will be used to retrieve quiz questions")
if p =~ /^https?:\/\//
# Wiki data
begin
- serverdata = @bot.httputil.get_cached( URI.parse( p ) ) # "http://amarok.kde.org/amarokwiki/index.php/Rbot_Quiz"
+ serverdata = @bot.httputil.get(p) # "http://amarok.kde.org/amarokwiki/index.php/Rbot_Quiz"
serverdata = serverdata.split( "QUIZ DATA START\n" )[1]
serverdata = serverdata.split( "\nQUIZ DATA END" )[0]
serverdata = serverdata.gsub( / /, " " ).gsub( /&/, "&" ).gsub( /"/, "\"" )
# Reimplemented from Plugin
#
- def listen( m )
- return unless m.kind_of?(PrivMessage)
-
+ def message(m)
chan = m.channel
return unless @quizzes.has_key?( chan )
q = @quizzes[chan]
def cmd_refresh( m, params )
- q = create_quiz ( m.channel )
+ q = create_quiz(m.channel)
q.questions.clear
- fetch_data ( m )
+ fetch_data(m)
cmd_quiz( m, params )
end
score = player[1].score
ar << "#{i + 1}. #{unhilight_nick( nick )} (#{score})"
end
- m.reply ar.join(" | ")
+ m.reply ar.join(" | "), :split_at => /\s+\|\s+/
end