Конфигурация времени ожидания

This commit is contained in:
Lev Plyusnin 2025-01-15 21:45:01 +07:00
parent f093365b13
commit d5feab42dc
No known key found for this signature in database
GPG key ID: 21C6C2C9C0A4460D
4 changed files with 25 additions and 4 deletions

View file

@ -73,6 +73,7 @@ usage: yandex-music-downloader [-h] [--quality <Качество>] [--skip-exist
[--delay <Задержка>] [--stick-to-artist]
[--only-music]
[--compatibility-level <Уровень совместимости>]
[--timeout <Время ожидания>]
(--artist-id <ID исполнителя> | --album-id <ID альбома> | --track-id <ID трека> | --playlist-id <владелец плейлиста>/<тип плейлиста> | -u URL)
[--unsafe-path] [--dir <Папка>]
[--path-pattern <Паттерн>] --token <Токен>
@ -99,6 +100,8 @@ options:
--only-music Загружать только музыкальные альбомы (пропускать подкасты и аудиокниги)
--compatibility-level <Уровень совместимости>
Уровень совместимости, от 0 до 1. См. README для подробного описания (по умолчанию: 1)
--timeout <Время ожидания>
Время ожидания ответа от сервера, в секундах. Увеличьте если возникают сетевые ошибки (по умолчанию: 20)
ID:
--artist-id <ID исполнителя>

View file

@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "yandex-music-downloader"
version = "3.3.1b0"
version = "3.4.0b0"
description = "Загрузчик музыки с сервиса Яндекс.Музыка"
requires-python = ">=3.9"
readme = "README.md"

View file

@ -50,6 +50,13 @@ def compatibility_level_arg(astr: str) -> int:
)
def natural_int_arg(astr: str) -> int:
aint = int(astr)
if aint > 0:
return aint
raise ArgumentTypeError("Значение должен быть > 0")
def cover_resolution_arg(astr: str) -> int:
if astr == "original":
return -1
@ -129,6 +136,15 @@ def main():
f"Уровень совместимости, от {core.MIN_COMPATIBILITY_LEVEL} до {core.MAX_COMPATIBILITY_LEVEL}. См. README для подробного описания"
),
)
common_group.add_argument(
"--timeout",
metavar="<Время ожидания>",
default=20,
type=natural_int_arg,
help=show_default(
"Время ожидания ответа от сервера, в секундах. Увеличьте если возникают сетевые ошибки"
),
)
common_group.add_argument("--debug", action="store_true", help=argparse.SUPPRESS)
id_group_meta = parser.add_argument_group("ID")
@ -204,7 +220,7 @@ def main():
print("Параметер url указан в неверном формате")
return 1
client = core.init_client(args.token)
client = core.init_client(args.token, args.timeout)
result_tracks: Iterable[Track] = []
def album_tracks_gen(album_ids: Iterable[Union[int, str]]) -> Generator[Track]:

View file

@ -63,8 +63,10 @@ class AlbumCover:
mime_type: MimeType
def init_client(token: str) -> Client:
return Client(token).init()
def init_client(token: str, timeout: int) -> Client:
client = Client(token)
client.request.set_timeout(timeout)
return client.init()
def full_title(obj: YandexMusicObject) -> Optional[str]: