mirror of
https://github.com/ihabunek/twitch-dl
synced 2024-08-30 18:32:25 +00:00
Move entities to entites.py
This commit is contained in:
parent
52b96aab15
commit
141ecb7f29
@ -1,5 +1,5 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Any, Mapping, Optional
|
from typing import Any, List, Literal, Mapping, Optional, TypedDict
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@ -20,6 +20,73 @@ class DownloadOptions:
|
|||||||
max_workers: int
|
max_workers: int
|
||||||
|
|
||||||
|
|
||||||
|
ClipsPeriod = Literal["last_day", "last_week", "last_month", "all_time"]
|
||||||
|
VideosSort = Literal["views", "time"]
|
||||||
|
VideosType = Literal["archive", "highlight", "upload"]
|
||||||
|
|
||||||
|
|
||||||
|
class AccessToken(TypedDict):
|
||||||
|
signature: str
|
||||||
|
value: str
|
||||||
|
|
||||||
|
|
||||||
|
class User(TypedDict):
|
||||||
|
login: str
|
||||||
|
displayName: str
|
||||||
|
|
||||||
|
|
||||||
|
class Game(TypedDict):
|
||||||
|
id: str
|
||||||
|
name: str
|
||||||
|
|
||||||
|
|
||||||
|
class VideoQuality(TypedDict):
|
||||||
|
frameRate: str
|
||||||
|
quality: str
|
||||||
|
sourceURL: str
|
||||||
|
|
||||||
|
|
||||||
|
class ClipAccessToken(TypedDict):
|
||||||
|
id: str
|
||||||
|
playbackAccessToken: AccessToken
|
||||||
|
videoQualities: List[VideoQuality]
|
||||||
|
|
||||||
|
|
||||||
|
class Clip(TypedDict):
|
||||||
|
id: str
|
||||||
|
slug: str
|
||||||
|
title: str
|
||||||
|
createdAt: str
|
||||||
|
viewCount: int
|
||||||
|
durationSeconds: int
|
||||||
|
url: str
|
||||||
|
videoQualities: List[VideoQuality]
|
||||||
|
game: Game
|
||||||
|
broadcaster: User
|
||||||
|
|
||||||
|
|
||||||
|
class Video(TypedDict):
|
||||||
|
id: str
|
||||||
|
title: str
|
||||||
|
description: str
|
||||||
|
publishedAt: str
|
||||||
|
broadcastType: str
|
||||||
|
lengthSeconds: int
|
||||||
|
game: Game
|
||||||
|
creator: User
|
||||||
|
|
||||||
|
|
||||||
|
class Chapter(TypedDict):
|
||||||
|
id: str
|
||||||
|
durationMilliseconds: int
|
||||||
|
positionMilliseconds: int
|
||||||
|
type: str
|
||||||
|
description: str
|
||||||
|
subDescription: str
|
||||||
|
thumbnailURL: str
|
||||||
|
game: Game
|
||||||
|
|
||||||
|
|
||||||
# Type for annotating decoded JSON
|
# Type for annotating decoded JSON
|
||||||
# TODO: make data classes for common structs
|
# TODO: make data classes for common structs
|
||||||
Data = Mapping[str, Any]
|
Data = Mapping[str, Any]
|
||||||
|
@ -6,7 +6,7 @@ from typing import Any, Callable, Generator, List, Optional, TypeVar
|
|||||||
import click
|
import click
|
||||||
|
|
||||||
from twitchdl import utils
|
from twitchdl import utils
|
||||||
from twitchdl.twitch import Clip, Video
|
from twitchdl.entities import Clip, Video
|
||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
@ -4,81 +4,25 @@ Twitch API access.
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
from typing import Any, Dict, Generator, List, Literal, Mapping, Optional, Tuple, TypedDict, Union
|
from typing import Any, Dict, Generator, List, Mapping, Optional, Tuple, Union
|
||||||
|
|
||||||
import click
|
import click
|
||||||
import httpx
|
import httpx
|
||||||
|
|
||||||
from twitchdl import CLIENT_ID
|
from twitchdl import CLIENT_ID
|
||||||
from twitchdl.entities import Data
|
from twitchdl.entities import (
|
||||||
|
AccessToken,
|
||||||
|
Chapter,
|
||||||
|
Clip,
|
||||||
|
ClipAccessToken,
|
||||||
|
ClipsPeriod,
|
||||||
|
Data,
|
||||||
|
Video,
|
||||||
|
VideosSort,
|
||||||
|
VideosType,
|
||||||
|
)
|
||||||
from twitchdl.exceptions import ConsoleError
|
from twitchdl.exceptions import ConsoleError
|
||||||
|
|
||||||
ClipsPeriod = Literal["last_day", "last_week", "last_month", "all_time"]
|
|
||||||
VideosSort = Literal["views", "time"]
|
|
||||||
VideosType = Literal["archive", "highlight", "upload"]
|
|
||||||
|
|
||||||
|
|
||||||
class AccessToken(TypedDict):
|
|
||||||
signature: str
|
|
||||||
value: str
|
|
||||||
|
|
||||||
|
|
||||||
class User(TypedDict):
|
|
||||||
login: str
|
|
||||||
displayName: str
|
|
||||||
|
|
||||||
|
|
||||||
class Game(TypedDict):
|
|
||||||
id: str
|
|
||||||
name: str
|
|
||||||
|
|
||||||
|
|
||||||
class VideoQuality(TypedDict):
|
|
||||||
frameRate: str
|
|
||||||
quality: str
|
|
||||||
sourceURL: str
|
|
||||||
|
|
||||||
|
|
||||||
class ClipAccessToken(TypedDict):
|
|
||||||
id: str
|
|
||||||
playbackAccessToken: AccessToken
|
|
||||||
videoQualities: List[VideoQuality]
|
|
||||||
|
|
||||||
|
|
||||||
class Clip(TypedDict):
|
|
||||||
id: str
|
|
||||||
slug: str
|
|
||||||
title: str
|
|
||||||
createdAt: str
|
|
||||||
viewCount: int
|
|
||||||
durationSeconds: int
|
|
||||||
url: str
|
|
||||||
videoQualities: List[VideoQuality]
|
|
||||||
game: Game
|
|
||||||
broadcaster: User
|
|
||||||
|
|
||||||
|
|
||||||
class Video(TypedDict):
|
|
||||||
id: str
|
|
||||||
title: str
|
|
||||||
description: str
|
|
||||||
publishedAt: str
|
|
||||||
broadcastType: str
|
|
||||||
lengthSeconds: int
|
|
||||||
game: Game
|
|
||||||
creator: User
|
|
||||||
|
|
||||||
|
|
||||||
class Chapter(TypedDict):
|
|
||||||
id: str
|
|
||||||
durationMilliseconds: int
|
|
||||||
positionMilliseconds: int
|
|
||||||
type: str
|
|
||||||
description: str
|
|
||||||
subDescription: str
|
|
||||||
thumbnailURL: str
|
|
||||||
game: Game
|
|
||||||
|
|
||||||
|
|
||||||
class GQLError(click.ClickException):
|
class GQLError(click.ClickException):
|
||||||
def __init__(self, errors: List[str]):
|
def __init__(self, errors: List[str]):
|
||||||
|
Loading…
Reference in New Issue
Block a user