plugins/urltitle.lua

Mon, 06 Dec 2021 11:26:37 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 06 Dec 2021 11:26:37 +0000
changeset 166
95b668d73ff9
parent 115
6498ca5ed831
permissions
-rw-r--r--

rtbl_admin: Fix reason string (abuse is defined to be the most generic)

Would be nice to support reasons in the future (and text annotations)

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