annotate mod_tweet_data/README.md @ 5366:db4c66a1d24b

mod_http_oauth2: Fill in some client metadata defaults Explicit > Implicit Maybe we should actually use these for something as well? :) It's is somewhat an open question of how strictly we should enforce things in the client metadata given that it is somewhat extensible. Especially some of these enum fields which have corresponding IANA registries.
author Kim Alvefur <zash@zash.se>
date Tue, 25 Apr 2023 18:09:08 +0200
parents c858c76d0845
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4597
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
1 # mod_tweet_data
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
2
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
3 This module adds [Open Graph Protocol](https://ogp.me) metadata to Twitter.com tweet URLs sent inside a MUC.
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
4
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
5 It's similar to [mod_ogp](https://modules.prosody.im/mod_ogp.html) but is adapted specifically to Twitter.com, which doesn't support the [Open Graph Protocol](https://ogp.me).
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
6
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
7 When a user sends a tweet URL in a MUC (where the message has its `id` equal to its `origin-id`), this module calls that URL to get the tweet data.
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
8 If it finds any, it sends a [XEP-0422 fastening](https://xmpp.org/extensions/xep-0422.html) applied to the original message that looks as follows (note, I haven't used real data here):
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
9
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
10 ```xml
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
11 <message xmlns="jabber:client" to="user@chat.example.org/resource" from="chatroom@muc.example.org" type="groupchat">
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
12 <apply-to xmlns="urn:xmpp:fasten:0" id="82dbc94c-c18a-4e51-a0d5-9fd3a7bfd267">
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
13 <meta xmlns="http://www.w3.org/1999/xhtml" property="og:article:author" content="TwitterCritter" />
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
14 <meta xmlns="http://www.w3.org/1999/xhtml" property="og:article:published_time" content="2021-06-22T06:44:20.000Z" />
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
15 <meta xmlns="http://www.w3.org/1999/xhtml" property="og:description" content="I'm in ur twitterz" />
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
16 <meta xmlns="http://www.w3.org/1999/xhtml" property="og:image" content="https://pbs.twimg.com/profile_images/984325764849045505/Ty3F93Ln_normal.jpg" />
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
17 <meta xmlns="http://www.w3.org/1999/xhtml" property="og:title" content="TwitterCritter" />
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
18 <meta xmlns="http://www.w3.org/1999/xhtml" property="og:type" content="tweet" />
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
19 <meta xmlns="http://www.w3.org/1999/xhtml" property="og:url" content="https://twitter.com/TwitterCritter/status/1407227938391707648" />
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
20 </apply-to>
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
21 <stanza-id xmlns="urn:xmpp:sid:0" by="chatroom@muc.example.org" id="90e8818d-390a-4c69-a2d8-0fd463fb3366"/>
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
22 </message>
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
23 ```
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
24
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
25 Configuration
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
26 -------------
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
27
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
28 You'll need to provide a Twitter APIv2 bearer token.
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
29
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
30 ```lua
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
31 Component "muc.example.org" "muc"
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
32 modules_enabled = { "tweet_data" }
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
33 twitter_apiv2_bearer_token = { "some-very-long-string" }
c858c76d0845 mod_tweet_data: New module that fetches and sends tweet data
JC Brand <jc@opkode.com>
parents:
diff changeset
34 ```