From 965a8f0d6eeb4f1275db779dfaf53c56ebdc0945 Mon Sep 17 00:00:00 2001 From: CJ_Clippy Date: Wed, 12 Nov 2025 07:54:01 -0800 Subject: [PATCH] it works kinda --- .vscode/tasks.json | 130 + services/pocketbase/package.json | 2 +- .../pb_hooks/pages/(site)/+layout.ejs | 7 +- .../pb_hooks/pages/(site)/+middleware.js | 29 +- .../pb_hooks/pages/(site)/account/index.ejs | 2 +- .../pb_hooks/pages/(site)/feed/index.ejs | 14 + .../pb_hooks/pages/(site)/index.ejs | 6 - .../pb_hooks/pages/(site)/patrons/+load.js | 2 +- .../pb_hooks/pages/(site)/vods/[id]/index.ejs | 6 +- services/pocketbase/pb_hooks/pages/+config.js | 3 +- .../pocketbase/pb_hooks/pages/+middleware.js | 15 + .../pages/api/user/settings/index.ejs | 3 +- .../pb_hooks/pages/vods/feed.json/+load.js | 3 +- .../pb_hooks/pages/vods/feed.json/index.ejs | 16 +- .../pb_migrations/1762955236_updated_vods.js | 29 + services/pocketbase/pb_public/logo.png | Bin 0 -> 248 bytes .../2025-11-07-import-thumbnails.js | 2 + .../2025-11-09-copy-video-src-b2.js | 86 + services/pocketbase/utils/deploy.js | 54 +- services/worker/.config/bullmq.config.ts | 8 + services/worker/.config/env.ts | 58 + services/worker/.config/tsconfig.json | 29 + services/worker/.gitignore | 34 + services/worker/README.md | 15 + services/worker/bun.lock | 234 ++ services/worker/entrypoint.sh | 3 + services/worker/err.md | 24 + services/worker/index.ts.old | 199 ++ services/worker/package-lock.json | 2891 +++++++++++++++++ services/worker/package.json | 33 + services/worker/src/index.ts | 79 + .../worker/src/processors/analyzeAudio.ts | 133 + services/worker/src/processors/childTask.ts | 5 + services/worker/src/processors/cleanup.ts | 11 + .../worker/src/processors/copyV1S3ToV2.ts | 156 + .../worker/src/processors/createFunscript.ts | 181 ++ .../src/processors/createHlsPlaylist.ts | 220 ++ .../worker/src/processors/createIpfsCid.ts | 100 + .../worker/src/processors/createStoryboard.ts | 114 + .../worker/src/processors/createTorrent.ts | 206 ++ .../src/processors/createTranscription.ts | 86 + .../src/processors/createVideoThumbnail.ts | 126 + services/worker/src/processors/findWork.ts | 30 + .../src/processors/generateVideoChecksum.ts | 70 + .../worker/src/processors/getSourceVideo.ts | 235 ++ .../src/processors/getSourceVideoMetadata.ts | 133 + services/worker/src/processors/parentTask.ts | 14 + .../worker/src/processors/presignMuxAssets.ts | 74 + .../src/processors/scheduleVodProcessing.ts | 82 + .../src/processors/syncronizePatreon.ts | 207 ++ services/worker/src/queues/generalQueue.ts | 15 + services/worker/src/queues/gpuQueue.ts | 17 + .../worker/src/queues/highPriorityQueue.ts | 14 + services/worker/src/queues/parentQueue.ts | 4 + services/worker/src/util/b2.ts | 7 + services/worker/src/util/formatters.ts | 54 + services/worker/src/util/funscripts.ts | 201 ++ services/worker/src/util/pocketbase.ts | 22 + services/worker/src/util/vibeui.ts | 302 ++ services/worker/src/workers/generalWorker.ts | 26 + services/worker/src/workers/gpuWorker.ts | 20 + .../worker/src/workers/highPriorityWorker.ts | 22 + services/worker/systemd/test.sh | 9 + services/worker/systemd/up.sh | 8 + services/worker/systemd/worker.service | 15 + 65 files changed, 6858 insertions(+), 77 deletions(-) create mode 100644 .vscode/tasks.json create mode 100644 services/pocketbase/pb_hooks/pages/(site)/feed/index.ejs create mode 100644 services/pocketbase/pb_hooks/pages/+middleware.js create mode 100644 services/pocketbase/pb_migrations/1762955236_updated_vods.js create mode 100644 services/pocketbase/pb_public/logo.png create mode 100644 services/pocketbase/utils/data_migrations/2025-11-09-copy-video-src-b2.js create mode 100644 services/worker/.config/bullmq.config.ts create mode 100644 services/worker/.config/env.ts create mode 100644 services/worker/.config/tsconfig.json create mode 100644 services/worker/.gitignore create mode 100644 services/worker/README.md create mode 100644 services/worker/bun.lock create mode 100755 services/worker/entrypoint.sh create mode 100644 services/worker/err.md create mode 100644 services/worker/index.ts.old create mode 100644 services/worker/package-lock.json create mode 100644 services/worker/package.json create mode 100644 services/worker/src/index.ts create mode 100644 services/worker/src/processors/analyzeAudio.ts create mode 100644 services/worker/src/processors/childTask.ts create mode 100644 services/worker/src/processors/cleanup.ts create mode 100644 services/worker/src/processors/copyV1S3ToV2.ts create mode 100644 services/worker/src/processors/createFunscript.ts create mode 100644 services/worker/src/processors/createHlsPlaylist.ts create mode 100644 services/worker/src/processors/createIpfsCid.ts create mode 100644 services/worker/src/processors/createStoryboard.ts create mode 100644 services/worker/src/processors/createTorrent.ts create mode 100644 services/worker/src/processors/createTranscription.ts create mode 100644 services/worker/src/processors/createVideoThumbnail.ts create mode 100644 services/worker/src/processors/findWork.ts create mode 100644 services/worker/src/processors/generateVideoChecksum.ts create mode 100644 services/worker/src/processors/getSourceVideo.ts create mode 100644 services/worker/src/processors/getSourceVideoMetadata.ts create mode 100644 services/worker/src/processors/parentTask.ts create mode 100644 services/worker/src/processors/presignMuxAssets.ts create mode 100644 services/worker/src/processors/scheduleVodProcessing.ts create mode 100644 services/worker/src/processors/syncronizePatreon.ts create mode 100644 services/worker/src/queues/generalQueue.ts create mode 100644 services/worker/src/queues/gpuQueue.ts create mode 100644 services/worker/src/queues/highPriorityQueue.ts create mode 100644 services/worker/src/queues/parentQueue.ts create mode 100644 services/worker/src/util/b2.ts create mode 100644 services/worker/src/util/formatters.ts create mode 100644 services/worker/src/util/funscripts.ts create mode 100644 services/worker/src/util/pocketbase.ts create mode 100644 services/worker/src/util/vibeui.ts create mode 100644 services/worker/src/workers/generalWorker.ts create mode 100644 services/worker/src/workers/gpuWorker.ts create mode 100644 services/worker/src/workers/highPriorityWorker.ts create mode 100755 services/worker/systemd/test.sh create mode 100755 services/worker/systemd/up.sh create mode 100644 services/worker/systemd/worker.service diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..f9b5d352 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,130 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Scrappy deploy", + "type": "shell", + "command": "node utils/deploy.js", + "problemMatcher": [], + "options": { + "cwd": "services/pocketbase" + }, + "isBackground": false + }, + { + "label": "Run Tailscale", + "type": "shell", + "command": "tailscale funnel 8090", + "problemMatcher": [], + "isBackground": true + }, + { + "label": "Run postgres", + "type": "shell", + "command": "docker run -it -p 5439:5432 --rm --name futureporn-postgres -e POSTGRES_PASSWORD=password -e POSTGRES_USER=postgres -e POSTGRES_DB=future_porn postgres:17", + "problemMatcher": [], + "isBackground": true + }, + { + "label": "Run pgadmin", + "type": "shell", + "command": "docker run -it -p 5050:5050 --rm --name futureporn-pgadmin -e PGADMIN_LISTEN_PORT=5050 -e PGADMIN_DISABLE_POSTFIX=1 -e PGADMIN_DEFAULT_EMAIL=cj@futureporn.net -e PGADMIN_DEFAULT_PASSWORD=password dpage/pgadmin4", + "problemMatcher": [], + "isBackground": true, + }, + { + "label": "Run Docker Compose", + "type": "shell", + "command": "docker compose up", + "problemMatcher": [], + "options": { + "cwd": "services/our" + }, + "isBackground": true + }, + { + "label": "Run All Dev Terminals", + "dependsOn": [ + "Run Tailscale", + "Run Docker Compose", + "Run PNPM Dev" + ], + "problemMatcher": [] + }, + { + "label": "Run PNPM Dev", + "type": "shell", + "command": "pnpm run dev", + "options": { + "cwd": "services/our" + }, + "problemMatcher": [] + }, + { + "label": "Run MinIO", + "type": "shell", + "command": "docker run -it --name clipsterpro-minio --rm -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=user -e MINIO_ROOT_PASSWORD=password quay.io/minio/minio server /data --console-address \":9001\"", + "problemMatcher": [], + "isBackground": true, + "runOptions": { + "runOn": "folderOpen" + } + }, + { + "label": "Create MinIO Buckets", + "type": "shell", + "command": "until curl -s http://localhost:9000/minio/health/live; do echo 'Waiting for MinIO...'; sleep 1; done; bunx @dotenvx/dotenvx run -f .env.development.local -- ./packages/scripts/create_minio_buckets.sh", + "problemMatcher": [], + "isBackground": false, + "runOptions": { + "runOn": "folderOpen" + } + }, + { + "label": "Run Pocketbase", + "type": "shell", + "command": "npx @dotenvx/dotenvx run -f ./.env.development.local -- pocketbase serve --dev --dir ./pb_data", + "problemMatcher": [], + "isBackground": true, + "options": { + "cwd": "${workspaceFolder}/services/pocketbase" + }, + "runOptions": { + "runOn": "folderOpen" + } + }, + { + "label": "Run Worker", + "type": "shell", + "command": "npx @dotenvx/dotenvx run -f .env.development.local -- npx tsx --watch ./src/index.ts", + "problemMatcher": [], + "isBackground": true, + "options": { + "cwd": "${workspaceFolder}/services/worker" + }, + "runOptions": { + "runOn": "folderOpen" + } + }, + { + "label": "Run valkey", + "type": "shell", + "command": "docker run --name futureporn-valkey --rm -p 6379:6379 valkey/valkey", + "isBackground": true, + "problemMatcher": [], + "options": { + "cwd": "${workspaceFolder}/services/worker" + }, + "runOptions": { + "runOn": "folderOpen" + } + }, + { + "label": "Create test task via curl", + "type": "shell", + "command": "curl http://localhost:3000/task?title=fmv", + "isBackground": false, + "problemMatcher": [], + } + ] +} \ No newline at end of file diff --git a/services/pocketbase/package.json b/services/pocketbase/package.json index 45d80348..d1c23b40 100644 --- a/services/pocketbase/package.json +++ b/services/pocketbase/package.json @@ -1,6 +1,6 @@ { "name": "futureporn", - "version": "3.1.0", + "version": "3.1.3", "private": true, "description": "Dedication to the preservation of lewdtuber history", "license": "Unlicense", diff --git a/services/pocketbase/pb_hooks/pages/(site)/+layout.ejs b/services/pocketbase/pb_hooks/pages/(site)/+layout.ejs index 1d9b6e6c..1f0e799b 100644 --- a/services/pocketbase/pb_hooks/pages/(site)/+layout.ejs +++ b/services/pocketbase/pb_hooks/pages/(site)/+layout.ejs @@ -5,7 +5,7 @@ - <%=meta('title') || '~~~~~' %> + <%= meta('title') %> @@ -71,8 +71,11 @@ diff --git a/services/pocketbase/pb_hooks/pages/(site)/+middleware.js b/services/pocketbase/pb_hooks/pages/(site)/+middleware.js index a47fc53d..276b84e8 100644 --- a/services/pocketbase/pb_hooks/pages/(site)/+middleware.js +++ b/services/pocketbase/pb_hooks/pages/(site)/+middleware.js @@ -1,31 +1,18 @@ /** @type {import('pocketpages').PageDataLoaderFunc} */ -module.exports = function ({ meta, redirect, request, auth }) { - meta('title', 'Futureporn.net') - meta('description', 'Dedication to the preservation of Lewdtuber history') - meta('image', 'https://example.com/about-preview.jpg') - const cookies = request.cookies() - // console.log('cookies as follows') - // console.log(JSON.stringify(cookies)) - // console.log('auth as follows') - // console.log(auth) + +/** + * + * This middleware handles setting data.user for auth purposes + */ + +module.exports = function ({ meta, redirect, request, auth }) { let user; if (auth) { - console.log('request.auth is present id:', auth.get('id')) user = $app.findFirstRecordByData('users', 'id', auth.id); } - return { user, version: require(`../../../package.json`).version } + return { user } } - -// module.exports = (api, next) => { -// const { auth, redirect } = api -// if (!auth) { -// return redirect('/auth/login', { -// message: 'You must be logged in to access this page', -// }) -// } -// next() -// } diff --git a/services/pocketbase/pb_hooks/pages/(site)/account/index.ejs b/services/pocketbase/pb_hooks/pages/(site)/account/index.ejs index 01f4028f..306a7659 100644 --- a/services/pocketbase/pb_hooks/pages/(site)/account/index.ejs +++ b/services/pocketbase/pb_hooks/pages/(site)/account/index.ejs @@ -23,7 +23,7 @@

Account Settings

-