tvbox屏蔽源
This commit is contained in:
@@ -8,13 +8,13 @@
|
||||
> 🎬 **MoonTVPlus** 是基于 [MoonTV v100](https://github.com/MoonTechLab/LunaTV) 二次开发的增强版影视聚合播放器。它在原版基础上新增了外部播放器支持、视频超分、弹幕系统、评论抓取等实用功能,提供更强大的观影体验。
|
||||
|
||||
<div align="center">
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -346,6 +346,7 @@ dockge/komodo 等 docker compose UI 也有自动更新功能
|
||||
| NEXT_PUBLIC_DANMAKU_CACHE_EXPIRE_MINUTES | 弹幕缓存失效时间(分钟数,设为 0 时不缓存) | 0 或正整数 | 4320(3天) |
|
||||
| ENABLE_TVBOX_SUBSCRIBE | 是否启用 TVBOX 订阅功能 | true/false | false |
|
||||
| TVBOX_SUBSCRIBE_TOKEN | TVBOX 订阅 API 访问 Token,如启用TVBOX功能必须设置该项 | 任意字符串 | (空) |
|
||||
| TVBOX_BLOCKED_SOURCES | TVBOX 订阅屏蔽源列表(多个源用逗号分隔,匹配视频源的 key) | 逗号分隔的源 key | (空) |
|
||||
| WATCH_ROOM_ENABLED | 是否启用观影室功能(vercel部署不支持该功能,可使用外部服务器) | true/false | false |
|
||||
| WATCH_ROOM_SERVER_TYPE | 观影室服务器类型 | internal/external | internal |
|
||||
| WATCH_ROOM_EXTERNAL_SERVER_URL | 外部观影室服务器地址(当 SERVER_TYPE 为 external 时必填) | WebSocket URL | (空) |
|
||||
@@ -448,6 +449,8 @@ NEXT_PUBLIC_VOICE_CHAT_STRATEGY 选项解释:
|
||||
ENABLE_TVBOX_SUBSCRIBE=true
|
||||
# 设置订阅访问 Token(请使用强密码)
|
||||
TVBOX_SUBSCRIBE_TOKEN=your_secure_random_token
|
||||
# 可选:屏蔽特定视频源(多个源用逗号分隔,填写视频源的 key)
|
||||
TVBOX_BLOCKED_SOURCES=source1,source2
|
||||
```
|
||||
|
||||
2. 重启应用后,登录网站,点击用户菜单中的"订阅"按钮
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
import { NextRequest, NextResponse } from 'next/server';
|
||||
|
||||
import { getAuthInfoFromCookie } from '@/lib/auth';
|
||||
import { getAvailableApiSites, getConfig } from '@/lib/config';
|
||||
import { getCachedLiveChannels } from '@/lib/live';
|
||||
|
||||
@@ -36,15 +35,11 @@ export async function GET(request: NextRequest) {
|
||||
}
|
||||
|
||||
try {
|
||||
// 获取用户信息
|
||||
const authInfo = getAuthInfoFromCookie(request);
|
||||
const username = authInfo?.username;
|
||||
|
||||
// 获取配置
|
||||
const config = await getConfig();
|
||||
|
||||
// 获取视频源
|
||||
const apiSites = await getAvailableApiSites(username);
|
||||
// 获取视频源(TVBox客户端不会发送Cookie,直接获取所有启用的源)
|
||||
const apiSites = await getAvailableApiSites();
|
||||
|
||||
// 获取直播源
|
||||
const liveConfig = config.LiveConfig?.filter(live => !live.disabled) || [];
|
||||
@@ -160,6 +155,18 @@ export async function GET(request: NextRequest) {
|
||||
ads: [],
|
||||
};
|
||||
|
||||
// 获取屏蔽源列表并过滤
|
||||
const blockedSources = process.env.TVBOX_BLOCKED_SOURCES
|
||||
? process.env.TVBOX_BLOCKED_SOURCES.split(',').map(s => s.trim()).filter(Boolean)
|
||||
: [];
|
||||
|
||||
if (blockedSources.length > 0) {
|
||||
tvboxSubscription.sites = tvboxSubscription.sites.filter(
|
||||
site => !blockedSources.includes(site.key)
|
||||
);
|
||||
console.log('TVBOX 订阅已屏蔽源:', blockedSources);
|
||||
}
|
||||
|
||||
return NextResponse.json(tvboxSubscription, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json; charset=utf-8',
|
||||
|
||||
Reference in New Issue
Block a user