diff --git a/package-lock.json b/package-lock.json index f470b5e..f635480 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,6 @@ "async-mutex": "^0.5.0", "bytes": "^3.1.2", "cheerio": "^1.0.0", - "country-emoji": "^1.5.6", "express": "^5.1.0", "http-cache-semantics": "^4.2.0", "randomstring": "^1.3.1", @@ -2752,12 +2751,6 @@ "node": ">=6.6.0" } }, - "node_modules/country-emoji": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/country-emoji/-/country-emoji-1.5.6.tgz", - "integrity": "sha512-pSB8OOROfimFc2bcN+H41DuzXYIod/JQ6SgF4pYXkRCm9f8uF1JAJ0vXPhenug6xkpt3Gv33mdypMXB49CJWRA==", - "license": "MIT" - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", diff --git a/package.json b/package.json index c347a79..e8367f3 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "async-mutex": "^0.5.0", "bytes": "^3.1.2", "cheerio": "^1.0.0", - "country-emoji": "^1.5.6", "express": "^5.1.0", "http-cache-semantics": "^4.2.0", "randomstring": "^1.3.1", diff --git a/src/utils/StreamResolver.ts b/src/utils/StreamResolver.ts index 83f6768..ab1d87f 100644 --- a/src/utils/StreamResolver.ts +++ b/src/utils/StreamResolver.ts @@ -1,11 +1,10 @@ import { Stream } from 'stremio-addon-sdk'; -import { flag } from 'country-emoji'; import winston from 'winston'; import bytes from 'bytes'; import { Context, TIMEOUT, UrlResult } from '../types'; import { Handler } from '../handler'; import { BlockedError, HttpError, NotFoundError, QueueIsFullError } from '../error'; -import { languageFromCountryCode } from './languageFromCountryCode'; +import { flagFromCountryCode, languageFromCountryCode } from './language'; import { envGetAppName } from './env'; interface ResolveResponse { @@ -192,7 +191,7 @@ export class StreamResolver { } if (urlResult.meta.countryCode) { - titleLines.push(`🌐 ${languageFromCountryCode(urlResult.meta.countryCode)} ${flag(urlResult.meta.countryCode)}`); + titleLines.push(`🌐 ${languageFromCountryCode(urlResult.meta.countryCode)} ${flagFromCountryCode(urlResult.meta.countryCode)}`); } titleLines.push(`🔗 ${urlResult.label}`); diff --git a/src/utils/index.ts b/src/utils/index.ts index 0eec46f..30fd189 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -3,6 +3,6 @@ export * from './Fetcher'; export * from './StreamResolver'; export * from './embed'; export * from './imdb'; -export * from './languageFromCountryCode'; +export * from './language'; export * from './manifest'; export * from './tmdb'; diff --git a/src/utils/language.ts b/src/utils/language.ts new file mode 100644 index 0000000..528ea90 --- /dev/null +++ b/src/utils/language.ts @@ -0,0 +1,18 @@ +import { CountryCode } from '../types'; + +const countryCodeMap: Record = { + de: { language: 'German', flag: '🇩🇪' }, + en: { language: 'English', flag: '🇺🇸' }, + es: { language: 'Castilian Spanish', flag: '🇪🇸' }, + fr: { language: 'French', flag: '🇫🇷' }, + it: { language: 'Italian', flag: '🇮🇹' }, + mx: { language: 'Latin American Spanish', flag: '🇲🇽' }, +}; + +export const languageFromCountryCode = (countryCode: CountryCode) => { + return countryCodeMap[countryCode].language; +}; + +export const flagFromCountryCode = (countryCode: CountryCode) => { + return countryCodeMap[countryCode].flag; +}; diff --git a/src/utils/languageFromCountryCode.ts b/src/utils/languageFromCountryCode.ts deleted file mode 100644 index cda9e3f..0000000 --- a/src/utils/languageFromCountryCode.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { CountryCode } from '../types'; - -const countryCodeLanguageMap: Record = { - de: 'German', - en: 'English', - es: 'Castilian Spanish', - fr: 'French', - it: 'Italian', - mx: 'Latin American Spanish', -}; - -export const languageFromCountryCode = (countryCode: CountryCode) => { - return countryCodeLanguageMap[countryCode]; -}; diff --git a/src/utils/manifest.ts b/src/utils/manifest.ts index dfb66c0..ee66b5d 100644 --- a/src/utils/manifest.ts +++ b/src/utils/manifest.ts @@ -1,8 +1,7 @@ -import { flag } from 'country-emoji'; import { Handler } from '../handler'; import { Config, CountryCode, ManifestWithConfig } from '../types'; import { envGetAppId, envGetAppName } from './env'; -import { languageFromCountryCode } from './languageFromCountryCode'; +import { flagFromCountryCode, languageFromCountryCode } from './language'; const typedEntries = (obj: T): [keyof T, T[keyof T]][] => (Object.entries(obj) as [keyof T, T[keyof T]][]); @@ -46,7 +45,7 @@ export const buildManifest = (handlers: Handler[], config: Config): ManifestWith manifest.config.push({ key: countryCode, type: 'checkbox', - title: `${languageFromCountryCode(countryCode)} ${flag(countryCode)} (${(handlers as Handler[]).map(handler => handler.label).join(', ')})`, + title: `${languageFromCountryCode(countryCode)} ${flagFromCountryCode(countryCode)} (${(handlers as Handler[]).map(handler => handler.label).join(', ')})`, ...(countryCode in config && { default: 'checked' }), }); }