Skip to content

Commit 2497fa8

Browse files
committed
refactor(MediaServiceRepository): use lists for SponsorBlock categories
According to the SponsorBlock API documentation categories and actionTypes are string arrays.
1 parent 4f4b090 commit 2497fa8

4 files changed

Lines changed: 13 additions & 8 deletions

File tree

app/src/main/java/com/github/libretube/api/MediaServiceRepository.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ interface MediaServiceRepository {
1717
suspend fun getComments(videoId: String): CommentsPage
1818
suspend fun getSegments(
1919
videoId: String,
20-
category: String,
21-
actionType: String? = null
20+
category: List<String>,
21+
actionType: List<String>? = null
2222
): SegmentData
2323

2424
suspend fun getDeArrowContent(videoIds: String): Map<String, DeArrowContent>

app/src/main/java/com/github/libretube/api/PipedMediaServiceRepository.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.github.libretube.api.obj.StreamItem
1313
import com.github.libretube.api.obj.Streams
1414
import com.github.libretube.constants.PreferenceKeys
1515
import com.github.libretube.helpers.PreferenceHelper
16+
import kotlinx.serialization.encodeToString
1617
import retrofit2.HttpException
1718

1819
open class PipedMediaServiceRepository : MediaServiceRepository {
@@ -36,9 +37,13 @@ open class PipedMediaServiceRepository : MediaServiceRepository {
3637

3738
override suspend fun getSegments(
3839
videoId: String,
39-
category: String,
40-
actionType: String?
41-
): SegmentData = api.getSegments(videoId, category, actionType)
40+
category: List<String>,
41+
actionType: List<String>?
42+
): SegmentData = api.getSegments(
43+
videoId,
44+
JsonHelper.json.encodeToString(category),
45+
JsonHelper.json.encodeToString(actionType)
46+
)
4247

4348
override suspend fun getDeArrowContent(videoIds: String): Map<String, DeArrowContent> =
4449
api.getDeArrowContent(videoIds)

app/src/main/java/com/github/libretube/services/OnlinePlayerService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ open class OnlinePlayerService : AbstractPlayerService() {
209209
if (sponsorBlockConfig.isEmpty()) return@runCatching
210210
sponsorBlockSegments = MediaServiceRepository.instance.getSegments(
211211
videoId,
212-
JsonHelper.json.encodeToString(sponsorBlockConfig.keys),
213-
"""["skip","mute","full","poi","chapter"]"""
212+
sponsorBlockConfig.keys.toList(),
213+
listOf("skip","mute","full","poi","chapter")
214214
).segments
215215

216216
withContext(Dispatchers.Main) {

app/src/main/java/com/github/libretube/ui/dialogs/SubmitSegmentDialog.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ class SubmitSegmentDialog : DialogFragment() {
147147
private suspend fun fetchSegments() {
148148
val categories = resources.getStringArray(R.array.sponsorBlockSegments).toList()
149149
segments = try {
150-
MediaServiceRepository.instance.getSegments(videoId, JsonHelper.json.encodeToString(categories)).segments
150+
MediaServiceRepository.instance.getSegments(videoId, categories).segments
151151
} catch (e: Exception) {
152152
Log.e(TAG(), e.toString())
153153
return

0 commit comments

Comments
 (0)