fszontagh 6cdc9c23d1 fix: rate a blog post from the picture it publishes, not from the source photo 1 месяц назад
..
35photo2anime-sdcpp.json 6cdc9c23d1 fix: rate a blog post from the picture it publishes, not from the source photo 1 месяц назад
README.md 6cdc9c23d1 fix: rate a blog post from the picture it publishes, not from the source photo 1 месяц назад
swf-sdccp-v2-generate-image.json 6cdc9c23d1 fix: rate a blog post from the picture it publishes, not from the source photo 1 месяц назад
swf-zsebhoki-publish-anime-post.json 6cdc9c23d1 fix: rate a blog post from the picture it publishes, not from the source photo 1 месяц назад

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.