- data = @bot.httputil.get("http://grouphug.us/#{path}", opts)
-
- reg = Regexp.new('(<div class="content")(.*?)(<p>)(.*?)(</p>)',
- Regexp::MULTILINE)
- confession = reg.match( data )[4].ircify_html
- confession = "no confession ##{params[:num]} found" if confession.empty? and params[:num]
-
- m.reply confession
+ # Fetch a specific question - separate from cache
+ if params[:num]
+ path = "confessions/#{params[:num]}"
+ opts.delete(:cache)
+ data = @bot.httputil.get("http://grouphug.us/#{path}", opts)
+
+ res = data.scan(REG)
+ confession = res[0][0].ircify_html
+ confession = "no confession ##{params[:num]} found" if confession.empty? and params[:num]
+ m.reply confession
+ else # Cache random confessions
+ if @confessions.empty?
+ data = @bot.httputil.get("http://grouphug.us/#{path}", opts)
+ res = data.scan(REG)
+ res.each do |quote|
+ @confessions << quote[0].ircify_html
+ end
+ end
+ confession = @confessions.pop
+ m.reply confession
+ end