Repository navigation
RSS feeds, spam check before publishing, light/dark switch - #4
Merged
Merged
Conversation
New topics, every post and unanswered topics for the whole forum; new topics or every post per category; replies to one topic; new posts matching a search. Items carry the whole post with absolute links and its attachments, and /p/<id> gives each post a stable link. Every page announces its feed with <link rel="alternate"> and gets a quiet RSS button; /feeds lists them all. Feeds show only visible posts, are cached for five minutes and answer If-Modified-Since.
…spam filter is down A refused post used to be stored visible and hidden a moment later, so a reader or a feed fetched in between could see it. Now it is inserted as spam and never touches the topic or category counts. When the Anthropic API errors or times out, posts still go out unchecked, but the admins get an email about it, at most one every six hours.
Member
Author
|
Generated by Claude Code |
🚀 Deploying Preview to Cloudflare 🚀Preview Deployments by commit
|
The first sign-in ends on the name form, which saves through /settings, so read-only mode turned new members away at the last step. Settings don't touch posts, so they don't get in the way of the final import.
The sun/moon button switches to the other mode and remembers it in a cookie, which the server reads so the page renders in the right mode without a flash. Without a choice the device decides; picking the device's own mode again forgets the choice.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before: the only way to follow the forum was to sign in and watch topics by email. A post the spam filter refused was stored visible and hidden a moment later, and nobody heard about it when the filter was down. In read-only mode a new member couldn't get past the name form. Dark mode followed the device only.
After: RSS 2.0 feeds under
/feeds, listed on a new/feedspage under Help:/feeds/topics), every post (/feeds/posts), unanswered (/feeds/unanswered)/feeds/c/<slug>) or every post (/feeds/c/<slug>/posts)/feeds/t/<id>)/feeds/search?q=…)Every page announces its own feed with
<link rel="alternate">, and lists and topics get a quiet RSS button. Refused posts are stored hidden from the start, so no page or feed can catch them; when the Anthropic API fails the admins get an email (at most one every six hours) while posts keep going out unchecked. Read-only mode lets/settingsthrough. A sun/moon button in the header switches between light and dark; without a choice the device decides.How:
web/src/feeds.tshas the queries and the XML. Items carry the whole post incontent:encoded(absolute links, images, attachment links) and a short excerpt indescription;/p/<id>is a new stable link to a post. Feeds only show visible posts in visible topics, also to admins, are cached for five minutes and answerIf-Modified-Sincewith a 304.createTopic/createReplytake the filter's verdict and insert a refused post as spam without touching counts or watches. The theme choice is a cookie the server reads into<html data-theme>, so there is no flash; choosing the device's own mode again clears it.