fix: migrations, auth, providers health check, E2E tests, remove neko-sama
CI / Test (Python 3.11) (push) Has been cancelled
CI / Test (Python 3.12) (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Type Check (push) Has been cancelled
CI / Summary (push) Has been cancelled

- Add proper Alembic initial migration (0001_initial_schema.py)
- Migrate refresh tokens from JSON file to SQLite (RefreshTokenTable)
- Remove Neko-Sama provider entirely (redirects to Gupy, not a host)
- Fix provider health check always showing UNKNOWN
  - Run check_all_health() on startup
  - Fix POST /providers/health/check background task bug
  - Add HTMX refresh after manual health check trigger
- Fix anime search relevance scoring with MIN_RELEVANCE_THRESHOLD=0.5
- Replace bare 'except:' with 'except Exception:' across codebase
- Add Playwright E2E test suite (12 tests, auth setup, helpers)
- Fix toast container blocking clicks via pointer-events: none
- Remove obsolete Jest/Vite test files and config
- Clean up obsolete test_watchlist scripts
- Update sonarr model comment for active providers
This commit is contained in:
Kimi Agent
2026-05-12 11:45:56 +00:00
parent 693615a7dc
commit 520be53901
47 changed files with 654 additions and 3437 deletions
+1 -1
View File
@@ -68,7 +68,7 @@ class DoodStreamDownloader(BaseVideoPlayer):
fname = self._extract_filename_from_headers(head_resp.headers)
if fname:
filename = fname
except:
except Exception:
pass
return download_url, filename
+2 -2
View File
@@ -102,7 +102,7 @@ class LpayerDownloader(BaseVideoPlayer):
try:
await page.mouse.click(640, 360)
await asyncio.sleep(3)
except:
except Exception:
pass
# Try JavaScript extraction to find video URLs in DOM
@@ -235,7 +235,7 @@ class LpayerDownloader(BaseVideoPlayer):
if browser:
try:
await browser.close()
except:
except Exception:
pass
"""Extract video URL using Playwright to render JavaScript"""
try:
+1 -1
View File
@@ -124,7 +124,7 @@ class OneuploadDownloader(BaseVideoPlayer):
await element.click()
await asyncio.sleep(2)
break
except:
except Exception:
continue
except Exception as e:
print(f"[ONEUPLOAD] Play button interaction: {e}")
+1 -1
View File
@@ -62,7 +62,7 @@ class RapidFileDownloader(BaseVideoPlayer):
filename = fname
else:
filename = download_url.split('/')[-1] or "rapidfile_download"
except:
except Exception:
filename = download_url.split('/')[-1] or "rapidfile_download"
return download_url, filename
+1 -1
View File
@@ -118,7 +118,7 @@ class SmoothpreDownloader(BaseVideoPlayer):
await element.click()
await asyncio.sleep(2)
break
except:
except Exception:
continue
except Exception as e:
print(f"[SMOOTHPRE] Play button interaction: {e}")
+1 -1
View File
@@ -42,7 +42,7 @@ class UnFichierDownloader(BaseVideoPlayer):
if not filename:
filename = href.split('/')[-1] or "downloaded_file"
return href, filename
except:
except Exception:
continue
raise Exception("Could not find download link on page")
+1 -1
View File
@@ -177,7 +177,7 @@ class VidMolyDownloader(BaseVideoPlayer):
await element.click()
await asyncio.sleep(3)
break
except:
except Exception:
continue
except Exception as e:
print(f"[VIDMOLY] Play button interaction: {e}")