Source code for vk_url_scraper.utils

import json
import os
import sys
from contextlib import contextmanager
from datetime import datetime


[docs]class DateTimeEncoder(json.JSONEncoder): # to allow json.dump with datetimes do json.dumps(obj, cls=DateTimeEncoder)
[docs] def default(self, o): if isinstance(o, datetime): return str(o) # with timezone return json.JSONEncoder.default(self, o)
def captcha_handler(captcha): key = input( f"CAPTCHA DETECTED, please solve it and input the solution. url= {captcha.get_url()} :" ).strip() return captcha.try_again(key)
[docs]@contextmanager def suppress_stdout(): # https://thesmithfam.org/blog/2012/10/25/temporarily-suppress-console-output-in-python/ # this is used to silence ytdlp which does not fully respects quite=True and outputs filenames to the console with open(os.devnull, "w") as devnull: old_stdout = sys.stdout sys.stdout = devnull try: yield finally: sys.stdout = old_stdout