43 Commits
Author SHA1 Message Date
can4hou6joeng4 b63f94fed4 fix(sync): 丢弃缺少 videoId 的同步记录,避免整页崩溃
服务端同步恢复回来的记录不保证结构完整(旧结构或半截写入)。缺少 videoId
的记录会让 HistoryItem.tsx:24 与 FavoritesItem.tsx:21 在渲染期拼播放地址
时对 undefined 调用 toString(),抛出未捕获异常。由于 getVideoUrl() 是在
渲染 href 时调用的,React 会直接卸载整棵树,首页白屏且刷新无效——该账号
只能靠直接改库才能恢复。

新增 lib/utils/sync-records.ts 做可渲染性判定(要求 videoId、source、
title 齐备),在云端拉取入口 useCloudSync 与 HistoryList / FavoritesList
各过滤一次:脏数据进不来,已经落库的也渲染不出来。
2026-07-31 18:28:35 +08:00
kuekhaoyang 907f393e2f fix: keep floating buttons anchored on resize 2026-07-27 21:13:08 +08:00
kuekhaoyang 66d8564dd2 fix issue 210 slow source search reliability 2026-07-13 21:09:47 +08:00
kuekhaoyang 49951c67ef Fix source resolution badge probing 2026-04-16 16:31:17 +08:00
kuekhaoyang 19e9707041 Fix managed auth and source list regressions 2026-04-15 23:04:41 +08:00
kuekhaoyang 37b6e160d7 fix remaining issue 72 ui and iptv regressions 2026-04-02 22:14:46 +08:00
kuekhaoyang 91a89e8bf2 Fix issue #72 follow-ups and IPTV source handling 2026-03-26 14:16:58 +08:00
kuekhaoyang 35f7f4d83a feat: upgrade player fullscreen buffering and panel controls 2026-03-26 13:51:45 +08:00
kuekhaoyang 3564ce1ede chore: update package versions and add user config sync API
- Bump version to 4.8.0 and update dependencies in package.json
- Implement user config sync API for cross-device settings persistence
- Add resolution badge auto-hide hook for improved user experience
- Create useConfigSync hook to manage user settings synchronization with the server
2026-03-18 12:44:05 +08:00
kuekhaoyang f7a166ea19 feat: implement Probe Resolution API and add useResolutionProbe hook for video resolution detection 2026-03-12 23:34:00 +08:00
vvwnandGitHub 224ec37e40 Implement useCloudSync hook for cloud data sync 2026-02-24 14:25:13 +08:00
kuekhaoyang c0fcfcc4ac feat: implement IPTV channel search debouncing and pagination, add video source auto-fallback, and improve type normalization. 2026-02-19 14:27:17 +08:00
kuekhaoyang 9ea9f85507 feat: Implement user-defined video sources and danmaku API management with new settings pages and a dedicated store. 2026-02-19 11:56:14 +08:00
kuekhaoyang e1ea1a0d9a feat: Implement IPTV access control, enhance IPTV player with keyboard shortcuts, auto-refresh source latencies, normalize video type names, and persist source badge expansion state. 2026-02-18 11:53:42 +08:00
kuekhaoyang 91280f250f feat: Enhance spatial navigation for TV remotes by making more components focusable, improving input field handling, and refining video card image fallback UI. 2026-02-17 12:56:22 +08:00
kuekhaoyang 338981dadb feat: Add initial support for Android TV and Apple TV platforms, introduce a dedicated premium mode settings store, and implement personalized video recommendations. 2026-02-17 12:00:07 +08:00
kuekhaoyang a8c4586859 fix: Accumulate video counts per source across search result pages in search action. 2026-02-16 22:19:53 +08:00
kuekhaoyang e95fae4284 feat: Implement language filtering and display language information across video components. 2026-02-16 22:08:25 +08:00
kuekhaoyang bc25be5b05 feat: Implement parallel multi-page fetching from each search source and introduce client-side load more pagination for aggregated results. 2026-02-16 11:32:20 +08:00
kuekhaoyang d54039663a feat: Implement premium search history, add 'auto' fullscreen option, and update project version. 2026-02-16 11:10:09 +08:00
kuekhaoyang 30600e4d95 feat: Implement scroll position management with a new setting, add a back-to-top button, and extend search cache duration. 2026-01-25 15:42:21 +08:00
kuekhaoyang 7368582398 . 2026-01-25 15:02:46 +08:00
kuekhaoyang 198ca2ddd7 feat: Implement URL state persistence for search queries, source filters, and type filters, and update search form styling. 2026-01-25 14:55:38 +08:00
Troray 3d3a7d445b update useVideoPlayer.ts 2026-01-24 03:07:08 +08:00
Troray 1b09998cdf fix(VideoPlayer): 处理 sourceopen 与浏览器差异
- 优化 useEffect 逻辑,当 source 变化时重置状态
- 确保数据重新获取时显示正确的加载状态
2026-01-24 02:46:44 +08:00
kuekhaoyang 24f870a40c feat: Integrate subscription synchronization and initialize new subscriptions with lastUpdated: 0. 2026-01-15 17:21:53 +08:00
Troray 430336c4c1 Update useSubscriptionSync.ts 2026-01-14 02:32:55 +08:00
Troray dfdeef04a7 fix: stop infinite requests after adding new subscription
Adding a new subscription triggered an infinite loop of JSON fetches
because useSubscriptionSync was subscribing to settingsStore changes,
which caused a cycle: store change → state update → sync → save →
store change.
- Remove settingsStore subscription to break the infinite loop
- Add refs to ensure sync runs only once per component mount
- Enable 5-minute cooldown to prevent redundant syncs
2026-01-14 01:43:32 +08:00
kuekhaoyang 04aa734ff8 Update 2026-01-13 16:32:01 +08:00
kuekhaoyang b11e762350 Update 2026-01-13 16:04:13 +08:00
Troray beba6a6cbe fix(search): resolve infinite loop and refactor useHomePage hook
- 修复逻辑缺陷:移除了导致死循环的条件,并引入 Ref 追踪状态,解决了“无结果死循环”和“异步源加载导致的重复搜索”问题。
 - 代码重构 (DRY):新增 executeSearch 复用核心逻辑。
 - Hook 优化:完善了 useCallback 和 useEffect 的依赖管理,提升 React 渲染性能。
