Skip to content

Commit 3df73ca

Browse files
committed
vod.py: rework metadata saving in a cleaner and more portable manner,
fixing all bugs. which finally makes recordings fully functional in Windows too Signed-off-by: Javier Marcet <[email protected]>
1 parent 493e0d0 commit 3df73ca

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

vod.py

+18-7
Original file line numberDiff line numberDiff line change
@@ -318,31 +318,42 @@ async def record_stream():
318318

319319

320320
def save_metadata():
321+
global filename, path
321322
try:
322323
with open(os.path.join(CACHE_DIR, f"{args.broadcast}.json")) as f:
323324
metadata = ujson.loads(f.read())["data"]
325+
for t in ["beginTime", "endTime", "expDate"]:
326+
metadata[t] = int(metadata[t] / 1000)
324327
_cover = metadata["cover"]
325328
resp = httpx.get(f"{COVER_URL}/{_cover}")
326329
if resp.status_code == 200:
327-
image_ext = os.path.basename(_cover).split(".")[-1]
328-
_img_name = f"{filename}.{image_ext}"
330+
image_ext = os.path.splitext(_cover)[1]
331+
_img_name = filename + image_ext
329332
with open(_img_name, "wb") as f:
330333
f.write(resp.read())
331334
metadata["cover"] = os.path.basename(_img_name)
332335
if "covers" in metadata:
333-
if not os.path.exists(os.path.join(path + "/metadata")):
334-
os.mkdir(os.path.join(path + "/metadata"))
336+
_covers = {}
337+
_metadata = os.path.join(path, "metadata")
338+
if not os.path.exists(_metadata):
339+
os.mkdir(_metadata)
335340
for _img in metadata["covers"]:
336341
_cover = metadata["covers"][_img]
337342
resp = httpx.get(_cover)
338343
if resp.status_code != 200:
339344
continue
340-
image_ext = os.path.basename(_cover).split(".")[-1]
341-
_img_name = f"{path}/metadata/{os.path.basename(filename)}-{_img}" f".{image_ext}"
345+
_img_ext = os.path.splitext(_cover)[1]
346+
_img_rel = f"{os.path.basename(filename)}-{_img}" + _img_ext
347+
_img_name = os.path.join(_metadata, _img_rel)
342348
with open(_img_name, "wb") as f:
343349
f.write(resp.read())
350+
_covers[_img] = os.path.join("metadata", _img_rel)
351+
if _covers:
352+
metadata["covers"] = _covers
353+
else:
354+
metadata.pop("covers", None)
355+
os.rmdir(_metadata)
344356
metadata["title"] = full_title
345-
metadata.pop("covers", None)
346357
metadata.pop("logos", None)
347358
metadata.pop("name", None)
348359
with open(filename + NFO_EXT, "w") as f:

0 commit comments

Comments
 (0)