From 4212cfa0b281ace2e5ac7e26f05f2bc7fcfd3152 Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Sun, 25 Sep 2022 06:11:06 +0200 Subject: [PATCH] testing on pcm --- files/classes/streamers.py | 2 +- files/helpers/cron.py | 6 +-- files/routes/static.py | 90 ++++++++++++++++++++++---------------- 3 files changed, 55 insertions(+), 43 deletions(-) diff --git a/files/classes/streamers.py b/files/classes/streamers.py index a98ce13ad..575481785 100644 --- a/files/classes/streamers.py +++ b/files/classes/streamers.py @@ -1,6 +1,6 @@ from files.helpers.const import SITE -if SITE == 'pcmemes.net' or True: +if SITE == 'pcmemes.net': from sqlalchemy import * from files.__main__ import Base diff --git a/files/helpers/cron.py b/files/helpers/cron.py index b7f4265d4..b3636c563 100644 --- a/files/helpers/cron.py +++ b/files/helpers/cron.py @@ -31,10 +31,8 @@ def cron(every_5m, every_1h, every_1d, every_1mo): lottery.check_if_end_lottery_task() spin_roulette_wheel() offsitementions.offsite_mentions_task() - if SITE == 'pcmemes.net' or True: - x = route_static.live_cached() - cache.set('live', x[0]) - cache.set('offline', x[1]) + if SITE == 'pcmemes.net': + route_static.live_cached() if every_1h: awards.award_timers_bots_task() diff --git a/files/routes/static.py b/files/routes/static.py index 503a360cc..f34f84b56 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -436,12 +436,44 @@ def donate(v): return render_template(f'donate_{SITE_NAME}.html', v=v) -if SITE == 'pcmemes.net' or True: +if SITE == 'pcmemes.net': from files.classes.streamers import * live_regex = re.compile('playerOverlayVideoDetailsRenderer":\{"title":\{"simpleText":"(.*?)"\},"subtitle":\{"runs":\[\{"text":"(.*?)"\},\{"text":" • "\},\{"text":"(.*?)"\}', flags=re.A) live_thumb_regex = re.compile('\{"thumbnail":\{"thumbnails":\[\{"url":"(.*?)"', flags=re.A) offline_regex = re.compile('","title":"(.*?)".*?"width":48,"height":48\},\{"url":"(.*?)"', flags=re.A) + offline_details_regex = re.compile('simpleText":"Gestreamd: ([0-9]*?) ([a-z]*?) geleden"\},"viewCountText":\{"simpleText":"([0-9]*?) weergaven"', flags=re.A) + + def process_streamer(id): + url = f'https://www.youtube.com/channel/{id}/live' + req = requests.get(url, cookies={'CONSENT': 'YES+1'}, timeout=5, proxies=proxies) + text = req.text + if '"videoDetails":{"videoId"' in text: + t = live_thumb_regex.search(text) + y = live_regex.search(text) + try: + return_val = (True, (id, req.url, t.group(1), y.group(2), y.group(1), int(y.group(3)))) + except: + print(id, flush=True) + return_val = None + else: + t = offline_regex.search(text) + y = offline_details_regex.search(text) + + days = y.group(0) + modifier = y.group(1) + if modifier == 'weken': modifier = 7 + elif modifier == 'maand': modifier = 30 + elif modifier == 'jaar': modifier = 365 + days *= modifier + + try: + return_val = (False, (id, req.url.rstrip('/live'), t.group(2), t.group(1), days, y.group(2))) + except: + print(id, flush=True) + return_val = None + return return_val + def live_cached(): live = [] @@ -449,24 +481,17 @@ if SITE == 'pcmemes.net' or True: db = db_session() streamers = [x[0] for x in db.query(Streamer.id).all()] db.close() - for x in streamers: - url = f'https://www.youtube.com/channel/{x}/live' - req = requests.get(url, cookies={'CONSENT': 'YES+1'}, timeout=5, proxies=proxies) - text = req.text - if '"videoDetails":{"videoId"' in text: - t = live_thumb_regex.search(text) - y = live_regex.search(text) - try: - count = int(y.group(3)) - live.append((x, req.url, t.group(1), y.group(2), y.group(1), count)) - except: - print(x) - else: - y = offline_regex.search(text) - try: offline.append((x, req.url.rstrip('/live'), y.group(2), y.group(1))) - except: print(x) + for id in streamers: + processed = process_streamer(id) + if processed: + if processed[0]: live.append(processed[1]) + else: offline.append(processed[1]) live = sorted(live, key=lambda x: x[5], reverse=True) + offline = sorted(offline, key=lambda x: x[4]) + + cache.set('live', live) + cache.set('offline', offline) return live, offline @@ -498,27 +523,16 @@ if SITE == 'pcmemes.net' or True: if v.id != KIPPY_ID: send_repeatable_notification(KIPPY_ID, f"@{v.username} has added a [new YouTube channel](https://www.youtube.com/channel/{streamer.id})") - url = f'https://www.youtube.com/channel/{id}/live' - req = requests.get(url, cookies={'CONSENT': 'YES+1'}, timeout=5, proxies=proxies) - text = req.text - if '"videoDetails":{"videoId"' in text: - t = live_thumb_regex.search(text) - y = live_regex.search(text) - try: - count = int(y.group(3)) - live.append((id, req.url, t.group(1), y.group(2), y.group(1), count)) - cache.set('live', live) - except: - print(id, flush=True) - else: - with open("files/assets/txt9.txt", "w", encoding='utf_8') as f: - f.write(text) - y = offline_regex.search(text) - try: - offline.append((id, req.url.rstrip('/live'), y.group(2), y.group(1))) - cache.set('offline', offline) - except: - print(id, flush=True) + processed = process_streamer(id) + if processed: + if processed[0]: live.append(processed[1]) + else: offline.append(processed[1]) + + live = sorted(live, key=lambda x: x[5], reverse=True) + offline = sorted(offline, key=lambda x: x[4]) + + cache.set('live', live) + cache.set('offline', offline) return redirect('/live')