Skip to content

Commit 2515e09

Browse files
authored
invidious: add pagination support (#32)
1 parent 6f28679 commit 2515e09

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

InvidiousProvider/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// use an integer for version numbers
2-
version = 8
1+
// Use an integer for version numbers
2+
version = 9
33

44
cloudstream {
55
// All of these properties are optional, you can safely remove any of them.

InvidiousProvider/src/main/kotlin/recloudstream/InvidiousProvider.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ import com.lagradost.cloudstream3.LoadResponse
88
import com.lagradost.cloudstream3.MainAPI
99
import com.lagradost.cloudstream3.MainPageRequest
1010
import com.lagradost.cloudstream3.SearchResponse
11+
import com.lagradost.cloudstream3.SearchResponseList
1112
import com.lagradost.cloudstream3.SubtitleFile
1213
import com.lagradost.cloudstream3.TvType
1314
import com.lagradost.cloudstream3.app
1415
import com.lagradost.cloudstream3.newHomePageResponse
1516
import com.lagradost.cloudstream3.newMovieLoadResponse
1617
import com.lagradost.cloudstream3.newMovieSearchResponse
18+
import com.lagradost.cloudstream3.toNewSearchResponseList
1719
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
1820
import com.lagradost.cloudstream3.utils.ExtractorLink
1921
import com.lagradost.cloudstream3.utils.ExtractorLinkType
@@ -23,7 +25,7 @@ import com.lagradost.cloudstream3.utils.loadExtractor
2325
import com.lagradost.cloudstream3.utils.newExtractorLink
2426

2527
class InvidiousProvider : MainAPI() { // all providers must be an instance of MainAPI
26-
override var mainUrl = "https://iv.ggtyler.dev"
28+
override var mainUrl = "https://inv.nadeko.net"
2729
override var name = "Invidious" // name of provider
2830
override val supportedTypes = setOf(TvType.Others)
2931

@@ -57,11 +59,13 @@ class InvidiousProvider : MainAPI() { // all providers must be an instance of Ma
5759
}
5860

5961
// this function gets called when you search for something
60-
override suspend fun search(query: String): List<SearchResponse> {
62+
override suspend fun search(query: String, page: Int): SearchResponseList? {
6163
val res = tryParseJson<List<SearchEntry>>(
62-
app.get("$mainUrl/api/v1/search?q=${query.encodeUri()}&page=1&type=video&fields=videoId,title").text
64+
app.get("$mainUrl/api/v1/search?q=${query.encodeUri()}&page=$page&type=video&fields=videoId,title").text
6365
)
64-
return res?.map { it.toSearchResponse(this) } ?: emptyList()
66+
return res?.map {
67+
it.toSearchResponse(this)
68+
}?.toNewSearchResponseList()
6569
}
6670

6771
override suspend fun load(url: String): LoadResponse? {

0 commit comments

Comments
 (0)