Added wikipedia plugin
This commit is contained in:
parent
22cff42b7b
commit
337ef38509
70
plugins/wiki.lua
Normal file
70
plugins/wiki.lua
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
require("./plugins/google")
|
||||||
|
|
||||||
|
function firstresult(results)
|
||||||
|
return results[1][2]
|
||||||
|
end
|
||||||
|
|
||||||
|
function wikiapilink(wikiurl)
|
||||||
|
local wikipattern="^http://de.wikipedia.org/wiki/(.*)$"
|
||||||
|
local matches = { string.match(wikiurl, wikipattern) }
|
||||||
|
local queryterm=matches[1]
|
||||||
|
local apilink = "http://de.wikipedia.org/w/index.php?action=raw&title="..queryterm
|
||||||
|
return apilink
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function getwikifromapi(apilink)
|
||||||
|
-- Do the request
|
||||||
|
local res, code = https.request(apilink)
|
||||||
|
if code ~=200 then return "Ein Fehler ist aufgetreten" end
|
||||||
|
local data = res
|
||||||
|
local wikitext=data
|
||||||
|
return wikitext
|
||||||
|
end
|
||||||
|
|
||||||
|
function plaintext(wikitext)
|
||||||
|
local plaintext=string.gsub(wikitext,"{{Infobox.-\n}}\n","")
|
||||||
|
plaintext=string.gsub(wikitext,"{{Medienbox.-\n}}\n","")
|
||||||
|
plaintext=string.gsub(wikitext,"<!--.--->","")
|
||||||
|
plaintext=string.gsub(plaintext,"Datei:.-]]","")
|
||||||
|
plaintext=string.gsub(plaintext,"{{.-}}","")
|
||||||
|
plaintext=string.gsub(plaintext,"[%[%|%]%]]","")
|
||||||
|
plaintext=string.gsub(plaintext,"<ref.->.-</ref>","")
|
||||||
|
local firstsectionindex=string.find(plaintext,"==")
|
||||||
|
if firstsectionindex~=nil then
|
||||||
|
plaintext=string.sub(plaintext,1,firstsectionindex-1)
|
||||||
|
end
|
||||||
|
return plaintext
|
||||||
|
end
|
||||||
|
|
||||||
|
function formatwikiforsending(wikitext,url)
|
||||||
|
-- local stringtosend=title.."\n==="
|
||||||
|
local stringtosend=plaintext(wikitext).."\n"
|
||||||
|
stringtosend=stringtosend.."- "..url
|
||||||
|
return stringtosend
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function scrapewiki(results)
|
||||||
|
local url=firstresult(results)
|
||||||
|
local tosend=formatwikiforsending(getwikifromapi(wikiapilink(url)),url)
|
||||||
|
return tosend
|
||||||
|
end
|
||||||
|
|
||||||
|
function run(msg, matches)
|
||||||
|
vardump(matches)
|
||||||
|
local results = googlethat(matches[1].." site:de.wikipedia.org")
|
||||||
|
return scrapewiki(results)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return {
|
||||||
|
description = "Sendet einen Wikipedia-Artikel",
|
||||||
|
usage = "/wiki Suchwort",
|
||||||
|
patterns = {
|
||||||
|
"^/wiki (.*)$",
|
||||||
|
"^%.[w|W]iki (.*)$",
|
||||||
|
"de.wikipedia.org/wiki/([A-Za-z0-9-_-]+)"
|
||||||
|
},
|
||||||
|
run = run
|
||||||
|
}
|
Reference in New Issue
Block a user