* 使用 list 传递多值 external-indentifier

* 为有多个 UP 主的合作视频添加多个 mid
* 跳过 description 空值更新
This commit is contained in:
yzqzss 2023-07-08 17:36:16 +08:00
parent 08dc94fbd9
commit 2dff8d0201

View File

@ -2,6 +2,7 @@ import json
import os
from pathlib import Path
import time
from typing import List
from internetarchive import get_item
from requests import Response
from rich import print
@ -114,12 +115,18 @@ def _upload_bvid(bvid: str):
assert p_part is not None
aid = bv_info['data']['View']['aid']
mid = bv_info['data']['View']['owner']['mid']
owner_mid = bv_info['data']['View']['owner']['mid']
external_identifier = f"urn:bilibili:aid:{aid}, "
external_identifier += f"urn:bilibili:bvid:{bvid}, "
external_identifier += f"urn:bilibili:cid:{cid}, "
external_identifier += f"urn:bilibili:mid:{mid}, "
mids: List[int] = [owner_mid]
if bv_info['data']['View'].get('staff') is not None:
mids = [] # owner_mid 在 staff 也有
for staff in bv_info['data']['View']['staff']:
mids.append(staff['mid']) if staff['mid'] not in mids else None
external_identifier = [f"urn:bilibili:aid:{aid}",
f"urn:bilibili:bvid:{bvid}",
f"urn:bilibili:cid:{cid}"]
for mid in mids:
external_identifier.append(f"urn:bilibili:mid:{mid}")
md = {
"mediatype": "movies",
@ -167,7 +174,7 @@ def _upload_bvid(bvid: str):
new_md = {}
if item.metadata.get("upload-state") != "uploaded":
new_md.update({"upload-state": "uploaded"})
if item.metadata.get("description") != bv_info['data']['View']['desc']:
if item.metadata.get("description", "") != bv_info['data']['View']['desc']:
new_md.update({"description": bv_info['data']['View']['desc']})
if item.metadata.get("scanner") != md['scanner']:
new_md.update({"scanner": md['scanner']})