add deleting MediaActors during import
This commit is contained in:
@@ -31,7 +31,11 @@ def delete_actor(actor_id: str, db: SessionDep): # type: ignore
|
|||||||
media_actor = db.get(MediaActor, actor_id)
|
media_actor = db.get(MediaActor, actor_id)
|
||||||
if not media_actor:
|
if not media_actor:
|
||||||
raise HTTPException(status_code=404, detail="MediaActor could not be found")
|
raise HTTPException(status_code=404, detail="MediaActor could not be found")
|
||||||
delete_mediaactor(db, media_actor.id)
|
logger.info(f"delete MediaActor: {actor_id}")
|
||||||
|
actor_files = media_actor.media_actor_files
|
||||||
|
logger.info(f"MediaActorFiles links {len(actor_files)}")
|
||||||
|
if len(actor_files) == 0:
|
||||||
|
delete_mediaactor(db, media_actor.id)
|
||||||
|
|
||||||
@router.post("/actors", status_code=status.HTTP_201_CREATED)
|
@router.post("/actors", status_code=status.HTTP_201_CREATED)
|
||||||
def add_actor(new_actor: Actor, db: SessionDep) -> MediaActorResponse: # type: ignore
|
def add_actor(new_actor: Actor, db: SessionDep) -> MediaActorResponse: # type: ignore
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from src.db.models.media import MediaFile
|
|||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@router.get("/update-titles")
|
@router.get("/update-titles")
|
||||||
def update_titles(db: SessionDep) -> list[MediaFileResponse]:
|
def update_titles(db: SessionDep) -> list[MediaFileResponse]: # type: ignore
|
||||||
results: list[MediaFileResponse] = []
|
results: list[MediaFileResponse] = []
|
||||||
files = db.query(MediaFile).filter(MediaFile.review == True).all()
|
files = db.query(MediaFile).filter(MediaFile.review == True).all()
|
||||||
for mediafile in files:
|
for mediafile in files:
|
||||||
@@ -25,7 +25,7 @@ def update_titles(db: SessionDep) -> list[MediaFileResponse]:
|
|||||||
|
|
||||||
@router.get("/files", response_model=list[MediaFileResponse])
|
@router.get("/files", response_model=list[MediaFileResponse])
|
||||||
# def get_all_files(db: SessionDep, review: bool = False, download: bool = False, current_user: Profile = Depends(get_current_user_from_token)) -> List[MediaFileResponse]:
|
# def get_all_files(db: SessionDep, review: bool = False, download: bool = False, current_user: Profile = Depends(get_current_user_from_token)) -> List[MediaFileResponse]:
|
||||||
def get_all_files(db: SessionDep, review: bool = False, download: bool = False) -> list[MediaFileResponse]:
|
def get_all_files(db: SessionDep, review: bool = False, download: bool = False) -> list[MediaFileResponse]: # type: ignore
|
||||||
results: list[MediaFileResponse] = []
|
results: list[MediaFileResponse] = []
|
||||||
files: Sequence[MediaFile]
|
files: Sequence[MediaFile]
|
||||||
if review:
|
if review:
|
||||||
@@ -40,7 +40,7 @@ def get_all_files(db: SessionDep, review: bool = False, download: bool = False)
|
|||||||
return results
|
return results
|
||||||
|
|
||||||
@router.get("/files/{file_id}", response_model=MediaFileResponse)
|
@router.get("/files/{file_id}", response_model=MediaFileResponse)
|
||||||
def get_file(file_id: str, db: SessionDep) -> MediaFileResponse:
|
def get_file(file_id: str, db: SessionDep) -> MediaFileResponse: # type: ignore
|
||||||
mediafile = db.get(MediaFile, file_id)
|
mediafile = db.get(MediaFile, file_id)
|
||||||
if not mediafile:
|
if not mediafile:
|
||||||
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
||||||
@@ -48,7 +48,7 @@ def get_file(file_id: str, db: SessionDep) -> MediaFileResponse:
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
@router.delete("/files/{file_id}", status_code=status.HTTP_204_NO_CONTENT)
|
@router.delete("/files/{file_id}", status_code=status.HTTP_204_NO_CONTENT)
|
||||||
def delete_file(file_id: str, db: SessionDep):
|
def delete_file(file_id: str, db: SessionDep): # type: ignore
|
||||||
mediafile = db.get(MediaFile, file_id)
|
mediafile = db.get(MediaFile, file_id)
|
||||||
if not mediafile:
|
if not mediafile:
|
||||||
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
||||||
@@ -59,7 +59,7 @@ def delete_file(file_id: str, db: SessionDep):
|
|||||||
delete_mediafile(db, mediafile.id)
|
delete_mediafile(db, mediafile.id)
|
||||||
|
|
||||||
@router.get("/files/{file_id}/actors", response_model=list[MediaActorResponse])
|
@router.get("/files/{file_id}/actors", response_model=list[MediaActorResponse])
|
||||||
def get_file_actors(file_id: str, db: SessionDep) -> list[MediaActorResponse]:
|
def get_file_actors(file_id: str, db: SessionDep) -> list[MediaActorResponse]: # type: ignore
|
||||||
mediafile = db.get(MediaFile, file_id)
|
mediafile = db.get(MediaFile, file_id)
|
||||||
if not mediafile:
|
if not mediafile:
|
||||||
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
||||||
@@ -72,7 +72,7 @@ def get_file_actors(file_id: str, db: SessionDep) -> list[MediaActorResponse]:
|
|||||||
return results
|
return results
|
||||||
|
|
||||||
@router.put("/files/{file_id}/actors", response_model=list[MediaActorFileResponse])
|
@router.put("/files/{file_id}/actors", response_model=list[MediaActorFileResponse])
|
||||||
def update_file_actors(file_id: str, db: SessionDep, actors: list[MediaActorResponse]) -> list[MediaActorFileResponse]:
|
def update_file_actors(file_id: str, db: SessionDep, actors: list[MediaActorResponse]) -> list[MediaActorFileResponse]: # type: ignore
|
||||||
mediafile = db.get(MediaFile, file_id)
|
mediafile = db.get(MediaFile, file_id)
|
||||||
if not mediafile:
|
if not mediafile:
|
||||||
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
||||||
@@ -96,7 +96,7 @@ def update_file_actors(file_id: str, db: SessionDep, actors: list[MediaActorResp
|
|||||||
return results
|
return results
|
||||||
|
|
||||||
@router.put("/files/{file_id}", response_model=MediaFileResponse)
|
@router.put("/files/{file_id}", response_model=MediaFileResponse)
|
||||||
def update_file(file_id: str, db: SessionDep, info: MediaFileResponse) -> MediaFileResponse:
|
def update_file(file_id: str, db: SessionDep, info: MediaFileResponse) -> MediaFileResponse: # type: ignore
|
||||||
mediaFile = db.get(MediaFile, file_id)
|
mediaFile = db.get(MediaFile, file_id)
|
||||||
if not mediaFile:
|
if not mediaFile:
|
||||||
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
||||||
@@ -110,7 +110,7 @@ def update_file(file_id: str, db: SessionDep, info: MediaFileResponse) -> MediaF
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
@router.post("/files", status_code=status.HTTP_201_CREATED)
|
@router.post("/files", status_code=status.HTTP_201_CREATED)
|
||||||
def add_file(new_link: Link, db: SessionDep) -> MediaFileResponse:
|
def add_file(new_link: Link, db: SessionDep) -> MediaFileResponse: # type: ignore
|
||||||
logger.info(f"add url {new_link.url}")
|
logger.info(f"add url {new_link.url}")
|
||||||
try:
|
try:
|
||||||
mediaFile: MediaFile = create_new_mediafile(new_link.url, db)
|
mediaFile: MediaFile = create_new_mediafile(new_link.url, db)
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ def create_tables(sqlite_conn, logger, recreate_db, scripts):
|
|||||||
def get_logger(level, config: str):
|
def get_logger(level, config: str):
|
||||||
dirs = PlatformDirs(config)
|
dirs = PlatformDirs(config)
|
||||||
logging_config = Path(dirs.user_config_dir, "logging-config.yaml")
|
logging_config = Path(dirs.user_config_dir, "logging-config.yaml")
|
||||||
|
log_config = None
|
||||||
with open(logging_config, "rt") as f:
|
with open(logging_config, "rt") as f:
|
||||||
log_config = yaml.safe_load(f.read())
|
log_config = yaml.safe_load(f.read())
|
||||||
logging.config.dictConfig(log_config)
|
logging.config.dictConfig(log_config)
|
||||||
|
|||||||
@@ -123,6 +123,8 @@ def item_delete(table_name: str, item_id: str, api_data: Dict[str, Any], log: Lo
|
|||||||
url = f"http://{host}:{port}/api/media/files/{item_id}"
|
url = f"http://{host}:{port}/api/media/files/{item_id}"
|
||||||
case "media_actor_file":
|
case "media_actor_file":
|
||||||
url = f"http://{host}:{port}/api/media/actorfiles/{item_id}"
|
url = f"http://{host}:{port}/api/media/actorfiles/{item_id}"
|
||||||
|
case "media_actor":
|
||||||
|
url = f"http://{host}:{port}/api/media/actors/{item_id}"
|
||||||
headers: Dict[str, str] = {"Authorization": f"Bearer {token}"}
|
headers: Dict[str, str] = {"Authorization": f"Bearer {token}"}
|
||||||
response = requests.delete(url, headers=headers)
|
response = requests.delete(url, headers=headers)
|
||||||
log.debug(f"Status: {response.status_code}")
|
log.debug(f"Status: {response.status_code}")
|
||||||
@@ -167,6 +169,8 @@ if __name__ == '__main__':
|
|||||||
item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger)
|
item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger)
|
||||||
case "media_actor_file":
|
case "media_actor_file":
|
||||||
item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger)
|
item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger)
|
||||||
|
case "media_actor":
|
||||||
|
item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger)
|
||||||
case _:
|
case _:
|
||||||
logger.info("Method to remove remaining item not implemented")
|
logger.info("Method to remove remaining item not implemented")
|
||||||
logger.info('kontor.import finished')
|
logger.info('kontor.import finished')
|
||||||
|
|||||||
Reference in New Issue
Block a user