From 4d2968a308268d8e6a872001fb0eaf37b2c185f4 Mon Sep 17 00:00:00 2001 From: marco <10120390+mac12m99@users.noreply.github.com> Date: Thu, 10 Aug 2023 13:19:29 +0200 Subject: [PATCH] decoratore scrape, aggiunto parametro flags e flagsBlock per modifica flag regex --- channels/ilcorsaronero.py | 2 +- core/scrapertools.py | 4 ++-- core/support.py | 12 +++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/channels/ilcorsaronero.py b/channels/ilcorsaronero.py index e65fab47..81b0da61 100644 --- a/channels/ilcorsaronero.py +++ b/channels/ilcorsaronero.py @@ -52,7 +52,7 @@ def peliculas(item): patron = r'>[^"<]+' else: patron = r'>(?P[^"<]+)' - patron += '(?i)]+>[^<]+<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P[^<]+)<[^>]+>[^>]+>[^>]+>
[^"]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P[^<]+)' + patron += ']+>[^<]+<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P[^<]+)<[^>]+>[^>]+>[^>]+>[^"]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P[^<]+)' def itemHook(item): if not sceneTitle: diff --git a/core/scrapertools.py b/core/scrapertools.py index f90f6f8d..c8357a82 100644 --- a/core/scrapertools.py +++ b/core/scrapertools.py @@ -63,8 +63,8 @@ def find_multiple_matches(text, pattern): return re.findall(pattern, text, re.DOTALL) -def find_multiple_matches_groups(text, pattern): - r = re.compile(pattern) +def find_multiple_matches_groups(text, pattern, flags): + r = re.compile(pattern, flags) return [m.groupdict() for m in r.finditer(text)] diff --git a/core/support.py b/core/support.py index 7be69de3..7ec23087 100755 --- a/core/support.py +++ b/core/support.py @@ -225,11 +225,11 @@ def unifyEp(ep): return ep -def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, typeContentDict, typeActionDict, blacklist, search, pag, function, lang, sceneTitle, group): +def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, typeContentDict, typeActionDict, blacklist, search, pag, function, lang, sceneTitle, group, flags): itemlist = [] if debug: regexDbg(item, patron, headers, block) - matches = scrapertools.find_multiple_matches_groups(block, patron) + matches = scrapertools.find_multiple_matches_groups(block, patron, flags) logger.debug('MATCHES =', matches) known_keys = ['url', 'title', 'title2', 'season', 'episode', 'episode2', 'thumb', 'quality', 'year', 'plot', 'duration', 'genere', 'rating', 'type', 'lang', 'other', 'size', 'seed'] @@ -524,7 +524,9 @@ def scrape(func): else: headers = '' patronNext = args.get('patronNext', '') + flags = args.get('flags', re.IGNORECASE) patronBlock = args.get('patronBlock', '') + flagsBlock = args.get('flagsBlock', re.IGNORECASE) typeActionDict = args.get('typeActionDict', {}) typeContentDict = args.get('typeContentDict', {}) debug = args.get('debug', False) @@ -549,13 +551,13 @@ def scrape(func): if patronBlock: if debugBlock: regexDbg(item, patronBlock, headers, data) - blocks = scrapertools.find_multiple_matches_groups(data, patronBlock) + blocks = scrapertools.find_multiple_matches_groups(data, patronBlock, flagsBlock) for bl in blocks: # info(len(blocks),bl) if 'season' in bl and bl['season']: item.season = bl['season'] blockItemlist, blockMatches = scrapeBlock(item, args, bl['block'], patron, headers, action, pagination, debug, - typeContentDict, typeActionDict, blacklist, search, pag, function, lang, sceneTitle, group) + typeContentDict, typeActionDict, blacklist, search, pag, function, lang, sceneTitle, group, flags) for it in blockItemlist: if 'lang' in bl: it.contentLanguage, it.title = scrapeLang(bl, it.contentLanguage, it.title) @@ -566,7 +568,7 @@ def scrape(func): matches.extend(blockMatches) elif patron: itemlist, matches = scrapeBlock(item, args, data, patron, headers, action, pagination, debug, typeContentDict, - typeActionDict, blacklist, search, pag, function, lang, sceneTitle, group) + typeActionDict, blacklist, search, pag, function, lang, sceneTitle, group, flags) if 'itemlistHook' in args: try: