plugins/urltitle.lua

Mon, 06 Dec 2021 11:27:16 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 06 Dec 2021 11:27:16 +0000
changeset 167
2073137bc943
parent 115
6498ca5ed831
permissions
-rw-r--r--

rtbl_admin: Notify subscribers on item removal (requires verse 98dc1750584d)

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

mercurial