cleanup sponsorblock

This commit is contained in:
Bnyro 2022-10-28 23:39:25 +02:00
parent e4e71e6e80
commit 8474471691
7 changed files with 25 additions and 14 deletions

View File

@ -9,7 +9,7 @@ import com.github.libretube.api.obj.Playlist
import com.github.libretube.api.obj.PlaylistId import com.github.libretube.api.obj.PlaylistId
import com.github.libretube.api.obj.Playlists import com.github.libretube.api.obj.Playlists
import com.github.libretube.api.obj.SearchResult import com.github.libretube.api.obj.SearchResult
import com.github.libretube.api.obj.Segments import com.github.libretube.api.obj.SegmentData
import com.github.libretube.api.obj.StreamItem import com.github.libretube.api.obj.StreamItem
import com.github.libretube.api.obj.Streams import com.github.libretube.api.obj.Streams
import com.github.libretube.api.obj.Subscribe import com.github.libretube.api.obj.Subscribe
@ -36,7 +36,7 @@ interface PipedApi {
suspend fun getSegments( suspend fun getSegments(
@Path("videoId") videoId: String, @Path("videoId") videoId: String,
@Query("category") category: String @Query("category") category: String
): Segments ): SegmentData
@GET("nextpage/comments/{videoId}") @GET("nextpage/comments/{videoId}")
suspend fun getCommentsNextPage( suspend fun getCommentsNextPage(
@ -48,7 +48,7 @@ interface PipedApi {
suspend fun getSearchResults( suspend fun getSearchResults(
@Query("q") searchQuery: String, @Query("q") searchQuery: String,
@Query("filter") filter: String @Query("filter") filter: String
): com.github.libretube.api.obj.SearchResult ): SearchResult
@GET("nextpage/search") @GET("nextpage/search")
suspend fun getSearchResultsNextPage( suspend fun getSearchResultsNextPage(

View File

@ -4,7 +4,13 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
data class Segment( data class Segment(
val UUID: String? = null,
val actionType: String? = null, val actionType: String? = null,
val category: String? = null, val category: String? = null,
val segment: List<Float>? = arrayListOf() val description: String? = null,
val locked: Int? = null,
val segment: List<Double> = listOf(),
val userID: String? = null,
val videoDuration: Double? = null,
val votes: Int? = null
) )

View File

@ -3,6 +3,8 @@ package com.github.libretube.api.obj
import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.annotation.JsonIgnoreProperties
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
data class Segments( data class SegmentData(
val segments: MutableList<Segment> = arrayListOf() val hash: String? = null,
val segments: List<Segment> = listOf(),
val videoID: String? = null
) )

View File

@ -15,7 +15,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.Segment import com.github.libretube.api.obj.Segment
import com.github.libretube.api.obj.Segments import com.github.libretube.api.obj.SegmentData
import com.github.libretube.api.obj.Streams import com.github.libretube.api.obj.Streams
import com.github.libretube.constants.BACKGROUND_CHANNEL_ID import com.github.libretube.constants.BACKGROUND_CHANNEL_ID
import com.github.libretube.constants.IntentData import com.github.libretube.constants.IntentData
@ -72,7 +72,7 @@ class BackgroundMode : Service() {
/** /**
* SponsorBlock Segment data * SponsorBlock Segment data
*/ */
private var segmentData: Segments? = null private var segmentData: SegmentData? = null
/** /**
* [Notification] for the player * [Notification] for the player
@ -325,7 +325,7 @@ class BackgroundMode : Service() {
if (segmentData == null || segmentData!!.segments.isEmpty()) return if (segmentData == null || segmentData!!.segments.isEmpty()) return
segmentData!!.segments.forEach { segment: Segment -> segmentData!!.segments.forEach { segment: Segment ->
val segmentStart = (segment.segment!![0] * 1000f).toLong() val segmentStart = (segment.segment[0] * 1000f).toLong()
val segmentEnd = (segment.segment[1] * 1000f).toLong() val segmentEnd = (segment.segment[1] * 1000f).toLong()
val currentPosition = player?.currentPosition val currentPosition = player?.currentPosition
if (currentPosition in segmentStart until segmentEnd) { if (currentPosition in segmentStart until segmentEnd) {

View File

@ -38,6 +38,8 @@ import com.github.libretube.R
import com.github.libretube.api.CronetHelper import com.github.libretube.api.CronetHelper
import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.SubscriptionHelper import com.github.libretube.api.SubscriptionHelper
import com.github.libretube.api.obj.ChapterSegment
import com.github.libretube.api.obj.SegmentData
import com.github.libretube.constants.IntentData import com.github.libretube.constants.IntentData
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.constants.ShareObjectType import com.github.libretube.constants.ShareObjectType
@ -139,8 +141,8 @@ class PlayerFragment : BaseFragment() {
*/ */
private lateinit var exoPlayer: ExoPlayer private lateinit var exoPlayer: ExoPlayer
private lateinit var trackSelector: DefaultTrackSelector private lateinit var trackSelector: DefaultTrackSelector
private lateinit var segmentData: com.github.libretube.api.obj.Segments private lateinit var segmentData: SegmentData
private lateinit var chapters: List<com.github.libretube.api.obj.ChapterSegment> private lateinit var chapters: List<ChapterSegment>
/** /**
* for the player view * for the player view
@ -598,7 +600,7 @@ class PlayerFragment : BaseFragment() {
val currentPosition = exoPlayer.currentPosition val currentPosition = exoPlayer.currentPosition
segmentData.segments.forEach { segment: com.github.libretube.api.obj.Segment -> segmentData.segments.forEach { segment: com.github.libretube.api.obj.Segment ->
val segmentStart = (segment.segment!![0] * 1000f).toLong() val segmentStart = (segment.segment[0] * 1000f).toLong()
val segmentEnd = (segment.segment[1] * 1000f).toLong() val segmentEnd = (segment.segment[1] * 1000f).toLong()
// show the button to manually skip the segment // show the button to manually skip the segment

View File

@ -43,7 +43,7 @@ class MarkableTimeBar(
segments.forEach { segments.forEach {
canvas.drawRect( canvas.drawRect(
Rect( Rect(
(it.segment!!.first() + HORIZONTAL_OFFSET).toLength(), (it.segment.first() + HORIZONTAL_OFFSET).toLength(),
marginY, marginY,
(it.segment.last() + HORIZONTAL_OFFSET).toLength(), (it.segment.last() + HORIZONTAL_OFFSET).toLength(),
canvas.height - marginY - 1 canvas.height - marginY - 1
@ -56,7 +56,7 @@ class MarkableTimeBar(
canvas.restore() canvas.restore()
} }
private fun Float.toLength(): Int { private fun Double.toLength(): Int {
return (this * 1000 / player!!.duration * length).toInt() return (this * 1000 / player!!.duration * length).toInt()
} }

View File

@ -35,6 +35,7 @@ object LocaleHelper {
val dm = res.displayMetrics val dm = res.displayMetrics
val conf = res.configuration val conf = res.configuration
conf.setLocale(locale) conf.setLocale(locale)
@Suppress("DEPRECATION")
res.updateConfiguration(conf, dm) res.updateConfiguration(conf, dm)
} }