feat(covers): клиентское обогащение обложек через iTunes (обход бана сервера)
Серверный IP забанен Apple (iTunes search 429), а Deezer из РФ пуст — обложки перестали наливаться. Теперь iTunes-поиск делает КЛИЕНТ (его IP не забанен): для now-playing-треков без обложки ищет арт в iTunes и шлёт ССЫЛКУ на наш бэкенд (POST /covers/submit), сервер качает её (CDN из РФ доступен) и кладёт WebP — дальше обложка приходит всем через /now-playing. Дедуп по треку + троттлинг 1.5с (CoverEnrichmentManager). Сервер: host-whitelist (SSRF), идемпотентность (first-write-wins). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -102,6 +102,20 @@ object AppModule {
|
||||
.addConverterFactory(json.asConverterFactory("application/json".toMediaType()))
|
||||
.build()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@Named("itunes")
|
||||
fun provideItunesRetrofit(okHttpClient: OkHttpClient, json: Json): Retrofit = Retrofit.Builder()
|
||||
.baseUrl("https://itunes.apple.com/")
|
||||
.client(okHttpClient)
|
||||
.addConverterFactory(json.asConverterFactory("application/json".toMediaType()))
|
||||
.build()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideItunesApi(@Named("itunes") retrofit: Retrofit): com.radiola.data.remote.ItunesApi =
|
||||
retrofit.create(com.radiola.data.remote.ItunesApi::class.java)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@Named("lrclib")
|
||||
|
||||
Reference in New Issue
Block a user