from hashlib import sha512 import secrets import time import requests import io from config.config import TMP # define an_example_of_context = { "id": int, "metadata": { "create_time": int, "author": str, "tags": list[str], "category": str }, "content": { "text": str, "media": [ io.BytesIO ] } } def get(index:int, media:bool=True) -> dict | None: res = requests.get("http://localhost:5000/article/%d?media_count=1"%index) if res.status_code != 200: return None rj = res.json() media = [] bytesio = 0 if media: for m in rj["media"]: _m = requests.get(m) if _m.status_code == 200: #if bytesio: # save in memory media.append(io.BytesIO(_m.content)) #else: # save in file # filename = sha512( (str(time.time())+secrets.token_urlsafe(nbytes=16)).encode() ).hexdigest() # filename = f"./{TMP}/{filename}" # with open(filename, "wb") as f: # f.write(_m.content) # media.append(filename) result = { "id": rj["id"], "metadata": { "create_time": rj["create_time"], "author": "", "tags": [], "category": "" }, "content": { "text": rj["content"], "media": media } } return result