Sha256: 9feffe72aad74ed43ae6fe742926ea9e5c09e89e7397d56588f7f7a810d3f864

Contents?: true

Size: 995 Bytes

Versions: 7

Compression:

Stored size: 995 Bytes

Contents

require 'ruboty'
require 'wikipedia'

module Ruboty
  module Handlers
    class Wikipedia < Base
      DEFAULT_WIKIPEDIA_DOMAIN = 'en.wikipedia.org'
      DEFAULT_WIKIPEDIA_MESSAGE_WHEN_NOT_FOUND = 'No articles found.'

      env :WIKIPEDIA_DOMAIN, 'Wikipedia domain (default: en.wikipedia.org)', optional: true
      env :WIKIPEDIA_MESSAGE_WHEN_NOT_FOUND, 'Message when not found (default: No articles found.)', optional: true

      on(
        /(wikipedia|wiki) (?<keyword>.+)/,
        name: 'wikipedia',
        description: 'Returns the Wikipedia url that matches the keyword.'
      )

      def wikipedia(message)
        ::Wikipedia.configure { domain(ENV['WIKIPEDIA_DOMAIN'] || DEFAULT_WIKIPEDIA_DOMAIN) }
        page = ::Wikipedia.find message[:keyword]

        if page.summary.nil?
          message.reply(ENV['WIKIPEDIA_MESSAGE_WHEN_NOT_FOUND'] || DEFAULT_WIKIPEDIA_MESSAGE_WHEN_NOT_FOUND)
        else
          message.reply page.fullurl
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ruboty-wikipedia-0.1.7 lib/ruboty/handlers/wikipedia.rb
ruboty-wikipedia-0.1.6 lib/ruboty/handlers/wikipedia.rb
ruboty-wikipedia-0.1.5 lib/ruboty/handlers/wikipedia.rb
ruboty-wikipedia-0.1.4 lib/ruboty/handlers/wikipedia.rb
ruboty-wikipedia-0.1.3 lib/ruboty/handlers/wikipedia.rb
ruboty-wikipedia-0.1.2 lib/ruboty/handlers/wikipedia.rb
ruboty-wikipedia-0.1.1 lib/ruboty/handlers/wikipedia.rb