Sha256: 3a2be2d66eb7e815b90f7ec78dc0d2d02c8e1a2d94d5634be0584e6f8fd14584

Contents?: true

Size: 1.09 KB

Versions: 2

Compression:

Stored size: 1.09 KB

Contents

require 'open-uri'
require 'yajl'
require 'cgi'

module Cinch
  module Plugins
    class Rubygems
      include Cinch::Plugin

      match /r (.*)$/

      set :plugin_name, 'rubygems'
      set :help, <<EOT
Rubygems queries http://rubygems.org for finding gems
EOT

      def query(query)
        url = "https://rubygems.org/api/v1/search.json?query=#{CGI.escape(query)}"
        back = "Requesting ... \n"
        begin
          file = open(url)
          if file.class == StringIO
            json = Yajl::Parser.parse(file)
            if json.empty?
              return "Nothing matches '#{query}'"
            end
          else
            json = Yajl::Parser.parse(File.read(file))
          end
          4.times do |it|
            back += "#{json[it]['name']} : #{json[it]['homepage_uri']}\n"
          end
        rescue Exception => e
          p file.class
          back = "*** #{e.class}\n"
          back += e.to_s
        end
        return back
      end

      def new(bot)
        @bot = bot
      end

      def execute(m,words)
        m.reply(query(words.strip))
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cogbot-0.0.3 plugins/rubygems.rb
cogbot-0.0.2 plugins/rubygems.rb