From 57ad6f4e0b12e94035e071c1be5eade2d4dd6f25 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Fri, 20 Dec 2024 10:05:26 +0300 Subject: [PATCH] Update playlistParser.ts Fixes https://github.com/iptv-org/iptv/issues/17533 --- scripts/core/playlistParser.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/core/playlistParser.ts b/scripts/core/playlistParser.ts index 192fa5a45..cae8ffb4f 100644 --- a/scripts/core/playlistParser.ts +++ b/scripts/core/playlistParser.ts @@ -53,8 +53,13 @@ export class PlaylistParser { function parseTitle(title: string): { name: string; label: string; quality: string } { const [, label] = title.match(/ \[(.*)\]$/) || [null, ''] - const [, quality] = title.match(/ \(([0-9]+p)\)/) || [null, ''] - const name = title.replace(` (${quality})`, '').replace(` [${label}]`, '') + title = title.replace(new RegExp(` \\[${escapeRegExp(label)}\\]$`), '') + const [, quality] = title.match(/ \(([0-9]+p)\)$/) || [null, ''] + title = title.replace(new RegExp(` \\(${quality}\\)$`), '') - return { name, label, quality } + return { name: title, label, quality } +} + +function escapeRegExp(text) { + return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') }