import pickle import random from datetime import datetime from time import sleep from arangodb import db def sleep_(t): """ Sover en tid nära den angivna (för att inte sökningarna ska bli för lika varandra) """ variation = 4 # Testa olika sovlängder för att inte få användaren blockerad sleep(t * variation * random.randrange(85, 115, 1) / 100) if random.randrange(0, 60, 1) == 1: for s in range(0, 300): print(f"Sover {300 - s} sekunder till... ", end="\r") sleep(1) print() sleep(random.randrange(0, 10, 1) / 4) def update_cookie(cookies, profile_name): """ Uppdaterar cookie för browser """ with open("./data/cookie_{}.pkl".format(profile_name), "wb") as f: pickle.dump(cookies, f) def write_error(nr, e="", traceback="", soup="", user="", url="", url_name=""): """Skriver info efter error till arango Args: nr ([type]): error number e (str, optional): error. Defaults to "". traceback (str, optional): The traceback from traceback.format_exc(). Defaults to "". soup (str, optional): Soup. Defaults to "". user (str, optional): The user. Defaults to "". url (str, optional): Url, if any. Defaults to "". count (int, optional): Count, if any. Defaults to 0. url_name (str, optional): The description of the url, if any. Defaults to "". """ if url == "": url = "ingen url" url_name = "ingen url" if soup != "": soup = str(soup.prettify()) print(e) # FELSÖKNING key = datetime.now().strftime("%Y%m%d_%H:%M:%S") doc = { "_key": key, "number": nr, "error": nr, "user": str(user), "error": str(e), "url": str(url), "url_name": url_name, "soup": soup, "traceback": str(traceback), } try: db.insert_document( "errors", doc, overwrite_mode="update", silent=True, ) except Exception as e: print(e)