From d7291f73c984dc622473d42a9b95147099e61d00 Mon Sep 17 00:00:00 2001 From: Will Miao Date: Thu, 2 Jul 2026 10:28:03 +0800 Subject: [PATCH] fix(download): recognize civitai.red and civitai.green URLs in batch download (#1003) --- static/js/managers/DownloadManager.js | 4 ++-- tests/frontend/utils/hfUrlDetection.test.js | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/static/js/managers/DownloadManager.js b/static/js/managers/DownloadManager.js index 942b9ed8..f94548b8 100644 --- a/static/js/managers/DownloadManager.js +++ b/static/js/managers/DownloadManager.js @@ -463,8 +463,8 @@ export class DownloadManager { const trimmed = url.trim(); if (!trimmed) return null; - // CivitAI - if (/civitai\.com\/models\//i.test(trimmed) || /civitaiarchive|civarchive/i.test(trimmed)) { + // CivitAI — matches civitai.com, civitai.red, civitai.green, etc. + if (/civitai\.(?:com|red|green)\/models\//i.test(trimmed) || /civitaiarchive|civarchive/i.test(trimmed)) { // Will be parsed by existing CivitAI logic return { type: 'civitai' }; } diff --git a/tests/frontend/utils/hfUrlDetection.test.js b/tests/frontend/utils/hfUrlDetection.test.js index df39a286..8598d453 100644 --- a/tests/frontend/utils/hfUrlDetection.test.js +++ b/tests/frontend/utils/hfUrlDetection.test.js @@ -62,6 +62,20 @@ describe('DownloadManager.detectUrlType — HF URL detection', () => { expect(result).toEqual({ type: 'civitai' }); }); + it('detects CivitAI URL on civitai.red domain', () => { + const result = DownloadManager.detectUrlType( + 'https://civitai.red/models/12345/my-model' + ); + expect(result).toEqual({ type: 'civitai' }); + }); + + it('detects CivitAI URL on civitai.green domain', () => { + const result = DownloadManager.detectUrlType( + 'https://civitai.green/models/67890/another-model' + ); + expect(result).toEqual({ type: 'civitai' }); + }); + it('detects CivArchive URL', () => { const result = DownloadManager.detectUrlType( 'https://civarchive.com/models/456'