annotate mod_ogp/README.markdown @ 4700:f821eeac0e50

mod_pastebin: Fix pasting when <body> is not the first tag (thanks thorsten) Introduced in ded630a87563 stanza:get_child() and :get_child_text() operates on the first child when no name or namespace is given. If it so happens that the first child is an <thread/> instead of <body> then it calculates the line length against that instead of the body. Apparently in the vast majority of clients the <body> is first, so this issue was not noticed until now.
author Kim Alvefur <zash@zash.se>
date Wed, 29 Sep 2021 13:39:59 +0200
parents 09f0911c735d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4460
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
1 # mod_ogp
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
2
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
3 This module adds [Open Graph Protocol](https://ogp.me) metadata to URLs sent inside a MUC.
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
4
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
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.
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
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:
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
7
4484
6813a00878ea mod_ogp/README: Annotate example as XML to enable syntax highlighting
Kim Alvefur <zash@zash.se>
parents: 4483
diff changeset
8 ```xml
4597
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents: 4485
diff changeset
9 <message id="example" from="chatroom@muc.example.org" to="user@chat.example.org/resource">
4483
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
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: 4460
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: 4460
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: 4460
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: 4460
diff changeset
14 </apply-to>
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
15 </message>
4460
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
16 ```
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
17
205e50fdcebc mod_ogp: Add README
JC Brand <jc@opkode.com>
parents:
diff changeset
18 The module is intentionally simple in the sense that it is basically a transport for https://ogp.me/
4483
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
19
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
20 Configuration
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
21 -------------
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
22
4598
09f0911c735d mod_ogp: Add the ability to block OGP fetching for certain domains
JC Brand <jc@opkode.com>
parents: 4597
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: 4597
diff changeset
24 via the `ogp_domain_allowlist` and `ogp_domain_denylist` settings repectively.
4483
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
25
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
26 For example:
c4f11a4b5ac7 mod_ogp: Add the ability to whitelist domains
JC Brand <jc@opkode.com>
parents: 4460
diff changeset
27
4485
2c4b65bfac62 mod_ogp/README: Add Lua language annotation to prosody config snippet
Kim Alvefur <zash@zash.se>
parents: 4484
diff changeset
28 ```lua
2c4b65bfac62 mod_ogp/README: Add Lua language annotation to prosody config snippet
Kim Alvefur <zash@zash.se>
parents: 4484
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: 4484
diff changeset
30 modules_enabled = { "ogp" }
4598
09f0911c735d mod_ogp: Add the ability to block OGP fetching for certain domains
JC Brand <jc@opkode.com>
parents: 4597
diff changeset
31 ogp_domain_allowlist = { "prosody.im" }
4485
2c4b65bfac62 mod_ogp/README: Add Lua language annotation to prosody config snippet
Kim Alvefur <zash@zash.se>
parents: 4484
diff changeset
32 ```