Skip to content

Commit 4527b44

Browse files
committed
refactor: Switch server to always start with vidsrc server when multi enabled
1 parent e8a60e1 commit 4527b44

File tree

4 files changed

+23
-19
lines changed

4 files changed

+23
-19
lines changed

controllers/appController.multidomain.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,24 @@ describe('controllers/appController with MULTI_DOMAIN', () => {
4242
jest.clearAllMocks();
4343
});
4444

45-
test('getView uses multiembed for series', async () => {
45+
test('getView defaults to vidsrc for series when no preference set', async () => {
4646
(fetchOmdbData as jest.Mock).mockResolvedValue({});
4747
const req: any = { params: { q: '', id: 'tt', type: 'series', season: '1', episode: '1' }, user: { id: 'u1' } };
4848
const res: any = { locals: { APP_URL: 'http://app' }, render: jest.fn() };
4949
await appController.getView(req, res, jest.fn());
5050
expect(res.render).toHaveBeenCalledWith(
5151
'view',
5252
expect.objectContaining({
53-
iframeSrc: 'https://multi/?video_id=tt&s=1&e=1',
53+
iframeSrc: 'https://domain/embed/tv?imdb=tt&season=1&episode=1',
5454
server1Src: 'https://domain/embed/tv?imdb=tt&season=1&episode=1',
5555
server2Src: 'https://multi/?video_id=tt&s=1&e=1',
56-
currentServer: '2',
56+
currentServer: '1',
5757
serverPreferenceKey: 'preferredServer',
5858
})
5959
);
6060
});
6161

62-
test('getView uses multiembed for movie', async () => {
62+
test('getView defaults to vidsrc for movie when no preference set', async () => {
6363
(fetchOmdbData as jest.Mock).mockResolvedValue({});
6464
(History.findOneAndUpdate as jest.Mock).mockResolvedValue({ watched: false });
6565
const req: any = { params: { q: '', id: 'tt', type: 'movie' }, user: { id: 'u1' } };
@@ -68,10 +68,10 @@ describe('controllers/appController with MULTI_DOMAIN', () => {
6868
expect(res.render).toHaveBeenCalledWith(
6969
'view',
7070
expect.objectContaining({
71-
iframeSrc: 'https://multi/?video_id=tt',
71+
iframeSrc: 'https://domain/embed/movie/tt',
7272
server1Src: 'https://domain/embed/movie/tt',
7373
server2Src: 'https://multi/?video_id=tt',
74-
currentServer: '2',
74+
currentServer: '1',
7575
serverPreferenceKey: 'preferredServer',
7676
})
7777
);

helpers/appHelper.multidomain.spec.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,27 @@ jest.mock('../config/app', () => multiConfig);
3838
import { buildSources } from './appHelper';
3939

4040
describe('appHelper buildSources with MULTI_DOMAIN', () => {
41-
test('series sources prefer multi domain', () => {
41+
test('series sources default to vidsrc when no preference is stored', () => {
4242
const result = buildSources('tt123', 'series', {season: '1', episode: '5'});
4343
expect(result.server2Src).toBe('https://multi.example/?video_id=tt123&s=1&e=5');
44-
expect(result.currentServer).toBe('2');
44+
expect(result.currentServer).toBe('1');
45+
expect(result.iframeSrc).toBe('https://domain/embed/tv?imdb=tt123&season=1&episode=5');
4546
});
4647

47-
test('movie sources prefer multi domain', () => {
48+
test('movie sources default to vidsrc when no preference is stored', () => {
4849
const result = buildSources('tt123', 'movie');
4950
expect(result.server2Src).toBe('https://multi.example/?video_id=tt123');
50-
expect(result.currentServer).toBe('2');
51+
expect(result.currentServer).toBe('1');
52+
expect(result.iframeSrc).toBe('https://domain/embed/movie/tt123');
5153
});
5254

53-
test('preferred server overrides default when available', () => {
55+
test('preferred server overrides default when set to multi domain', () => {
5456
const result = buildSources('tt123', 'series', {
5557
season: '1',
5658
episode: '5',
57-
preferredServer: '1',
59+
preferredServer: '2',
5860
});
59-
expect(result.currentServer).toBe('1');
60-
expect(result.iframeSrc).toBe('https://domain/embed/tv?imdb=tt123&season=1&episode=5');
61+
expect(result.currentServer).toBe('2');
62+
expect(result.iframeSrc).toBe('https://multi.example/?video_id=tt123&s=1&e=5');
6163
});
6264
});

helpers/appHelper.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,16 +195,18 @@ describe('helpers/appHelper', () => {
195195
expect(sources.iframeSrc).toBe('https://domain/embed/tv?imdb=tt-series&season=&episode=');
196196
});
197197

198-
test('buildSources prefers MULTI_DOMAIN sources when configured', () => {
198+
test('buildSources exposes MULTI_DOMAIN sources but defaults to vidsrc', () => {
199199
jest.isolateModules(() => {
200200
mockAppConfig.MULTI_DOMAIN = 'multi.example';
201201
const mod = require('./appHelper');
202202
const seriesSources = mod.buildSources('tt2', 'series', {season: '1', episode: '3'});
203203
expect(seriesSources.server2Src).toBe('https://multi.example/?video_id=tt2&s=1&e=3');
204-
expect(seriesSources.currentServer).toBe('2');
204+
expect(seriesSources.currentServer).toBe('1');
205+
expect(seriesSources.iframeSrc).toBe('https://domain/embed/tv?imdb=tt2&season=1&episode=3');
205206
const movieSources = mod.buildSources('tt2', 'movie');
206207
expect(movieSources.server2Src).toBe('https://multi.example/?video_id=tt2');
207-
expect(movieSources.currentServer).toBe('2');
208+
expect(movieSources.currentServer).toBe('1');
209+
expect(movieSources.iframeSrc).toBe('https://domain/embed/movie/tt2');
208210
});
209211
mockAppConfig.MULTI_DOMAIN = '';
210212
});

helpers/appHelper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ const buildSources = (
7777
const server2Src = multiDomain
7878
? `https://${appConfig.MULTI_DOMAIN}/?video_id=${id}&s=${seasonParam}&e=${episodeParam}`
7979
: '';
80-
const useSecond = Boolean(server2Src) && preferredServer !== '1';
80+
const useSecond = Boolean(server2Src) && preferredServer === '2';
8181
const currentServer = useSecond ? '2' : '1';
8282
const iframeSrc = currentServer === '2' && server2Src ? server2Src : server1Src;
8383
return {server1Src, server2Src, iframeSrc, currentServer};
@@ -86,7 +86,7 @@ const buildSources = (
8686
const multiDomain = Boolean(appConfig.MULTI_DOMAIN);
8787
const server1Src = `https://${appConfig.VIDSRC_DOMAIN}/embed/movie/${id}`;
8888
const server2Src = multiDomain ? `https://${appConfig.MULTI_DOMAIN}/?video_id=${id}` : '';
89-
const useSecond = Boolean(server2Src) && preferredServer !== '1';
89+
const useSecond = Boolean(server2Src) && preferredServer === '2';
9090
const currentServer = useSecond ? '2' : '1';
9191
const iframeSrc = currentServer === '2' && server2Src ? server2Src : server1Src;
9292
return {server1Src, server2Src, iframeSrc, currentServer};

0 commit comments

Comments
 (0)