diff options
author | piernov <piernov@piernov.servegame.org> | 2011-06-02 15:08:03 +0200 |
---|---|---|
committer | piernov <piernov@piernov.servegame.org> | 2011-06-02 15:08:03 +0200 |
commit | 762f732c33432c9a6f488dd5618e19b26fe47609 (patch) | |
tree | 878104dccdc4389a1f523472f2f4e08a24e99777 /modules/wikipedia.rb | |
parent | ec823fb412e4574e4d2dcd4c0f58dff01ee549e6 (diff) | |
download | rbjbbot-master.tar.gz rbjbbot-master.tar.bz2 rbjbbot-master.tar.xz rbjbbot-master.zip |
Diffstat (limited to 'modules/wikipedia.rb')
-rw-r--r-- | modules/wikipedia.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/modules/wikipedia.rb b/modules/wikipedia.rb new file mode 100644 index 0000000..68e7280 --- /dev/null +++ b/modules/wikipedia.rb @@ -0,0 +1,23 @@ +def module_wikipedia(msg_body, sender_nick, config) + def wikipedia(wikisearch, config) + http = Net::HTTP.new("fr.wikipedia.org", 80) + http.start do |http| + req = Net::HTTP::Get.new("/w/api.php?action=opensearch&limit=3&format=xml&search=#{CGI::escape(wikisearch)}", {"User-Agent" => config['bot'][0]['USERAGENT'][0]}) + $resp = http.request(req).body + end + data = XmlSimple.xml_in($resp, { 'KeyAttr' => 'name','ContentKey' => '-content'}) + unless data['Section'][0] == {} then + return data['Section'][0]['Item'][0]['Description'][0]['content'] + else + return "Aucun résultat, veuillez reformuler votre recherche" + end + end + + if msg_body == "!wiki" + answer = "Veuillez entrer une recherche à effectuer." + return answer + elsif msg_body =~ /^!wiki+/ + answer = wikipedia(msg_body.gsub("!wiki ",""), config).chomp + return answer + end +end |