Skip to content

Commit b7ab58e

Browse files
committed
update for API compatibility
1 parent f616464 commit b7ab58e

File tree

2 files changed

+49
-17
lines changed

2 files changed

+49
-17
lines changed

app/django_client/service.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from datetime import datetime
2+
from enum import Enum
23

34
from frikanalen_django_api_client import AuthenticatedClient
45
from frikanalen_django_api_client.api.videofiles import videofiles_create, videofiles_list, videofiles_partial_update
@@ -15,6 +16,33 @@
1516
from app.util.pprint_object_list import pprint_object_list
1617

1718

19+
class FormatEnum(str, Enum):
20+
BROADCAST = "broadcast"
21+
CLOUDFLARE_ID = "cloudflare_id"
22+
LARGE_THUMB = "large_thumb"
23+
MED_THUMB = "med_thumb"
24+
ORIGINAL = "original"
25+
SMALL_THUMB = "small_thumb"
26+
SRT = "srt"
27+
THEORA = "theora"
28+
VC1 = "vc1"
29+
30+
def __str__(self) -> str:
31+
return str(self.value)
32+
33+
34+
class IntFormatEnum(int, Enum):
35+
LARGE_THUMB = 1
36+
BROADCAST = 2
37+
VC1 = 3
38+
MED_THUMB = 4
39+
SMALL_THUMB = 5
40+
ORIGINAL = 6
41+
THEORA = 7
42+
SRT = 8
43+
CLOUDFLARE_ID = 9
44+
45+
1846
class DjangoApiService:
1947
client: AuthenticatedClient
2048

@@ -55,8 +83,11 @@ async def set_video_loudness(self, video_id: str, loudness: LoudnessMeasurement)
5583
async def get_files_for_video(self, video_id: str):
5684
return await videofiles_list.asyncio(client=self.client, video_id=int(video_id))
5785

58-
async def create_video_file(self, video_file: VideoFileRequest):
59-
return await videofiles_create.asyncio(client=self.client, body=video_file)
86+
async def create_video_file(self, filename: str, video_id: str, file_format: FormatEnum):
87+
req = VideoFileRequest(
88+
filename=str(filename), video=int(video_id), format_=IntFormatEnum[file_format.name].value
89+
)
90+
return await videofiles_create.asyncio(client=self.client, body=req)
6091

6192
async def get_videos(self, limit=10):
6293
return (await videos_list.asyncio(client=self.client, limit=limit, ordering="-uploaded_time")).results or []
@@ -70,7 +101,7 @@ async def main():
70101

71102
settings = get_settings()
72103
token = api_get_key(
73-
settings.api.url,
104+
str(settings.api.url),
74105
settings.api.username,
75106
settings.api.password.get_secret_value(),
76107
)

app/ingest.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
from logging import Logger, getLogger
33
from pathlib import Path
44

5-
from frikanalen_django_api_client.models import FormatEnum, VideoFileRequest
6-
7-
from app.django_client.service import DjangoApiService
5+
from app.django_client.service import DjangoApiService, FormatEnum
86
from app.util.logging import VideoIdFilter
97

108
from .archive_store import Archive
@@ -50,31 +48,35 @@ async def ingest(self, video_id: str, original_file: Path, metadata: FfprobeOutp
5048
try:
5149
self.logger.info("Setting video duration: %s", metadata.format.duration)
5250
await self.django_api.set_video_duration(video_id, metadata.format.duration)
53-
req = VideoFileRequest(filename=str(archive_original), format_=FormatEnum.ORIGINAL, video=int(video_id))
54-
await self.django_api.create_video_file(video_file=req)
51+
52+
await self.django_api.create_video_file(
53+
filename=archive_original, file_format=FormatEnum.ORIGINAL, video_id=video_id
54+
)
5555
except Exception as e:
5656
self.logger.error("django-api error post original ingest: %s", e)
5757
raise
5858

59-
for format in DESIRED_FORMATS:
60-
await self._process_format(format, metadata, archive_original, video_id)
59+
for file_format in DESIRED_FORMATS:
60+
await self._process_format(file_format, metadata, archive_original, video_id)
6161

6262
await self.django_api.set_video_proper_import(video_id, True)
6363

64-
async def _process_format(self, format: FormatEnum, metadata: FfprobeOutput, archive_original: Path, video_id: str):
64+
async def _process_format(
65+
self, file_format: FormatEnum, metadata: FfprobeOutput, archive_original: Path, video_id: str
66+
):
6567
self.logger.info("Processing: %s", archive_original)
66-
output_directory = archive_original.parent.parent / format
68+
output_directory = archive_original.parent.parent / file_format
6769

6870
self.logger.info("Creating directory: %s", output_directory)
6971
output_directory.mkdir(exist_ok=True)
7072

71-
self.logger.info("Building command for format: %s", format)
72-
template = TemplatedCommandGenerator(format)
73+
self.logger.info("Building command for format: %s", file_format)
74+
template = TemplatedCommandGenerator(file_format)
7375

7476
output_file_name = f"{archive_original.stem}.{template.metadata.output_file_extension}"
7577
output_file = output_directory / output_file_name
7678

77-
self.logger.info("Storing %s to %s", format, output_file)
79+
self.logger.info("Storing %s to %s", file_format, output_file)
7880

7981
template_args = ProfileTemplateArguments(
8082
input_file=archive_original,
@@ -86,5 +88,4 @@ async def _process_format(self, format: FormatEnum, metadata: FfprobeOutput, arc
8688
await TKB(command).execute()
8789

8890
self.logger.info("Creating video file entry for %s", output_file)
89-
req = VideoFileRequest(filename=str(output_file), format_=format, video=int(video_id))
90-
await self.django_api.create_video_file(video_file=req)
91+
await self.django_api.create_video_file(filename=str(output_file), file_format=file_format, video_id=video_id)

0 commit comments

Comments
 (0)