author | Kim Alvefur <zash@zash.se> |
Sun, 28 Aug 2022 15:50:39 +0200 | |
changeset 5026 | 97d34d520cfa |
parent 4602 | 09f0911c735d |
permissions | -rw-r--r-- |
4464 | 1 |
# mod_ogp |
2 |
||
3 |
This module adds [Open Graph Protocol](https://ogp.me) metadata to URLs sent inside a MUC. |
|
4 |
||
5 |
With mod_ogp enabled, when a user sends a URL in a MUC (where the message has its `id` equal to its `origin-id`), the module calls the URL and parses the result for `<meta>` html tags that have any `og:...` properties. |
|
6 |
If it finds any, it sends a [XEP-0422 fastening](https://xmpp.org/extensions/xep-0422.html) applied to the original message that looks like: |
|
7 |
||
4488
6813a00878ea
mod_ogp/README: Annotate example as XML to enable syntax highlighting
Kim Alvefur <zash@zash.se>
parents:
4487
diff
changeset
|
8 |
```xml |
4601
c858c76d0845
mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
4489
diff
changeset
|
9 |
<message id="example" from="chatroom@muc.example.org" to="user@chat.example.org/resource"> |
4487
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
10 |
<apply-to xmlns="urn:xmpp:fasten:0" id="origin-id-X"> |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
11 |
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:title" content="The Rock"/> |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
12 |
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:url" content="https://www.imdb.com/title/tt0117500/"/> |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
13 |
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image" content="https://ia.media-imdb.com/images/rock.jpg"/> |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
14 |
</apply-to> |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
15 |
</message> |
4464 | 16 |
``` |
17 |
||
18 |
The module is intentionally simple in the sense that it is basically a transport for https://ogp.me/ |
|
4487
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
19 |
|
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
20 |
Configuration |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
21 |
------------- |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
22 |
|
4602
09f0911c735d
mod_ogp: Add the ability to block OGP fetching for certain domains
JC Brand <jc@opkode.com>
parents:
4601
diff
changeset
|
23 |
You can present an allowlist or denylist of domains for which OGP metadata will be fetched |
09f0911c735d
mod_ogp: Add the ability to block OGP fetching for certain domains
JC Brand <jc@opkode.com>
parents:
4601
diff
changeset
|
24 |
via the `ogp_domain_allowlist` and `ogp_domain_denylist` settings repectively. |
4487
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
25 |
|
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
26 |
For example: |
c4f11a4b5ac7
mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents:
4464
diff
changeset
|
27 |
|
4489
2c4b65bfac62
mod_ogp/README: Add Lua language annotation to prosody config snippet
Kim Alvefur <zash@zash.se>
parents:
4488
diff
changeset
|
28 |
```lua |
2c4b65bfac62
mod_ogp/README: Add Lua language annotation to prosody config snippet
Kim Alvefur <zash@zash.se>
parents:
4488
diff
changeset
|
29 |
Component "muc.example.org" "muc" |
2c4b65bfac62
mod_ogp/README: Add Lua language annotation to prosody config snippet
Kim Alvefur <zash@zash.se>
parents:
4488
diff
changeset
|
30 |
modules_enabled = { "ogp" } |
4602
09f0911c735d
mod_ogp: Add the ability to block OGP fetching for certain domains
JC Brand <jc@opkode.com>
parents:
4601
diff
changeset
|
31 |
ogp_domain_allowlist = { "prosody.im" } |
4489
2c4b65bfac62
mod_ogp/README: Add Lua language annotation to prosody config snippet
Kim Alvefur <zash@zash.se>
parents:
4488
diff
changeset
|
32 |
``` |