Merge pull request #5529 from Isira-Seneviratne/Simplify_DeArrow

refactor: Simplify dearrow process
This commit is contained in:
Isira Seneviratne 2024-01-22 19:45:04 +05:30 committed by GitHub
commit 81d3e32582
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 28 deletions

View File

@ -1,23 +1,6 @@
package com.github.libretube.api package com.github.libretube.api
import com.github.libretube.api.obj.Channel import com.github.libretube.api.obj.*
import com.github.libretube.api.obj.ChannelTabResponse
import com.github.libretube.api.obj.CommentsPage
import com.github.libretube.api.obj.DeleteUserRequest
import com.github.libretube.api.obj.EditPlaylistBody
import com.github.libretube.api.obj.Login
import com.github.libretube.api.obj.Message
import com.github.libretube.api.obj.PipedConfig
import com.github.libretube.api.obj.Playlist
import com.github.libretube.api.obj.Playlists
import com.github.libretube.api.obj.SearchResult
import com.github.libretube.api.obj.SegmentData
import com.github.libretube.api.obj.StreamItem
import com.github.libretube.api.obj.Streams
import com.github.libretube.api.obj.Subscribe
import com.github.libretube.api.obj.Subscribed
import com.github.libretube.api.obj.Subscription
import com.github.libretube.api.obj.Token
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
import retrofit2.http.Body import retrofit2.http.Body
import retrofit2.http.GET import retrofit2.http.GET
@ -47,7 +30,7 @@ interface PipedApi {
): SegmentData ): SegmentData
@GET("dearrow") @GET("dearrow")
suspend fun getDeArrowContent(@Query("videoIds") videoIds: String): JsonObject suspend fun getDeArrowContent(@Query("videoIds") videoIds: String): Map<String, DeArrowContent>
@GET("nextpage/comments/{videoId}") @GET("nextpage/comments/{videoId}")
suspend fun getCommentsNextPage( suspend fun getCommentsNextPage(

View File

@ -1,7 +1,6 @@
package com.github.libretube.util package com.github.libretube.util
import android.util.Log import android.util.Log
import com.github.libretube.api.JsonHelper
import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.ContentItem import com.github.libretube.api.obj.ContentItem
import com.github.libretube.api.obj.DeArrowContent import com.github.libretube.api.obj.DeArrowContent
@ -9,17 +8,10 @@ import com.github.libretube.api.obj.StreamItem
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.extensions.toID import com.github.libretube.extensions.toID
import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.helpers.PreferenceHelper
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.decodeFromJsonElement
import java.util.TreeSet import java.util.TreeSet
object DeArrowUtil { object DeArrowUtil {
private fun extractTitleAndThumbnail(data: JsonElement): Pair<String?, String?> { private fun extractTitleAndThumbnail(content: DeArrowContent): Pair<String?, String?> {
val content = try {
JsonHelper.json.decodeFromJsonElement<DeArrowContent>(data)
} catch (e: Exception) {
return null to null
}
val newTitle = content.titles.firstOrNull { it.votes >= 0 || it.locked }?.title val newTitle = content.titles.firstOrNull { it.votes >= 0 || it.locked }?.title
val newThumbnail = content.thumbnails.firstOrNull { val newThumbnail = content.thumbnails.firstOrNull {
it.thumbnail != null && !it.original && (it.votes >= 0 || it.locked) it.thumbnail != null && !it.original && (it.votes >= 0 || it.locked)