do
function getTitle(page)
local s = page
-- Remove optional spaces from the tags.
s = string.gsub(s, "\n", " ")
s = string.gsub(s, " *< *", "<")
s = string.gsub(s, " *> *", ">")
-- Character encoding
s = string.gsub(s, "´", "´")
s = string.gsub(s, "•", "•")
s = string.gsub(s, ">", ">")
s = string.gsub(s, """, '"')
s = string.gsub(s, "<", "<")
s = string.gsub(s, "—", "—")
s = string.gsub(s, "∇", "∇")
s = string.gsub(s, "–", "–")
s = string.gsub(s, "Ψ", "ψ")
s = string.gsub(s, "ψ", "ψ")
s = string.gsub(s, "»", "»")
s = string.gsub(s, "®", "®")
s = string.gsub(s, "ß", "ß")
s = string.gsub(s, "™", "™")
s = string.gsub(s, "&", "&")
s = string.gsub(s, "'", "'")
s = string.gsub(s, "'", "'")
s = string.gsub(s, "|", "|")
s = string.gsub(s, " ", " ")
s = string.gsub(s, "®", "®")
s = string.gsub(s, "»", "»")
s = string.gsub(s, "ß", "ß")
s = string.gsub(s, "–", "–")
s = string.gsub(s, "’", "'")
s = string.gsub(s, "“", "“")
s = string.gsub(s, "”", "”")
s = string.gsub(s, "„", "„")
s = string.gsub(s, "‹", "‹")
s = string.gsub(s, "€", "€")
-- Ä Ö Ü
s = string.gsub(s, "ä", "ä")
s = string.gsub(s, "Ä", "Ä")
s = string.gsub(s, "ä", "ä")
s = string.gsub(s, "Ä", "Ä")
s = string.gsub(s, "ö", "ö")
s = string.gsub(s, "Ö", "Ö")
s = string.gsub(s, "ö", "ö")
s = string.gsub(s, "Ö", "Ö")
s = string.gsub(s, "ü", "ü")
s = string.gsub(s, "Ü", "Ü")
s = string.gsub(s, "ü", "ü")
s = string.gsub(s, "Ü", "Ü")
-- Put all the tags in lowercase.
s = string.gsub(s, "(<[^ >]+)", string.lower)
s = string.gsub(s, "&", "&") -- Be sure to do this after all others
local i, f, t = string.find(s, "
(.+)")
return t or ""
end
function string.ends(str, fin)
return fin=='' or string.sub(str,-string.len(fin)) == fin
end
function run(msg, matches)
local url = matches[1]
local result = http.request(url)
local title = getTitle(result)
--Ignoring 301, 302, 404 and more
if title == "301 Moved Permanently" or
title == "" or
title == "404 Not Found" or
title == "302 Found" or
title == "302 Moved" or
title == "Moved Permanently" or
title == "Redirection" or
title == "Object moved" or
title == "Error 404 (Not Found)!!1" or
title == "Moved Temporarily" or
title == "Not Found" or
title == "Document Moved" or
title == "521: Web server is down" or
string.match(title, "on Steam") or
string.match(title, "eBay") or
string.match(msg.text, "twitch.tv") or
string.match(msg.text, "twitter.com") or
string.match(msg.text, "steamcommunity.com/app/") or
string.match(msg.text, "myanimelist.net/anime/") or
string.match(msg.text, "myanimelist.net/manga/") or
string.match(msg.text, "myanimelist.net/profile/") or
string.match(msg.text, "deviantart.com") or
string.match(msg.text, "urbanup.com/") or
string.match(msg.text, "urbandictionary.com/define.php")or
string.match(msg.text, "wikia.com") or
string.match(msg.text, "rule34.xxx/index.php") or
string.match(msg.text, "openings.moe/%?video") or
string.match(msg.text, "myfigurecollection.net") or
string.match(msg.text, "dropbox.com/s/") or
string.match(msg.text, "nicovideo.jp/watch/sm") or
string.ends(url, ".jpg") or
string.ends(url, ".jpeg") or
string.ends(url, ".gif") or
string.ends(url, ".png") then
print('Ungültig, da "'..title..'"')
else
return title
end
end
return {
description = "Postet den URL-Titel",
usage = {""},
patterns = {"^(https?://[%w-_%.%?%.:,/%+=!]+)$"},
run = run
}
end