2026-01-11 00:35:16 +08:00
kuekhaoyang 26cfa10c3a feat: Replace adult and secret content features with a new premium content system. 2026-01-04 19:04:27 +08:00
kuekhaoyang d7cd4c6e36 feat: Improve hook stability and performance with useCallback and useMemo, and enhance auto-skip and search error handling. 2026-01-04 18:18:47 +08:00
kuekhaoyang e9d060f74a chore: remove PWA installation banner, associated hooks, manifest, and PWA metadata from the application. 2026-01-02 14:08:50 +08:00
kuekhaoyang cb0dee9469 feat: Implement PWA installation prompt and banner. 2026-01-02 14:04:23 +08:00
kuekhaoyang c5e2397f2a feat: implement secret mode with separate history and favorites, and dedicated player links 2026-01-02 13:54:27 +08:00
kuekhaoyang f379c52e76 feat: Implement video stall detection, next episode loading UI, and persist playback rate across sessions. 2026-01-02 13:17:10 +08:00
kuekhaoyang d8da86054c fix: Improve useHomePage search logic to retry searches when sources become available and prevent empty queries. 2025-12-30 11:58:47 +08:00
kuekhaoyang c920a3160a feat: Introduce display settings for real-time latency and search mode, enhance video player controls, and add a generic UI switch component. 2025-12-29 10:48:25 +08:00
kuekhaoyang 7c1f1db046 refactor: remove runtime fetching of environment subscriptions and envSubscriptionsSet state. 2025-12-25 16:38:27 +08:00
kuekhaoyang 48d6568a70 feat: add support for environment variable defined subscription sources and runtime config API 2025-12-25 16:25:53 +08:00
kuekhaoyang 609fba7571 feat: Implement automatic subscription source syncing, initialize subscriptions from environment, and integrate into home page. 2025-12-25 12:11:46 +08:00
kuekhaoyang 43a35e3f47 new 2025-12-24 23:53:24 +08:00