Commit Graph
12 Commits
Author SHA1 Message Date
travandClaude Opus 5 cc0ad8c1a8 Add /items: one merged grid of every item the pub knows about
cust.ooo linked to one viewer page per kiosk, so every new kiosk meant
another hand-added link. /items selects on "whatever this pub follows"
instead: follow a new kiosk from the pub and its items appear on the next
cache miss, with no code change and no edit to the site.

serveUserFeed already reduced a feed's contact messages into a follow set;
that moves to lib/follows.js so both routes share one implementation rather
than drifting. It also picks up a fix on the way: the old filter passed
messages with no .value through and then dereferenced .value.content on them.

Two properties of the data drive items.js, both verified against the live log
and both quietly wrong to assume otherwise:

  * custodisco is the STRING "true", not a boolean.
  * no custo message has ever set content.channel, so the channel index finds
    nothing and the filter has to read content fields directly. This is why
    /channel/custodisco renders an empty page.

Log order is arrival order, which diverges from publish order whenever an old
feed is backfilled, so the collected set is sorted by timestamp. That makes
"newest first" and the ?before cursor agree; verified as zero overlap between
consecutive pages.

Cards rather than articles: 300 photos in a single column reads like a mailing
list, not an archive. A transfer borrows the photo of the item it transfers and
links to that item's thread, so the grid stays regular and the give is still
legible as a hand-off. Images are lazy, and 267 blobs are held against 301
mints, so a missing photo degrades to a placeholder instead of a broken icon.

serveHome now shows the grid instead of a bare id-lookup box, which was a dead
end for anyone arriving without an id already in hand. The ?id= redirect stays.

The footer commit now comes from .deployed-commit, written by the deploy
script. Deploys are rsync, so the server's checkout keeps whatever HEAD it was
cloned at and `git rev-parse` there names a commit unrelated to the files
actually running.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0192zBTNZKZn5svyJ5HTnYds
2026-08-22 19:40:27 -04:00
cel 0b8dc29802 Allow a feed to set publicWebHosting to null
This should be equivalent to having not set publicWebHosting at all.
2018-08-17 15:30:16 -07:00
Jacob Karlsson 3c608e0159 Add gathering title 2018-07-07 12:41:38 +02:00
Anders Rune Jensen d58d389db2 Fix crash on wierd non-string names 2018-04-30 15:00:00 +02:00
cel 5dbcb1c135 Handle boolean value false for publicWebHosting 2017-12-19 10:31:49 -10:00
Anders Rune Jensen ff87105bd1 Add ability to not be hosted publicly 2017-12-19 12:10:39 +01:00
cel 54c06b5115 Give more weight to feed author's own About choices 2017-05-15 13:15:35 -10:00
cel 6b33c9e3b6 Fix 445c573510 2017-05-15 11:30:21 -10:00
cel 445c573510 Merge commit 'c1b5c8d'
For About data, use most popular (d87029da1c)
instead of self-picked (dffd43f062)
2017-05-14 15:57:27 -10:00
cel d87029da1c Use most popular name/image 2017-05-12 13:29:46 -10:00
Anders Rune Jensen dffd43f062 Let people name themselves and support description in about 2017-05-12 22:06:54 +02:00
cel 829750e126 Initial commit 2016-12-15 13:26:20 -08:00