mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-12-06 06:36:25 +00:00
Add tests for video linking
This commit is contained in:
@@ -7,9 +7,9 @@ from aiohttp import ClientSession
|
||||
from pydantic import TypeAdapter
|
||||
|
||||
from .models.movie import Movie
|
||||
from .models.request import Request
|
||||
from .models.serie import Serie
|
||||
from .models.videos import For, Resource, Video, VideoCreated, VideoInfo, VideoLink
|
||||
from .requests import Request
|
||||
from .utils import Singleton
|
||||
|
||||
logger = getLogger(__name__)
|
||||
@@ -96,7 +96,7 @@ class KyooClient(metaclass=Singleton):
|
||||
)
|
||||
|
||||
async with self._client.post(
|
||||
"videos",
|
||||
"videos/link",
|
||||
data=TypeAdapter(list[VideoLink]).dump_json(
|
||||
[map_request(x) for x in videos],
|
||||
by_alias=True,
|
||||
|
||||
20
scanner/scanner/models/request.py
Normal file
20
scanner/scanner/models/request.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from __future__ import annotations
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from .videos import Guess
|
||||
from ..utils import Model
|
||||
|
||||
|
||||
class Request(Model, extra="allow"):
|
||||
pk: int | None = Field(exclude=True, default=None)
|
||||
kind: Literal["episode", "movie"]
|
||||
title: str
|
||||
year: int | None
|
||||
external_id: dict[str, str]
|
||||
videos: list[Request.Video]
|
||||
|
||||
class Video(Model):
|
||||
id: str
|
||||
episodes: list[Guess.Episode]
|
||||
@@ -1,33 +1,18 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from asyncio import CancelledError, Event, TaskGroup
|
||||
from logging import getLogger
|
||||
from typing import Literal, cast
|
||||
from typing import cast
|
||||
|
||||
from asyncpg import Connection, Pool
|
||||
from pydantic import Field, TypeAdapter
|
||||
from pydantic import TypeAdapter
|
||||
|
||||
from .client import KyooClient
|
||||
from .models.videos import Guess, Resource
|
||||
from .models.request import Request
|
||||
from .models.videos import Resource
|
||||
from .providers.provider import Provider
|
||||
from .utils import Model
|
||||
|
||||
logger = getLogger(__name__)
|
||||
|
||||
|
||||
class Request(Model, extra="allow"):
|
||||
pk: int | None = Field(exclude=True, default=None)
|
||||
kind: Literal["episode", "movie"]
|
||||
title: str
|
||||
year: int | None
|
||||
external_id: dict[str, str]
|
||||
videos: list[Request.Video]
|
||||
|
||||
class Video(Model):
|
||||
id: str
|
||||
episodes: list[Guess.Episode]
|
||||
|
||||
|
||||
class RequestCreator:
|
||||
def __init__(self, database: Connection):
|
||||
self._database = database
|
||||
|
||||
Reference in New Issue
Block a user