diff --git a/README.md b/README.md index 69450f7..4bdcf9c 100644 --- a/README.md +++ b/README.md @@ -21,15 +21,43 @@ readable in your history. Replace `antisocial.example.com` with wherever you are running it. -| Platform | Find | Replace | -| --------- | ------------------------------------------------------------- | ------------------------------------------- | -| X | `/^https:\/\/(?:www\.\|mobile\.)?(?:x\|twitter)\.com\/(.*)$/` | `https://antisocial.example.com/x/$1` | -| Threads | `/^https:\/\/(?:www\.)?threads\.(?:net\|com)\/(.*)$/` | `https://antisocial.example.com/threads/$1` | -| Instagram | `/^https:\/\/(?:www\.)?instagram\.com\/(.*)$/` | `https://antisocial.example.com/ig/$1` | -| TikTok | `/^https:\/\/(?:www\.\|vm\.\|vt\.)?tiktok\.com\/(.*)$/` | `https://antisocial.example.com/tiktok/$1` | -| Bluesky | `/^https:\/\/bsky\.app\/(.*)$/` | `https://antisocial.example.com/bsky/$1` | -| Reddit | `/^https:\/\/(?:www\.\|old\.\|new\.\|np\.\|m\.)?reddit\.com\/(.*)$/` | `https://antisocial.example.com/reddit/$1` | -| Reddit | `/^https:\/\/redd\.it\/(.*)$/` | `https://antisocial.example.com/reddit/$1` | +Each rule is two fields. Both are on their own line below, and neither needs any +escaping — copy them straight out of this file. + +```text +# X +/^https:\/\/(?:www\.|mobile\.)?(?:x|twitter)\.com\/(.*)$/ +https://antisocial.example.com/x/$1 + +# Threads +/^https:\/\/(?:www\.)?threads\.(?:net|com)\/(.*)$/ +https://antisocial.example.com/threads/$1 + +# Instagram +/^https:\/\/(?:www\.)?instagram\.com\/(.*)$/ +https://antisocial.example.com/ig/$1 + +# TikTok +/^https:\/\/(?:www\.|vm\.|vt\.)?tiktok\.com\/(.*)$/ +https://antisocial.example.com/tiktok/$1 + +# Bluesky +/^https:\/\/bsky\.app\/(.*)$/ +https://antisocial.example.com/bsky/$1 + +# Reddit +/^https:\/\/(?:www\.|old\.|new\.|np\.|m\.)?reddit\.com\/(.*)$/ +https://antisocial.example.com/reddit/$1 + +# Reddit short links +/^https:\/\/redd\.it\/(.*)$/ +https://antisocial.example.com/reddit/$1 +``` + +A code block rather than a table, because a table cell cannot hold a bare `|` — it has +to be written `\|`, which renders correctly and copies wrongly. The alternation in these +rules is full of them, and a regex whose pipes arrive as literal pipes matches nothing +and says nothing about why. So `https://x.com/user/status/123` becomes `https://antisocial.example.com/x/user/status/123`. @@ -42,7 +70,8 @@ where it came from Reddit. A Reddit `/r//s/` share link is followed t post it points at, and that permalink — not the opaque share code — is what the copy button hands back. -`/` serves this table with the live hostnames, if you'd rather read it there. +`/` serves these rules with the live hostname already filled in, if you'd rather copy +them from there. ## How it works @@ -59,13 +88,13 @@ Each adapter layers its extraction, most structured first: 3. **The rendered DOM** — whatever is actually on screen is real. 4. **Open Graph tags** — the floor, and enough to show something. -| Platform | Loads | Reads | -| --------- | ---------------------------- | -------------------------------------------------------- | -| Bluesky | the public AT Protocol API | `getPostThread`; falls back to the post page | -| X | `platform.twitter.com` embed | the `cdn.syndication.twimg.com/tweet-result` response | -| Instagram | `/embed/captioned/` | `shortcode_media`, then the rendered `