add latino language

This commit is contained in:
TheBeastLT
2023-05-08 16:01:14 +02:00
parent a63e377607
commit 978ab408ac
6 changed files with 83 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
const { DebridOptions } = require('../moch/options'); const { DebridOptions } = require('../moch/options');
const { QualityFilter, Providers } = require('./filter'); const { QualityFilter, Providers } = require('./filter');
const { LanguageOptions } = require('./sort'); const { LanguageOptions } = require('./languages');
const PRE_CONFIGURATIONS = { const PRE_CONFIGURATIONS = {
lite: { lite: {

View File

@@ -186,7 +186,7 @@ a.install-link {
`; `;
const { Providers } = require('./filter'); const { Providers } = require('./filter');
const { SortOptions } = require('./sort'); const { SortOptions } = require('./sort');
const { LanguageOptions } = require('./sort'); const { LanguageOptions } = require('./languages');
const { QualityFilter } = require('./filter'); const { QualityFilter } = require('./filter');
const { DebridOptions } = require('../moch/options'); const { DebridOptions } = require('../moch/options');
const { MochOptions } = require('../moch/moch'); const { MochOptions } = require('../moch/moch');

View File

@@ -6,9 +6,10 @@ const languageMapping = {
'english': '🇬🇧', 'english': '🇬🇧',
'japanese': '🇯🇵', 'japanese': '🇯🇵',
'russian': '🇷🇺', 'russian': '🇷🇺',
'italian': '🇮🇹',
'portuguese': '🇵🇹', 'portuguese': '🇵🇹',
'spanish': '🇪🇸', 'spanish': '🇪🇸',
'italian': '🇮🇹', 'latino': '🇲🇽',
'korean': '🇰🇷', 'korean': '🇰🇷',
'chinese': '🇨🇳', 'chinese': '🇨🇳',
'french': '🇫🇷', 'french': '🇫🇷',
@@ -38,7 +39,14 @@ const languageMapping = {
'indonesian': '🇮🇩', 'indonesian': '🇮🇩',
'thai': '🇹🇭' 'thai': '🇹🇭'
} }
const languages = Object.keys(languageMapping).slice(4);
const LanguageOptions = {
key: 'language',
options: Object.keys(languageMapping).slice(5).map(lang => ({
key: lang,
label: `${languageMapping[lang]} ${lang.charAt(0).toUpperCase()}${lang.slice(1)}`
}))
}
function mapLanguages(languages) { function mapLanguages(languages) {
const mapped = languages const mapped = languages
@@ -55,4 +63,4 @@ function containsLanguage(stream, languages) {
return languages.map(lang => languageMapping[lang]).some(lang => stream.title.includes(lang)); return languages.map(lang => languageMapping[lang]).some(lang => stream.title.includes(lang));
} }
module.exports = { mapLanguages, containsLanguage, languages } module.exports = { mapLanguages, containsLanguage, LanguageOptions }

View File

@@ -1,5 +1,5 @@
const { QualityFilter } = require('./filter'); const { QualityFilter } = require('./filter');
const { languages, containsLanguage } = require('./languages'); const { containsLanguage, LanguageOptions } = require('./languages');
const { Type } = require("./types"); const { Type } = require("./types");
const { hasMochConfigured } = require("../moch/moch"); const { hasMochConfigured } = require("../moch/moch");
@@ -31,19 +31,12 @@ const SortOptions = {
}, },
} }
} }
const LanguageOptions = {
key: 'language',
options: languages.slice(1).map(lang => ({
key: lang,
label: lang.charAt(0).toUpperCase() + lang.slice(1)
}))
}
function sortStreams(streams, config, type) { function sortStreams(streams, config, type) {
const configLanguages = config[LanguageOptions.key]; const languages = config[LanguageOptions.key];
if (configLanguages && configLanguages.length && configLanguages[0] !== languages[0]) { if (languages && languages.length && languages[0] !== 'english') {
// No need to filter english since it's hard to predict which entries are english // No need to filter english since it's hard to predict which entries are english
const streamsWithLanguage = streams.filter(stream => containsLanguage(stream, configLanguages)); const streamsWithLanguage = streams.filter(stream => containsLanguage(stream, languages));
const streamsNoLanguage = streams.filter(stream => !streamsWithLanguage.includes(stream)); const streamsNoLanguage = streams.filter(stream => !streamsWithLanguage.includes(stream));
return _sortStreams(streamsWithLanguage, config, type).concat(_sortStreams(streamsNoLanguage, config, type)); return _sortStreams(streamsWithLanguage, config, type).concat(_sortStreams(streamsNoLanguage, config, type));
} }
@@ -161,5 +154,4 @@ function parseSize(sizeText) {
} }
module.exports = sortStreams; module.exports = sortStreams;
module.exports.SortOptions = SortOptions; module.exports.SortOptions = SortOptions;
module.exports.LanguageOptions = LanguageOptions;

View File

@@ -18,9 +18,10 @@
"debrid-link-api": "^1.0.1", "debrid-link-api": "^1.0.1",
"express-rate-limit": "^6.7.0", "express-rate-limit": "^6.7.0",
"magnet-uri": "^6.2.0", "magnet-uri": "^6.2.0",
"name-to-imdb": "^3.0.4",
"named-queue": "^2.2.1", "named-queue": "^2.2.1",
"offcloud-api": "^1.0.0", "offcloud-api": "^1.0.0",
"parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", "parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0",
"pg": "^8.8.0", "pg": "^8.8.0",
"pg-hstore": "^2.3.4", "pg-hstore": "^2.3.4",
"premiumize-api": "^1.0.3", "premiumize-api": "^1.0.3",
@@ -559,6 +560,11 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/diacritics": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz",
"integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA=="
},
"node_modules/docopt": { "node_modules/docopt": {
"version": "0.6.2", "version": "0.6.2",
"resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
@@ -1279,11 +1285,37 @@
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
}, },
"node_modules/name-to-imdb": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/name-to-imdb/-/name-to-imdb-3.0.4.tgz",
"integrity": "sha512-OVmDvWoAZso2eHxK51UK7TMIpUpM4LnI3KhvvZe+JkDatEda9WS3/YXZVQnand5skI38shoniOFcyrw08QsNeA==",
"dependencies": {
"diacritics": "~1.3.0",
"named-queue": "^2.1.0",
"needle": "^1.1.2",
"node-fetch": "^2.2.0"
}
},
"node_modules/named-queue": { "node_modules/named-queue": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/named-queue/-/named-queue-2.2.1.tgz", "resolved": "https://registry.npmjs.org/named-queue/-/named-queue-2.2.1.tgz",
"integrity": "sha1-GBRURVNZnVqeQD0N+pN6TODR5qc=" "integrity": "sha1-GBRURVNZnVqeQD0N+pN6TODR5qc="
}, },
"node_modules/needle": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/needle/-/needle-1.6.0.tgz",
"integrity": "sha512-ogVK1D/Cgemw2vM1KJN6B83DwcKbDepdkMNtVJcXIe+xoaCOdC+aJHzhEov7xjsY9S7rBIuHP59W1fLsbGqDhA==",
"dependencies": {
"debug": "^2.1.2",
"iconv-lite": "^0.4.4"
},
"bin": {
"needle": "bin/needle"
},
"engines": {
"node": ">= 0.10.x"
}
},
"node_modules/negotiator": { "node_modules/negotiator": {
"version": "0.6.3", "version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -1407,8 +1439,8 @@
}, },
"node_modules/parse-torrent-title": { "node_modules/parse-torrent-title": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", "resolved": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0",
"integrity": "sha512-0WMKI7xFRxKjOGunY91tlaDt7qquv/UwH96lxJ7fM5pY0SuGTLyNIP8fCJDLdzLnKrNviRU/keS2tRaPajlglQ==", "integrity": "sha512-WvITGLLWKXpKdNCyeYtaP+aa0xsMNW6gdCXvof+vw6mkVio180XSApD3z3p5kGrG32JeW5cw3VlAylEychyLpw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"moment": "^2.24.0" "moment": "^2.24.0"
@@ -2835,6 +2867,11 @@
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
"integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA=="
}, },
"diacritics": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz",
"integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA=="
},
"docopt": { "docopt": {
"version": "0.6.2", "version": "0.6.2",
"resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
@@ -3374,11 +3411,31 @@
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
}, },
"name-to-imdb": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/name-to-imdb/-/name-to-imdb-3.0.4.tgz",
"integrity": "sha512-OVmDvWoAZso2eHxK51UK7TMIpUpM4LnI3KhvvZe+JkDatEda9WS3/YXZVQnand5skI38shoniOFcyrw08QsNeA==",
"requires": {
"diacritics": "~1.3.0",
"named-queue": "^2.1.0",
"needle": "^1.1.2",
"node-fetch": "^2.2.0"
}
},
"named-queue": { "named-queue": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/named-queue/-/named-queue-2.2.1.tgz", "resolved": "https://registry.npmjs.org/named-queue/-/named-queue-2.2.1.tgz",
"integrity": "sha1-GBRURVNZnVqeQD0N+pN6TODR5qc=" "integrity": "sha1-GBRURVNZnVqeQD0N+pN6TODR5qc="
}, },
"needle": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/needle/-/needle-1.6.0.tgz",
"integrity": "sha512-ogVK1D/Cgemw2vM1KJN6B83DwcKbDepdkMNtVJcXIe+xoaCOdC+aJHzhEov7xjsY9S7rBIuHP59W1fLsbGqDhA==",
"requires": {
"debug": "^2.1.2",
"iconv-lite": "^0.4.4"
}
},
"negotiator": { "negotiator": {
"version": "0.6.3", "version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -3463,9 +3520,9 @@
"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
}, },
"parse-torrent-title": { "parse-torrent-title": {
"version": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", "version": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0",
"integrity": "sha512-0WMKI7xFRxKjOGunY91tlaDt7qquv/UwH96lxJ7fM5pY0SuGTLyNIP8fCJDLdzLnKrNviRU/keS2tRaPajlglQ==", "integrity": "sha512-WvITGLLWKXpKdNCyeYtaP+aa0xsMNW6gdCXvof+vw6mkVio180XSApD3z3p5kGrG32JeW5cw3VlAylEychyLpw==",
"from": "parse-torrent-title@git://github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", "from": "parse-torrent-title@git://github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0",
"requires": { "requires": {
"moment": "^2.24.0" "moment": "^2.24.0"
} }

View File

@@ -17,9 +17,10 @@
"debrid-link-api": "^1.0.1", "debrid-link-api": "^1.0.1",
"express-rate-limit": "^6.7.0", "express-rate-limit": "^6.7.0",
"magnet-uri": "^6.2.0", "magnet-uri": "^6.2.0",
"name-to-imdb": "^3.0.4",
"named-queue": "^2.2.1", "named-queue": "^2.2.1",
"offcloud-api": "^1.0.0", "offcloud-api": "^1.0.0",
"parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", "parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0",
"pg": "^8.8.0", "pg": "^8.8.0",
"pg-hstore": "^2.3.4", "pg-hstore": "^2.3.4",
"premiumize-api": "^1.0.3", "premiumize-api": "^1.0.3",