Перевод

Мелкие шайтанские фокусы
This commit is contained in:
2023-06-24 01:49:30 +05:00
parent 83fad60483
commit 0e0cd3ea07
246 changed files with 1424 additions and 1420 deletions

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube
package it.hamy.innertube
import io.ktor.client.HttpClient
import io.ktor.client.engine.okhttp.OkHttp
@@ -12,9 +12,9 @@ import io.ktor.client.request.header
import io.ktor.http.ContentType
import io.ktor.http.HttpHeaders
import io.ktor.serialization.kotlinx.json.json
import it.vfsfitvnm.innertube.models.NavigationEndpoint
import it.vfsfitvnm.innertube.models.Runs
import it.vfsfitvnm.innertube.models.Thumbnail
import it.hamy.innertube.models.NavigationEndpoint
import it.hamy.innertube.models.Runs
import it.hamy.innertube.models.Thumbnail
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,6 +1,5 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.models
package it.hamy.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
@@ -16,7 +16,7 @@ data class ThumbnailRenderer(
) {
@Serializable
data class Thumbnail(
val thumbnails: List<it.vfsfitvnm.innertube.models.Thumbnail>?
val thumbnails: List<it.hamy.innertube.models.Thumbnail>?
)
}
}

View File

@@ -1,6 +1,6 @@
package it.vfsfitvnm.innertube.models.bodies
package it.hamy.innertube.models.bodies
import it.vfsfitvnm.innertube.models.Context
import it.hamy.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,6 +1,6 @@
package it.vfsfitvnm.innertube.models.bodies
package it.hamy.innertube.models.bodies
import it.vfsfitvnm.innertube.models.Context
import it.hamy.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,6 +1,6 @@
package it.vfsfitvnm.innertube.models.bodies
package it.hamy.innertube.models.bodies
import it.vfsfitvnm.innertube.models.Context
import it.hamy.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,6 +1,6 @@
package it.vfsfitvnm.innertube.models.bodies
package it.hamy.innertube.models.bodies
import it.vfsfitvnm.innertube.models.Context
import it.hamy.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,6 +1,6 @@
package it.vfsfitvnm.innertube.models.bodies
package it.hamy.innertube.models.bodies
import it.vfsfitvnm.innertube.models.Context
import it.hamy.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,6 +1,6 @@
package it.vfsfitvnm.innertube.models.bodies
package it.hamy.innertube.models.bodies
import it.vfsfitvnm.innertube.models.Context
import it.hamy.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,6 +1,6 @@
package it.vfsfitvnm.innertube.models.bodies
package it.hamy.innertube.models.bodies
import it.vfsfitvnm.innertube.models.Context
import it.hamy.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@@ -1,9 +1,9 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.http.Url
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.NavigationEndpoint
import it.vfsfitvnm.innertube.models.bodies.BrowseBody
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.NavigationEndpoint
import it.hamy.innertube.models.bodies.BrowseBody
suspend fun Innertube.albumPage(body: BrowseBody): Result<Innertube.PlaylistOrAlbumPage>? {
return playlistPage(body)?.map { album ->

View File

@@ -1,17 +1,17 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.BrowseResponse
import it.vfsfitvnm.innertube.models.MusicCarouselShelfRenderer
import it.vfsfitvnm.innertube.models.MusicShelfRenderer
import it.vfsfitvnm.innertube.models.SectionListRenderer
import it.vfsfitvnm.innertube.models.bodies.BrowseBody
import it.vfsfitvnm.innertube.utils.findSectionByTitle
import it.vfsfitvnm.innertube.utils.from
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.BrowseResponse
import it.hamy.innertube.models.MusicCarouselShelfRenderer
import it.hamy.innertube.models.MusicShelfRenderer
import it.hamy.innertube.models.SectionListRenderer
import it.hamy.innertube.models.bodies.BrowseBody
import it.hamy.innertube.utils.findSectionByTitle
import it.hamy.innertube.utils.from
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.artistPage(body: BrowseBody): Result<Innertube.ArtistPage>? =
runCatchingNonCancellable {

View File

@@ -1,18 +1,18 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.BrowseResponse
import it.vfsfitvnm.innertube.models.ContinuationResponse
import it.vfsfitvnm.innertube.models.GridRenderer
import it.vfsfitvnm.innertube.models.MusicResponsiveListItemRenderer
import it.vfsfitvnm.innertube.models.MusicShelfRenderer
import it.vfsfitvnm.innertube.models.MusicTwoRowItemRenderer
import it.vfsfitvnm.innertube.models.bodies.BrowseBody
import it.vfsfitvnm.innertube.models.bodies.ContinuationBody
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.BrowseResponse
import it.hamy.innertube.models.ContinuationResponse
import it.hamy.innertube.models.GridRenderer
import it.hamy.innertube.models.MusicResponsiveListItemRenderer
import it.hamy.innertube.models.MusicShelfRenderer
import it.hamy.innertube.models.MusicTwoRowItemRenderer
import it.hamy.innertube.models.bodies.BrowseBody
import it.hamy.innertube.models.bodies.ContinuationBody
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun <T : Innertube.Item> Innertube.itemsPage(
body: BrowseBody,

View File

@@ -1,14 +1,14 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.BrowseResponse
import it.vfsfitvnm.innertube.models.NextResponse
import it.vfsfitvnm.innertube.models.bodies.BrowseBody
import it.vfsfitvnm.innertube.models.bodies.NextBody
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.BrowseResponse
import it.hamy.innertube.models.NextResponse
import it.hamy.innertube.models.bodies.BrowseBody
import it.hamy.innertube.models.bodies.NextBody
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.lyrics(body: NextBody): Result<String?>? = runCatchingNonCancellable {
val nextResponse = client.post(next) {

View File

@@ -1,15 +1,15 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.ContinuationResponse
import it.vfsfitvnm.innertube.models.NextResponse
import it.vfsfitvnm.innertube.models.bodies.ContinuationBody
import it.vfsfitvnm.innertube.models.bodies.NextBody
import it.vfsfitvnm.innertube.utils.from
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.ContinuationResponse
import it.hamy.innertube.models.NextResponse
import it.hamy.innertube.models.bodies.ContinuationBody
import it.hamy.innertube.models.bodies.NextBody
import it.hamy.innertube.utils.from
import it.hamy.innertube.utils.runCatchingNonCancellable

View File

@@ -1,4 +1,4 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.get
@@ -6,11 +6,11 @@ import io.ktor.client.request.post
import io.ktor.client.request.setBody
import io.ktor.http.ContentType
import io.ktor.http.contentType
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.Context
import it.vfsfitvnm.innertube.models.PlayerResponse
import it.vfsfitvnm.innertube.models.bodies.PlayerBody
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.Context
import it.hamy.innertube.models.PlayerResponse
import it.hamy.innertube.models.bodies.PlayerBody
import it.hamy.innertube.utils.runCatchingNonCancellable
import kotlinx.serialization.Serializable
suspend fun Innertube.player(body: PlayerBody) = runCatchingNonCancellable {

View File

@@ -1,17 +1,17 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.BrowseResponse
import it.vfsfitvnm.innertube.models.ContinuationResponse
import it.vfsfitvnm.innertube.models.MusicCarouselShelfRenderer
import it.vfsfitvnm.innertube.models.MusicShelfRenderer
import it.vfsfitvnm.innertube.models.bodies.BrowseBody
import it.vfsfitvnm.innertube.models.bodies.ContinuationBody
import it.vfsfitvnm.innertube.utils.from
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.BrowseResponse
import it.hamy.innertube.models.ContinuationResponse
import it.hamy.innertube.models.MusicCarouselShelfRenderer
import it.hamy.innertube.models.MusicShelfRenderer
import it.hamy.innertube.models.bodies.BrowseBody
import it.hamy.innertube.models.bodies.ContinuationBody
import it.hamy.innertube.utils.from
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.playlistPage(body: BrowseBody) = runCatchingNonCancellable {
val response = client.post(browse) {

View File

@@ -1,13 +1,13 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.GetQueueResponse
import it.vfsfitvnm.innertube.models.bodies.QueueBody
import it.vfsfitvnm.innertube.utils.from
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.GetQueueResponse
import it.hamy.innertube.models.bodies.QueueBody
import it.hamy.innertube.utils.from
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.queue(body: QueueBody) = runCatchingNonCancellable {
val response = client.post(queue) {

View File

@@ -1,18 +1,18 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.BrowseResponse
import it.vfsfitvnm.innertube.models.MusicCarouselShelfRenderer
import it.vfsfitvnm.innertube.models.NextResponse
import it.vfsfitvnm.innertube.models.bodies.BrowseBody
import it.vfsfitvnm.innertube.models.bodies.NextBody
import it.vfsfitvnm.innertube.utils.findSectionByStrapline
import it.vfsfitvnm.innertube.utils.findSectionByTitle
import it.vfsfitvnm.innertube.utils.from
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.BrowseResponse
import it.hamy.innertube.models.MusicCarouselShelfRenderer
import it.hamy.innertube.models.NextResponse
import it.hamy.innertube.models.bodies.BrowseBody
import it.hamy.innertube.models.bodies.NextBody
import it.hamy.innertube.utils.findSectionByStrapline
import it.hamy.innertube.utils.findSectionByTitle
import it.hamy.innertube.utils.from
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.relatedPage(body: NextBody) = runCatchingNonCancellable {
val nextResponse = client.post(next) {

View File

@@ -1,15 +1,15 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.ContinuationResponse
import it.vfsfitvnm.innertube.models.MusicShelfRenderer
import it.vfsfitvnm.innertube.models.SearchResponse
import it.vfsfitvnm.innertube.models.bodies.ContinuationBody
import it.vfsfitvnm.innertube.models.bodies.SearchBody
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.ContinuationResponse
import it.hamy.innertube.models.MusicShelfRenderer
import it.hamy.innertube.models.SearchResponse
import it.hamy.innertube.models.bodies.ContinuationBody
import it.hamy.innertube.models.bodies.SearchBody
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun <T : Innertube.Item> Innertube.searchPage(
body: SearchBody,

View File

@@ -1,12 +1,12 @@
package it.vfsfitvnm.innertube.requests
package it.hamy.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.SearchSuggestionsResponse
import it.vfsfitvnm.innertube.models.bodies.SearchSuggestionsBody
import it.vfsfitvnm.innertube.utils.runCatchingNonCancellable
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.SearchSuggestionsResponse
import it.hamy.innertube.models.bodies.SearchSuggestionsBody
import it.hamy.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.searchSuggestions(body: SearchSuggestionsBody) = runCatchingNonCancellable {
val response = client.post(searchSuggestions) {

View File

@@ -1,9 +1,9 @@
package it.vfsfitvnm.innertube.utils
package it.hamy.innertube.utils
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.MusicResponsiveListItemRenderer
import it.vfsfitvnm.innertube.models.NavigationEndpoint
import it.vfsfitvnm.innertube.models.Runs
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.MusicResponsiveListItemRenderer
import it.hamy.innertube.models.NavigationEndpoint
import it.hamy.innertube.models.Runs
fun Innertube.SongItem.Companion.from(renderer: MusicResponsiveListItemRenderer): Innertube.SongItem? {
return Innertube.SongItem(

View File

@@ -1,8 +1,8 @@
package it.vfsfitvnm.innertube.utils
package it.hamy.innertube.utils
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.MusicShelfRenderer
import it.vfsfitvnm.innertube.models.NavigationEndpoint
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.MusicShelfRenderer
import it.hamy.innertube.models.NavigationEndpoint
fun Innertube.SongItem.Companion.from(content: MusicShelfRenderer.Content): Innertube.SongItem? {
val (mainRuns, otherRuns) = content.runs

View File

@@ -1,7 +1,7 @@
package it.vfsfitvnm.innertube.utils
package it.hamy.innertube.utils
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.MusicTwoRowItemRenderer
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.MusicTwoRowItemRenderer
fun Innertube.AlbumItem.Companion.from(renderer: MusicTwoRowItemRenderer): Innertube.AlbumItem? {
return Innertube.AlbumItem(

View File

@@ -1,7 +1,7 @@
package it.vfsfitvnm.innertube.utils
package it.hamy.innertube.utils
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.PlaylistPanelVideoRenderer
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.PlaylistPanelVideoRenderer
fun Innertube.SongItem.Companion.from(renderer: PlaylistPanelVideoRenderer): Innertube.SongItem? {
return Innertube.SongItem(

View File

@@ -1,8 +1,8 @@
package it.vfsfitvnm.innertube.utils
package it.hamy.innertube.utils
import io.ktor.utils.io.CancellationException
import it.vfsfitvnm.innertube.Innertube
import it.vfsfitvnm.innertube.models.SectionListRenderer
import it.hamy.innertube.Innertube
import it.hamy.innertube.models.SectionListRenderer
internal fun SectionListRenderer.findSectionByTitle(text: String): SectionListRenderer.Content? {
return contents?.find { content ->