plugins/urltitle.lua

Tue, 31 Jan 2012 19:29:02 +0100

author
Kim Alvefur <zash@zash.se>
date
Tue, 31 Jan 2012 19:29:02 +0100
changeset 92
37e804dfaf37
child 94
5cc3b481d3e7
permissions
-rw-r--r--

Import urltitle plugin (thanks ruskie)

92
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 function riddim.plugins.urltitle(bot)
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 require "net.httpclient_listener";
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local http = require "net.http";
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 local function handler(message)
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local url = message.body and message.body:match("https?://%S+");
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 if url then
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 http.request(url, nil, function (data, code)
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 if code ~= 200 then return end
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 local title = data:match("<title[^>]*>([^<]+)");
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 if title then
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 title = title:gsub("\n", "");
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 if message.room then
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 message.room:send(title);
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 else
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 message:reply(title);
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 end
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 end
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 end);
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 end
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 end
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 bot:hook("message", handler);
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 bot:hook("groupchat/joined", function(room)
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 room:hook("message", handler)
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 end);
37e804dfaf37 Import urltitle plugin (thanks ruskie)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 end

mercurial