From 978ab408ac279d668a8905ad26fb26147c4bc778 Mon Sep 17 00:00:00 2001 From: TheBeastLT Date: Mon, 8 May 2023 16:01:14 +0200 Subject: [PATCH] add latino language --- addon/lib/configuration.js | 2 +- addon/lib/landingTemplate.js | 2 +- addon/lib/languages.js | 14 ++++++-- addon/lib/sort.js | 18 +++------- addon/package-lock.json | 69 ++++++++++++++++++++++++++++++++---- addon/package.json | 3 +- 6 files changed, 83 insertions(+), 25 deletions(-) diff --git a/addon/lib/configuration.js b/addon/lib/configuration.js index 727f051..cafa194 100644 --- a/addon/lib/configuration.js +++ b/addon/lib/configuration.js @@ -1,6 +1,6 @@ const { DebridOptions } = require('../moch/options'); const { QualityFilter, Providers } = require('./filter'); -const { LanguageOptions } = require('./sort'); +const { LanguageOptions } = require('./languages'); const PRE_CONFIGURATIONS = { lite: { diff --git a/addon/lib/landingTemplate.js b/addon/lib/landingTemplate.js index 9b5a7c9..2486a75 100644 --- a/addon/lib/landingTemplate.js +++ b/addon/lib/landingTemplate.js @@ -186,7 +186,7 @@ a.install-link { `; const { Providers } = require('./filter'); const { SortOptions } = require('./sort'); -const { LanguageOptions } = require('./sort'); +const { LanguageOptions } = require('./languages'); const { QualityFilter } = require('./filter'); const { DebridOptions } = require('../moch/options'); const { MochOptions } = require('../moch/moch'); diff --git a/addon/lib/languages.js b/addon/lib/languages.js index 4853ee3..9342e66 100644 --- a/addon/lib/languages.js +++ b/addon/lib/languages.js @@ -6,9 +6,10 @@ const languageMapping = { 'english': '🇬🇧', 'japanese': '🇯🇵', 'russian': '🇷🇺', + 'italian': '🇮🇹', 'portuguese': '🇵🇹', 'spanish': '🇪🇸', - 'italian': '🇮🇹', + 'latino': '🇲🇽', 'korean': '🇰🇷', 'chinese': '🇨🇳', 'french': '🇫🇷', @@ -38,7 +39,14 @@ const languageMapping = { 'indonesian': '🇮🇩', '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) { const mapped = languages @@ -55,4 +63,4 @@ function containsLanguage(stream, languages) { return languages.map(lang => languageMapping[lang]).some(lang => stream.title.includes(lang)); } -module.exports = { mapLanguages, containsLanguage, languages } \ No newline at end of file +module.exports = { mapLanguages, containsLanguage, LanguageOptions } \ No newline at end of file diff --git a/addon/lib/sort.js b/addon/lib/sort.js index fbfeb0d..492c5a9 100644 --- a/addon/lib/sort.js +++ b/addon/lib/sort.js @@ -1,5 +1,5 @@ const { QualityFilter } = require('./filter'); -const { languages, containsLanguage } = require('./languages'); +const { containsLanguage, LanguageOptions } = require('./languages'); const { Type } = require("./types"); 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) { - const configLanguages = config[LanguageOptions.key]; - if (configLanguages && configLanguages.length && configLanguages[0] !== languages[0]) { + const languages = config[LanguageOptions.key]; + if (languages && languages.length && languages[0] !== '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)); return _sortStreams(streamsWithLanguage, config, type).concat(_sortStreams(streamsNoLanguage, config, type)); } @@ -161,5 +154,4 @@ function parseSize(sizeText) { } module.exports = sortStreams; -module.exports.SortOptions = SortOptions; -module.exports.LanguageOptions = LanguageOptions; \ No newline at end of file +module.exports.SortOptions = SortOptions; \ No newline at end of file diff --git a/addon/package-lock.json b/addon/package-lock.json index 69f18dc..07afedc 100644 --- a/addon/package-lock.json +++ b/addon/package-lock.json @@ -18,9 +18,10 @@ "debrid-link-api": "^1.0.1", "express-rate-limit": "^6.7.0", "magnet-uri": "^6.2.0", + "name-to-imdb": "^3.0.4", "named-queue": "^2.2.1", "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-hstore": "^2.3.4", "premiumize-api": "^1.0.3", @@ -559,6 +560,11 @@ "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": { "version": "0.6.2", "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", "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": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/named-queue/-/named-queue-2.2.1.tgz", "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": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -1407,8 +1439,8 @@ }, "node_modules/parse-torrent-title": { "version": "1.3.0", - "resolved": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", - "integrity": "sha512-0WMKI7xFRxKjOGunY91tlaDt7qquv/UwH96lxJ7fM5pY0SuGTLyNIP8fCJDLdzLnKrNviRU/keS2tRaPajlglQ==", + "resolved": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0", + "integrity": "sha512-WvITGLLWKXpKdNCyeYtaP+aa0xsMNW6gdCXvof+vw6mkVio180XSApD3z3p5kGrG32JeW5cw3VlAylEychyLpw==", "license": "MIT", "dependencies": { "moment": "^2.24.0" @@ -2835,6 +2867,11 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", "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": { "version": "0.6.2", "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", "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": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/named-queue/-/named-queue-2.2.1.tgz", "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": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -3463,9 +3520,9 @@ "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" }, "parse-torrent-title": { - "version": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", - "integrity": "sha512-0WMKI7xFRxKjOGunY91tlaDt7qquv/UwH96lxJ7fM5pY0SuGTLyNIP8fCJDLdzLnKrNviRU/keS2tRaPajlglQ==", - "from": "parse-torrent-title@git://github.com/TheBeastLT/parse-torrent-title.git#39ddb37b343f2028511a12180897dab974f35268", + "version": "git+ssh://git@github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0", + "integrity": "sha512-WvITGLLWKXpKdNCyeYtaP+aa0xsMNW6gdCXvof+vw6mkVio180XSApD3z3p5kGrG32JeW5cw3VlAylEychyLpw==", + "from": "parse-torrent-title@git://github.com/TheBeastLT/parse-torrent-title.git#f5aff1a444c5f82f2164c1041f306af9d3743ea0", "requires": { "moment": "^2.24.0" } diff --git a/addon/package.json b/addon/package.json index 3e8f6a7..6386255 100644 --- a/addon/package.json +++ b/addon/package.json @@ -17,9 +17,10 @@ "debrid-link-api": "^1.0.1", "express-rate-limit": "^6.7.0", "magnet-uri": "^6.2.0", + "name-to-imdb": "^3.0.4", "named-queue": "^2.2.1", "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-hstore": "^2.3.4", "premiumize-api": "^1.0.3",