refactor: add custom helper for flags instead of package
This commit is contained in:
parent
f08670bb21
commit
a56aea56a8
7 changed files with 23 additions and 29 deletions
7
package-lock.json
generated
7
package-lock.json
generated
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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}`);
|
||||
|
|
|
|||
|
|
@ -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
18
src/utils/language.ts
Normal 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;
|
||||
};
|
||||
|
|
@ -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];
|
||||
};
|
||||
|
|
@ -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' }),
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue