Merge pull request #2819 from iptv-org/patch-2025.07.2

Patch 2025.07.2
This commit is contained in:
PopeyeTheSai10r
2025-07-28 16:52:46 -07:00
committed by GitHub
3 changed files with 30 additions and 35 deletions
+8 -9
View File
@@ -1103,12 +1103,11 @@
} }
}, },
"node_modules/@eslint/plugin-kit": { "node_modules/@eslint/plugin-kit": {
"version": "0.3.2", "version": "0.3.4",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz", "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz",
"integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==", "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==",
"license": "Apache-2.0",
"dependencies": { "dependencies": {
"@eslint/core": "^0.15.0", "@eslint/core": "^0.15.1",
"levn": "^0.4.1" "levn": "^0.4.1"
}, },
"engines": { "engines": {
@@ -11156,11 +11155,11 @@
"integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==" "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="
}, },
"@eslint/plugin-kit": { "@eslint/plugin-kit": {
"version": "0.3.2", "version": "0.3.4",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz", "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz",
"integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==", "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==",
"requires": { "requires": {
"@eslint/core": "^0.15.0", "@eslint/core": "^0.15.1",
"levn": "^0.4.1" "levn": "^0.4.1"
} }
}, },
+13 -5
View File
@@ -32,6 +32,7 @@ async function main() {
let totalFiles = 0 let totalFiles = 0
let totalErrors = 0 let totalErrors = 0
let totalWarnings = 0
const storage = new Storage() const storage = new Storage()
const files = program.args.length ? program.args : await storage.list('sites/**/*.channels.xml') const files = program.args.length ? program.args : await storage.list('sites/**/*.channels.xml')
@@ -63,14 +64,14 @@ async function main() {
const foundChannel = channelsKeyById.get(channelId) const foundChannel = channelsKeyById.get(channelId)
if (!foundChannel) { if (!foundChannel) {
errors.push({ type: 'wrong_channel_id', ...channel }) errors.push({ type: 'wrong_channel_id', ...channel })
totalErrors++ totalWarnings++
} }
if (feedId) { if (feedId) {
const foundFeed = feedsKeyByStreamId.get(channel.xmltv_id) const foundFeed = feedsKeyByStreamId.get(channel.xmltv_id)
if (!foundFeed) { if (!foundFeed) {
errors.push({ type: 'wrong_feed_id', ...channel }) errors.push({ type: 'wrong_feed_id', ...channel })
totalErrors++ totalWarnings++
} }
} }
}) })
@@ -83,9 +84,16 @@ async function main() {
} }
} }
if (totalErrors > 0) { const totalProblems = totalWarnings + totalErrors
console.log(chalk.red(`${totalErrors} error(s) in ${totalFiles} file(s)`)) if (totalProblems > 0) {
process.exit(1) console.log(
chalk.red(
`${totalProblems} problems (${totalErrors} errors, ${totalWarnings} warnings) in ${totalFiles} file(s)`
)
)
if (totalErrors > 0) {
process.exit(1)
}
} }
} }
+9 -21
View File
@@ -23,48 +23,36 @@ describe('channels:validate', () => {
│ 0 │ 'duplicate' │ 'en' │ 'Bravo.us@East' │ '140' │ 'Bravo' │ │ 0 │ 'duplicate' │ 'en' │ 'Bravo.us@East' │ '140' │ 'Bravo' │
└─────────┴─────────────┴──────┴─────────────────┴─────────┴─────────┘ └─────────┴─────────────┴──────┴─────────────────┴─────────┴─────────┘
1 error(s) in 1 file(s) 1 problems (1 errors, 0 warnings) in 1 file(s)
`) `)
} }
}) })
it('will show a message if the file contains a channel with wrong channel id', () => { it('will show a message if the file contains a channel with wrong channel id', () => {
try { const cmd = `${ENV_VAR} npm run channels:validate --- tests/__data__/input/channels_validate/wrong_channel_id.channels.xml`
const cmd = `${ENV_VAR} npm run channels:validate --- tests/__data__/input/channels_validate/wrong_channel_id.channels.xml` const stdout = execSync(cmd, { encoding: 'utf8' })
const stdout = execSync(cmd, { encoding: 'utf8' }) expect(stdout).toContain(`
if (process.env.DEBUG === 'true') console.log(cmd, stdout)
process.exit(1)
} catch (error) {
expect((error as ExecError).status).toBe(1)
expect((error as ExecError).stdout).toContain(`
┌─────────┬────────────────────┬──────┬────────────────────┬─────────┬─────────────────────┐ ┌─────────┬────────────────────┬──────┬────────────────────┬─────────┬─────────────────────┐
│ (index) │ type │ lang │ xmltv_id │ site_id │ name │ │ (index) │ type │ lang │ xmltv_id │ site_id │ name │
├─────────┼────────────────────┼──────┼────────────────────┼─────────┼─────────────────────┤ ├─────────┼────────────────────┼──────┼────────────────────┼─────────┼─────────────────────┤
│ 0 │ 'wrong_channel_id' │ 'en' │ 'CNNInternational' │ '140' │ 'CNN International' │ │ 0 │ 'wrong_channel_id' │ 'en' │ 'CNNInternational' │ '140' │ 'CNN International' │
└─────────┴────────────────────┴──────┴────────────────────┴─────────┴─────────────────────┘ └─────────┴────────────────────┴──────┴────────────────────┴─────────┴─────────────────────┘
1 error(s) in 1 file(s) 1 problems (0 errors, 1 warnings) in 1 file(s)
`) `)
}
}) })
it('will show a message if the file contains a channel with wrong feed id', () => { it('will show a message if the file contains a channel with wrong feed id', () => {
try { const cmd = `${ENV_VAR} npm run channels:validate --- tests/__data__/input/channels_validate/wrong_feed_id.channels.xml`
const cmd = `${ENV_VAR} npm run channels:validate --- tests/__data__/input/channels_validate/wrong_feed_id.channels.xml` const stdout = execSync(cmd, { encoding: 'utf8' })
const stdout = execSync(cmd, { encoding: 'utf8' }) expect(stdout).toContain(`
if (process.env.DEBUG === 'true') console.log(cmd, stdout)
process.exit(1)
} catch (error) {
expect((error as ExecError).status).toBe(1)
expect((error as ExecError).stdout).toContain(`
┌─────────┬─────────────────┬──────┬─────────────────┬─────────┬─────────┐ ┌─────────┬─────────────────┬──────┬─────────────────┬─────────┬─────────┐
│ (index) │ type │ lang │ xmltv_id │ site_id │ name │ │ (index) │ type │ lang │ xmltv_id │ site_id │ name │
├─────────┼─────────────────┼──────┼─────────────────┼─────────┼─────────┤ ├─────────┼─────────────────┼──────┼─────────────────┼─────────┼─────────┤
│ 0 │ 'wrong_feed_id' │ 'en' │ 'Bravo.us@West' │ '150' │ 'Bravo' │ │ 0 │ 'wrong_feed_id' │ 'en' │ 'Bravo.us@West' │ '150' │ 'Bravo' │
└─────────┴─────────────────┴──────┴─────────────────┴─────────┴─────────┘ └─────────┴─────────────────┴──────┴─────────────────┴─────────┴─────────┘
1 error(s) in 1 file(s) 1 problems (0 errors, 1 warnings) in 1 file(s)
`) `)
}
}) })
}) })