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

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

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