find actor by url or name
This commit is contained in:
+23
-11
@@ -81,6 +81,12 @@ def get_actors_mapping(actor_list: List[MediaActor]) -> Dict[str, MediaActor]:
|
|||||||
mapping[str(actor.url)] = actor
|
mapping[str(actor.url)] = actor
|
||||||
return mapping
|
return mapping
|
||||||
|
|
||||||
|
def get_actornames_mapping(actor_list: List[MediaActor]) -> Dict[str, MediaActor]:
|
||||||
|
mapping: Dict[str, MediaActor] = {}
|
||||||
|
for actor in actor_list:
|
||||||
|
mapping[str(actor.name)] = actor
|
||||||
|
return mapping
|
||||||
|
|
||||||
def get_meta_info(media_file: MediaFile, log) -> List[str]:
|
def get_meta_info(media_file: MediaFile, log) -> List[str]:
|
||||||
actor_links: List[str] = []
|
actor_links: List[str] = []
|
||||||
try:
|
try:
|
||||||
@@ -139,6 +145,7 @@ if __name__ == '__main__':
|
|||||||
media_files = db.query(MediaFile).filter(MediaFile.url == link).all()
|
media_files = db.query(MediaFile).filter(MediaFile.url == link).all()
|
||||||
media_actors = db.query(MediaActor).all()
|
media_actors = db.query(MediaActor).all()
|
||||||
actor_mapping = get_actors_mapping(media_actors)
|
actor_mapping = get_actors_mapping(media_actors)
|
||||||
|
actorname_mapping = get_actornames_mapping(media_actors)
|
||||||
if len(media_files) == 0:
|
if len(media_files) == 0:
|
||||||
logger.info(f"MediaFile for link {link} not found")
|
logger.info(f"MediaFile for link {link} not found")
|
||||||
media_file = MediaFile()
|
media_file = MediaFile()
|
||||||
@@ -173,17 +180,22 @@ if __name__ == '__main__':
|
|||||||
db.add(media_actor_file)
|
db.add(media_actor_file)
|
||||||
db.commit()
|
db.commit()
|
||||||
else:
|
else:
|
||||||
media_actor = MediaActor()
|
media_actor: MediaActor = None # type: ignore
|
||||||
media_actor.id = str(uuid.uuid4())
|
actor_name = get_actor_name(actor_url, logger)
|
||||||
media_actor.created_date = datetime.now()
|
if actor_name in actorname_mapping:
|
||||||
media_actor.last_modified_date = datetime.now()
|
media_actor = actorname_mapping[actor_name]
|
||||||
media_actor.version = 0
|
else:
|
||||||
media_actor.name = get_actor_name(actor_url, logger)
|
media_actor = MediaActor()
|
||||||
media_actor.url = actor_url
|
media_actor.id = str(uuid.uuid4())
|
||||||
logger.info(f"update MediaActor with {repr(media_actor)}")
|
media_actor.created_date = datetime.now()
|
||||||
if not args.dry_run:
|
media_actor.last_modified_date = datetime.now()
|
||||||
db.add(media_actor)
|
media_actor.version = 0
|
||||||
db.commit()
|
media_actor.name = get_actor_name(actor_url, logger)
|
||||||
|
media_actor.url = actor_url
|
||||||
|
logger.info(f"update MediaActor with {repr(media_actor)}")
|
||||||
|
if not args.dry_run:
|
||||||
|
db.add(media_actor)
|
||||||
|
db.commit()
|
||||||
media_actor_file = MediaActorFile()
|
media_actor_file = MediaActorFile()
|
||||||
media_actor_file.id = str(uuid.uuid4())
|
media_actor_file.id = str(uuid.uuid4())
|
||||||
media_actor_file.created_date = datetime.now()
|
media_actor_file.created_date = datetime.now()
|
||||||
|
|||||||
Reference in New Issue
Block a user