niming_igapi/interface/tcivs.py
2025-04-26 22:36:57 +00:00

62 lines
1.5 KiB
Python

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