plugins/urltitle.lua

changeset 92
37e804dfaf37
child 94
5cc3b481d3e7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/urltitle.lua	Tue Jan 31 19:29:02 2012 +0100
@@ -0,0 +1,27 @@
+function riddim.plugins.urltitle(bot)
+	require "net.httpclient_listener";
+	local http = require "net.http";
+
+	local function handler(message)
+		local url = message.body and message.body:match("https?://%S+");
+		if url then
+			http.request(url, nil, function (data, code)
+				if code ~= 200 then return end
+				local title = data:match("<title[^>]*>([^<]+)");
+
+				if title then
+					title = title:gsub("\n", "");
+					if message.room then
+						message.room:send(title);
+					else
+						message:reply(title);
+					end
+				end
+			end);
+		end
+	end
+	bot:hook("message", handler);
+	bot:hook("groupchat/joined", function(room)
+		room:hook("message", handler)
+	end);
+end

mercurial