Mon, 06 Dec 2021 11:26:37 +0000
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 |