From 81434fff0e19e3df56d6069bfc62608fd8402192 Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Tue, 1 Jul 2025 15:46:30 +0000 Subject: [PATCH] feat: add Japanese and Korean to languages for VixSrc --- src/extractor/VixSrc.ts | 3 +-- src/types.ts | 2 ++ src/utils/config.test.ts | 8 +------- src/utils/config.ts | 18 +----------------- src/utils/language.ts | 2 ++ 5 files changed, 7 insertions(+), 26 deletions(-) diff --git a/src/extractor/VixSrc.ts b/src/extractor/VixSrc.ts index 7f67b15..1ccfa3a 100644 --- a/src/extractor/VixSrc.ts +++ b/src/extractor/VixSrc.ts @@ -3,7 +3,6 @@ import { Extractor } from './Extractor'; import { buildMediaFlowProxyExtractorStreamUrl, Fetcher, - getCountryCodes, iso639FromCountryCode, supportsMediaFlowProxy, } from '../utils'; @@ -66,7 +65,7 @@ export class VixSrc extends Extractor { const countryCodes: CountryCode[] = [CountryCode.it]; - getCountryCodes(ctx.config).forEach((countryCode) => { + (Object.keys(CountryCode) as CountryCode[]).forEach((countryCode) => { const iso639 = iso639FromCountryCode(countryCode); if (!countryCodes.includes(countryCode) && (new RegExp(`#EXT-X-MEDIA:TYPE=AUDIO.*LANGUAGE="${iso639}"`)).test(playlist)) { diff --git a/src/types.ts b/src/types.ts index cafa811..c21ea03 100644 --- a/src/types.ts +++ b/src/types.ts @@ -18,6 +18,8 @@ export enum CountryCode { es = 'es', fr = 'fr', it = 'it', + ja = 'ja', + ko = 'ko', mx = 'mx', } diff --git a/src/utils/config.test.ts b/src/utils/config.test.ts index c15cb41..e894e9a 100644 --- a/src/utils/config.test.ts +++ b/src/utils/config.test.ts @@ -1,13 +1,7 @@ -import { getCountryCodes, getDefaultConfig } from './config'; +import { getDefaultConfig } from './config'; describe('getDefaultConfig', () => { test('has English enabled', () => { expect(getDefaultConfig().en).toBe('on'); }); }); - -describe('getCountryCodes', () => { - test('returns only all country codes', () => { - expect(getCountryCodes({ de: 'on', en: 'on', includeExternalUrls: 'on' })).toStrictEqual(['de', 'en']); - }); -}); diff --git a/src/utils/config.ts b/src/utils/config.ts index 55c6688..0181cbe 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -1,23 +1,7 @@ -import { Config, CountryCode } from '../types'; +import { Config } from '../types'; export const getDefaultConfig = (): Config => { return { en: 'on' }; }; -const isCountryCode = (key: string): key is CountryCode => { - return Object.values(CountryCode).includes(key as CountryCode); -}; - -export const getCountryCodes = (config: Config): CountryCode[] => { - const countryCodes: CountryCode[] = []; - - for (const key in config) { - if (isCountryCode(key)) { - countryCodes.push(key); - } - } - - return countryCodes; -}; - export const showExternalUrls = (config: Config): boolean => 'includeExternalUrls' in config; diff --git a/src/utils/language.ts b/src/utils/language.ts index 54be2d4..b8c2dfd 100644 --- a/src/utils/language.ts +++ b/src/utils/language.ts @@ -7,6 +7,8 @@ const countryCodeMap: Record