import logging import random from time import sleep from requests import get from helpers.mongo import mongo logging.basicConfig(level=logging.INFO) def fetch_jokes(): i = 1 while True: info = get(f"https://baneks.ru/{i}") if info.status_code == 200: logging.info(i) content = info.text anek = content.split("

")[1].split("

")[0].replace("
", "") if '' in anek: break if mongo.jokes_collection.find_one({"id": i}) is None: mongo.jokes_collection.insert_one({ "id": i, "text": anek }) i += 1 def get_random() -> str: count_docs = mongo.jokes_collection.count_documents({}) rnd = random.randrange(1, count_docs + 1) anek = mongo.jokes_collection.aggregate([{"$sample": {"size": 1}}])[0] return anek['text'] def poll_jokes(): while True: logging.info("start fetching jokes") fetch_jokes() logging.info("finished fetching jokes") sleep(60 * 60 * 24)