refactor: add custom helper for flags instead of package

This commit is contained in:
WebStreamr 2025-06-07 18:59:23 +00:00
parent f08670bb21
commit a56aea56a8
No known key found for this signature in database
7 changed files with 23 additions and 29 deletions

7
package-lock.json generated
View file

@ -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",

View file

@ -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",

View file

@ -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}`);

View file

@ -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';

18
src/utils/language.ts Normal file
View file

@ -0,0 +1,18 @@
import { CountryCode } from '../types';
const countryCodeMap: Record<CountryCode, { language: string; flag: string }> = {
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;
};

View file

@ -1,14 +0,0 @@
import { CountryCode } from '../types';
const countryCodeLanguageMap: Record<CountryCode, string> = {
de: 'German',
en: 'English',
es: 'Castilian Spanish',
fr: 'French',
it: 'Italian',
mx: 'Latin American Spanish',
};
export const languageFromCountryCode = (countryCode: CountryCode) => {
return countryCodeLanguageMap[countryCode];
};

View file

@ -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 = <T extends object>(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' }),
});
}