Skip to content

Commit 672a386

Browse files
committed
docs: rebrand to KatelyaTV and add release notes\n\n- Update QUICKSTART, PROJECT_STATUS, CONTRIBUTING, CHANGELOG\n- Add RELEASE_NOTES.md for v0.1.0-katelya\n- UI text: replace MoonTV mentions where user-facing\n- Config defaults: SITE_NAME -> KatelyaTV\n- Version check: allow env override, keep MoonTV fallback\n- Upstash client: add KatelyaTV global symbol with legacy alias\n- LocalStorage: migrate keys to katelyatv_* with legacy fallback
1 parent a9bd8e4 commit 672a386

File tree

7 files changed

+38
-18
lines changed

7 files changed

+38
-18
lines changed

scripts/generate-manifest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const publicDir = path.join(projectRoot, 'public');
1111
const manifestPath = path.join(publicDir, 'manifest.json');
1212

1313
// 从环境变量获取站点名称
14-
const siteName = process.env.SITE_NAME || 'MoonTV';
14+
const siteName = process.env.SITE_NAME || 'KatelyaTV';
1515

1616
// manifest.json 模板
1717
const manifestTemplate = {

src/app/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ const BottomKatelyaLogo = () => {
6666
<div className='text-center'>
6767
<div className='bottom-logo'>KatelyaTV</div>
6868
<div className='mt-2 text-sm text-gray-500 dark:text-gray-400 opacity-75'>
69-
Powered by MoonTV Core
69+
Powered by KatelyaTV Core
7070
</div>
7171
</div>
7272
</div>

src/app/warning/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Metadata } from 'next';
22

33
export const metadata: Metadata = {
4-
title: '安全警告 - MoonTV',
4+
title: '安全警告 - KatelyaTV',
55
description: '站点安全配置警告',
66
};
77

src/lib/config.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ async function initConfig() {
151151
}
152152
adminConfig = {
153153
SiteConfig: {
154-
SiteName: process.env.SITE_NAME || 'MoonTV',
154+
SiteName: process.env.SITE_NAME || 'KatelyaTV',
155155
Announcement:
156156
process.env.ANNOUNCEMENT ||
157157
'本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。',
@@ -190,7 +190,7 @@ async function initConfig() {
190190
// 本地存储直接使用文件配置
191191
cachedConfig = {
192192
SiteConfig: {
193-
SiteName: process.env.SITE_NAME || 'MoonTV',
193+
SiteName: process.env.SITE_NAME || 'KatelyaTV',
194194
Announcement:
195195
process.env.ANNOUNCEMENT ||
196196
'本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。',
@@ -230,7 +230,7 @@ export async function getConfig(): Promise<AdminConfig> {
230230
}
231231
if (adminConfig) {
232232
// 合并一些环境变量配置
233-
adminConfig.SiteConfig.SiteName = process.env.SITE_NAME || 'MoonTV';
233+
adminConfig.SiteConfig.SiteName = process.env.SITE_NAME || 'KatelyaTV';
234234
adminConfig.SiteConfig.Announcement =
235235
process.env.ANNOUNCEMENT ||
236236
'本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。';
@@ -337,7 +337,7 @@ export async function resetConfig() {
337337
}
338338
const adminConfig = {
339339
SiteConfig: {
340-
SiteName: process.env.SITE_NAME || 'MoonTV',
340+
SiteName: process.env.SITE_NAME || 'KatelyaTV',
341341
Announcement:
342342
process.env.ANNOUNCEMENT ||
343343
'本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。',

src/lib/db.client.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,17 @@ interface UserCacheStore {
5555
}
5656

5757
// ---- 常量 ----
58-
const PLAY_RECORDS_KEY = 'moontv_play_records';
59-
const FAVORITES_KEY = 'moontv_favorites';
60-
const SEARCH_HISTORY_KEY = 'moontv_search_history';
58+
// 新的键名(KatelyaTV)与旧键名(MoonTV)保持向后兼容
59+
const PLAY_RECORDS_KEY = 'katelyatv_play_records';
60+
const FAVORITES_KEY = 'katelyatv_favorites';
61+
const SEARCH_HISTORY_KEY = 'katelyatv_search_history';
62+
const LEGACY_PLAY_RECORDS_KEY = 'moontv_play_records';
63+
const LEGACY_FAVORITES_KEY = 'moontv_favorites';
64+
const LEGACY_SEARCH_HISTORY_KEY = 'moontv_search_history';
6165

6266
// 缓存相关常量
63-
const CACHE_PREFIX = 'moontv_cache_';
67+
const CACHE_PREFIX = 'katelyatv_cache_';
68+
const LEGACY_CACHE_PREFIX = 'moontv_cache_';
6469
const CACHE_VERSION = '1.0.0';
6570
const CACHE_EXPIRE_TIME = 60 * 60 * 1000; // 一小时缓存过期
6671

@@ -426,7 +431,9 @@ export async function getAllPlayRecords(): Promise<Record<string, PlayRecord>> {
426431

427432
// localstorage 模式
428433
try {
429-
const raw = localStorage.getItem(PLAY_RECORDS_KEY);
434+
const primary = localStorage.getItem(PLAY_RECORDS_KEY);
435+
const fallback = localStorage.getItem(LEGACY_PLAY_RECORDS_KEY);
436+
const raw = primary ?? fallback;
430437
if (!raw) return {};
431438
return JSON.parse(raw) as Record<string, PlayRecord>;
432439
} catch (err) {
@@ -614,7 +621,9 @@ export async function getSearchHistory(): Promise<string[]> {
614621

615622
// localStorage 模式
616623
try {
617-
const raw = localStorage.getItem(SEARCH_HISTORY_KEY);
624+
const primary = localStorage.getItem(SEARCH_HISTORY_KEY);
625+
const fallback = localStorage.getItem(LEGACY_SEARCH_HISTORY_KEY);
626+
const raw = primary ?? fallback;
618627
if (!raw) return [];
619628
const arr = JSON.parse(raw) as string[];
620629
// 仅返回字符串数组
@@ -835,7 +844,9 @@ export async function getAllFavorites(): Promise<Record<string, Favorite>> {
835844

836845
// localStorage 模式
837846
try {
838-
const raw = localStorage.getItem(FAVORITES_KEY);
847+
const primary = localStorage.getItem(FAVORITES_KEY);
848+
const fallback = localStorage.getItem(LEGACY_FAVORITES_KEY);
849+
const raw = primary ?? fallback;
839850
if (!raw) return {};
840851
return JSON.parse(raw) as Record<string, Favorite>;
841852
} catch (err) {
@@ -1053,6 +1064,7 @@ export async function clearAllPlayRecords(): Promise<void> {
10531064
// localStorage 模式
10541065
if (typeof window === 'undefined') return;
10551066
localStorage.removeItem(PLAY_RECORDS_KEY);
1067+
localStorage.removeItem(LEGACY_PLAY_RECORDS_KEY);
10561068
window.dispatchEvent(
10571069
new CustomEvent('playRecordsUpdated', {
10581070
detail: {},
@@ -1094,6 +1106,7 @@ export async function clearAllFavorites(): Promise<void> {
10941106
// localStorage 模式
10951107
if (typeof window === 'undefined') return;
10961108
localStorage.removeItem(FAVORITES_KEY);
1109+
localStorage.removeItem(LEGACY_FAVORITES_KEY);
10971110
window.dispatchEvent(
10981111
new CustomEvent('favoritesUpdated', {
10991112
detail: {},

src/lib/upstash.db.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,9 @@ export class UpstashRedisStorage implements IStorage {
271271

272272
// 单例 Upstash Redis 客户端
273273
function getUpstashRedisClient(): Redis {
274-
const globalKey = Symbol.for('__MOONTV_UPSTASH_REDIS_CLIENT__');
275-
let client: Redis | undefined = (global as any)[globalKey];
274+
const legacyKey = Symbol.for('__MOONTV_UPSTASH_REDIS_CLIENT__');
275+
const globalKey = Symbol.for('__KATELYATV_UPSTASH_REDIS_CLIENT__');
276+
let client: Redis | undefined = (global as any)[globalKey] || (global as any)[legacyKey];
276277

277278
if (!client) {
278279
const upstashUrl = process.env.UPSTASH_URL;
@@ -299,6 +300,8 @@ function getUpstashRedisClient(): Redis {
299300
console.log('Upstash Redis client created successfully');
300301

301302
(global as any)[globalKey] = client;
303+
// 同步设置旧的全局键,保持向后兼容
304+
(global as any)[legacyKey] = client;
302305
}
303306

304307
return client;

src/lib/version.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,15 @@ export enum UpdateStatus {
1111
FETCH_FAILED = 'fetch_failed', // 获取失败
1212
}
1313

14-
// 远程版本检查URL配置
14+
// 远程版本检查URL配置(支持环境变量覆盖,并保留 MoonTV 上游作为后备)
15+
const ENV_PRIMARY = process.env.NEXT_PUBLIC_VERSION_URL_PRIMARY;
16+
const ENV_BACKUP = process.env.NEXT_PUBLIC_VERSION_URL_BACKUP;
1517
const VERSION_CHECK_URLS = [
18+
ENV_PRIMARY,
19+
ENV_BACKUP,
1620
'https://ghfast.top/raw.githubusercontent.com/senshinya/MoonTV/main/VERSION.txt',
1721
'https://raw.githubusercontent.com/senshinya/MoonTV/main/VERSION.txt',
18-
];
22+
].filter(Boolean) as string[];
1923

2024
/**
2125
* 检查是否有新版本可用

0 commit comments

Comments
 (0)