fszontagh 3084504b96 refactor: drop the data.loop.item rewrite, address the item for real 1 bulan lalu
..
35photo2anime-sdcpp.json 3084504b96 refactor: drop the data.loop.item rewrite, address the item for real 1 bulan lalu
README.md 6cdc9c23d1 fix: rate a blog post from the picture it publishes, not from the source photo 1 bulan lalu
anime-from-upload.json c39a27b943 feat: an upload form into the anime pipeline 1 bulan lalu
swf-anime-process-one-image.json 591b6f2654 fix: stop the moderation log asserting an age nobody assessed 1 bulan lalu
swf-sdccp-v2-generate-image.json 6cdc9c23d1 fix: rate a blog post from the picture it publishes, not from the source photo 1 bulan lalu
swf-zsebhoki-publish-anime-post.json 3084504b96 refactor: drop the data.loop.item rewrite, address the item for real 1 bulan lalu

README.md

The workflows, as definitions

Workflows live in the database, not in this repository, so a change made in the editor leaves no trace here and cannot be reviewed in a diff. These are exports of the three that make up the blog pipeline, kept so the shape of them is readable and reviewable.

They are not a restore mechanism. Only the definition is exported - name, description, active flag, nodes, connections, settings - because version numbers and audit stamps are the database's business and would churn on every autosave. Restoring a workflow means the database backup on zeus, which has been tested.

Nextcloud conversation tokens are redacted. They identify a private chat room, and while they are not passwords they are not something to keep in a repository either. Re-enter them if you ever rebuild from these.

Credential ids appear as ids. The secrets themselves are encrypted in the database and never leave it except to a runner.

What is here

  • 35photo2anime-sdcpp.json - the pipeline. Reads two 35photo feeds, judges each image, redraws the ones the gate selects, writes the post and publishes it.
  • swf-sdccp-v2-generate-image.json - generation, called as a sub-workflow. storeInDatabase is an input, defaulting to true; the pipeline passes false because the picture is already on the SD.cpp server and goes to the blog from there.
  • swf-zsebhoki-publish-anime-post.json - uploads the image, creates the post, then creates or reuses each tag and links it.

The content rating

is_adult is decided by Rate The Picture, which analyses the image that is about to be published. It used to come from the analysis of the source photograph, and since the pipeline only redraws sources the safety gate marked NSFW, that value was explicit every time - so every post was flagged 18+ whatever the redraw actually looked like.

The node sits between the download and the publish so it judges the same file in the same chain. That also avoids a trap worth knowing about: $node[...] inside a loop holds whichever iteration finished last, not the one being worked on, so anything read across nodes in a loop body has to be captured in that iteration.

An unreadable rating still counts as adult. The blog requires the flag on every post, and under-rating on a site with an 18+ gate is the harmful direction.