Tue, 21 Oct 2014 17:53:04 +0200
plugins.ietf: HTTPS URLs (thanks darkrain)
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 |
94
5cc3b481d3e7
plugins.urltitle: Use correct method to send a message to a room. Thanks ruskie
Kim Alvefur <zash@zash.se>
parents:
92
diff
changeset
|
15 | message.room:send_message(title) |
92
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 |