From 8756b26d7f849df928d1364270dac147071083ab Mon Sep 17 00:00:00 2001 From: Alejandro Akbal <37181533+AlejandroAkbal@users.noreply.github.com> Date: Tue, 23 Jun 2026 13:32:05 +0700 Subject: [PATCH 1/7] Fix proxied video poster loading for blocked booru CDNs. Route video preview thumbnails through imgproxy under the same rules as feed images, add a premium CORS-proxy fallback when posters still fail, and keep PocketBase auth state in sync so premium retries run reliably. --- app/assets/js/nuxt-image/get-imgproxy-url.ts | 12 ++ app/components/pages/posts/post/PostMedia.vue | 83 +++++++++---- app/composables/usePocketbase.ts | 10 -- app/composables/useUserData.ts | 22 ++-- app/plugins/030.pocketbase.ts | 23 ++++ test/assets/get-imgproxy-url.test.ts | 30 +++++ test/pages/posts-video-proxy.test.ts | 110 ++++++++++++++++++ test/pages/posts.mock-data.ts | 43 +++++++ test/pages/posts.test.ts | 8 +- test/server-mocks/plugin.ts | 5 + 10 files changed, 297 insertions(+), 49 deletions(-) create mode 100644 app/assets/js/nuxt-image/get-imgproxy-url.ts create mode 100644 test/assets/get-imgproxy-url.test.ts create mode 100644 test/pages/posts-video-proxy.test.ts diff --git a/app/assets/js/nuxt-image/get-imgproxy-url.ts b/app/assets/js/nuxt-image/get-imgproxy-url.ts new file mode 100644 index 000000000..eee350d99 --- /dev/null +++ b/app/assets/js/nuxt-image/get-imgproxy-url.ts @@ -0,0 +1,12 @@ +import { project } from '../../../../config/project' +import imgproxyProvider from './imgproxy.provider' + +export function getImgproxyUrl(src: string) { + const { url } = imgproxyProvider().getImage(src, { + baseUrl: project.imgproxy.baseUrl, + internalProxyUrl: project.imgproxy.internalProxyUrl, + mediaProxyUrls: project.imgproxy.mediaProxyUrls + }) + + return url +} diff --git a/app/components/pages/posts/post/PostMedia.vue b/app/components/pages/posts/post/PostMedia.vue index e04be94f2..d45130dfc 100644 --- a/app/components/pages/posts/post/PostMedia.vue +++ b/app/components/pages/posts/post/PostMedia.vue @@ -1,6 +1,7 @@