mirror of
https://github.com/Horizontal42/Sort_YM.git
synced 2026-11-10 15:42:02 +03:00
Раньше жанр брался только с альбома (одна строка, часто общая: rock/alternative/pop) - разные по звучанию артисты сваливались в одну крупную корзину. Теперь classify_track сводит жанр трека и жанры артиста (client.artists(), несколько тегов на артиста) на уровне под-жанра: при согласии сигналов или отсутствии одного из них берём имеющийся; при конфликте - если альбомный тег зонтичный (GENERIC_SLUGS) доверяем артисту, если точный - треку (вероятный осознанный эксперимент артиста в другом жанре). Один и тот же артист с разными по духу треками теперь раскладывается по разным плейлистам. Под-жанровые группы меньше config.small_group_min схлопываются в родительскую крупную корзину (report.build_rows, двухпроходно, без циклов - coarse_of детерминирована от fine). Попутно: artist_ids трека может быть None (артист без привязки к каталогу Яндекса, встречается у стороннего/пиратского аплоада) - раньше это улетало в client.artists() как строка "None" и валилось BadRequestError на батче; теперь такие id отфильтровываются на записи и дополнительно на чтении кэша.
21 lines
872 B
TOML
21 lines
872 B
TOML
[throttle]
|
|
# Пауза между запросами к API, секунды
|
|
fetch_batch_delay = 0.4
|
|
lyrics_request_delay = 0.25
|
|
apply_request_delay = 0.3
|
|
# Таймаут одного запроса, секунды (библиотека по умолчанию ставит 5 - мало при медленной сети)
|
|
request_timeout = 20
|
|
|
|
[fetch]
|
|
# Сколько id треков в одном батч-запросе client.tracks(...) / client.artists(...)
|
|
batch_size = 100
|
|
|
|
[classify]
|
|
# Минимальный размер под-жанровой группы (fine, lang), чтобы получить отдельный плейлист.
|
|
# Меньшие группы схлопываются в родительскую крупную корзину (rock/indie-alt/...).
|
|
small_group_min = 12
|
|
|
|
[paths]
|
|
token_file = ".token"
|
|
cache_dir = "cache"
|
|
out_dir = "out"
|