From 76441bb91dec72831230a1ba1f0d20f92ecc25fd Mon Sep 17 00:00:00 2001 From: James Griffin Date: Thu, 27 Aug 2026 13:23:47 -0300 Subject: [PATCH] Reformat the README, and put the Reddit rule back together A Markdown formatter over the file, plus a repair to what it did on the way through. The Reddit rewrite rule is the longest row in the table and the only one the formatter took apart. The pipes in its alternation are written `\|`, which is how a literal pipe goes inside a table cell and how the X and TikTok rows have always written theirs; the formatter dropped the backslashes, at which point four of them became column separators. The row became seven cells, the separator row was widened to seven to match, and `(.*)` picked up an escape and turned into `(.\*)`. The visible damage is a mangled table. The real damage is that the rule is there to be copied into StopTheMadness, and what was left could not be: split across six cells with a regex that no longer matches a Reddit URL. The row and the separator are restored. Every rule in the table now compiles and rewrites correctly, checked by pulling them out of the file and running them against real URLs for each platform, including the `redd.it` short code and a `/s/` share link. Worth knowing that the formatter will do this again. Nothing in the repository configures one, so this was run by hand -- but if it becomes a habit, README.md wants excluding, because this table cannot survive it. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_017nMQ2eDKnqALYhAibpTKTu --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 69450f7..d7d08ab 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Replace `antisocial.example.com` with wherever you are running it. | 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` | +| Reddit | `/^https:\/\/redd\.it\/(.*)$/` | `https://antisocial.example.com/reddit/$1` | So `https://x.com/user/status/123` becomes `https://antisocial.example.com/x/user/status/123`. @@ -59,13 +59,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 `