1
1
package awais.instagrabber.webservices
2
2
3
3
import awais.instagrabber.fragments.settings.PreferenceKeys
4
- import awais.instagrabber.models.HighlightModel
5
4
import awais.instagrabber.models.StoryModel
6
5
import awais.instagrabber.repositories.StoriesService
7
6
import awais.instagrabber.repositories.requests.StoryViewerOptions
7
+ import awais.instagrabber.repositories.responses.stories.ArchiveResponse
8
8
import awais.instagrabber.repositories.responses.stories.Story
9
9
import awais.instagrabber.repositories.responses.stories.StoryStickerResponse
10
10
import awais.instagrabber.utils.Constants
@@ -35,14 +35,15 @@ open class StoriesRepository(private val service: StoriesService) {
35
35
Story (
36
36
broadcast.id,
37
37
broadcast.publishedTime,
38
+ 1 ,
38
39
0L ,
39
40
broadcast.broadcastOwner,
40
- 1 ,
41
41
broadcast.muted,
42
42
false , // unclear
43
43
null ,
44
44
null ,
45
45
null ,
46
+ null ,
46
47
broadcast
47
48
)
48
49
)
@@ -53,11 +54,11 @@ open class StoriesRepository(private val service: StoriesService) {
53
54
54
55
open suspend fun fetchHighlights (profileId : Long ): List <Story > {
55
56
val response = service.fetchHighlights(profileId)
56
- val highlightModels = response.tray ? : listOf ()
57
+ val highlightModels = response? .tray ? : listOf ()
57
58
return highlightModels
58
59
}
59
60
60
- suspend fun fetchArchive (maxId : String ): ArchiveFetchResponse {
61
+ suspend fun fetchArchive (maxId : String ): ArchiveResponse ? {
61
62
val form = mutableMapOf (
62
63
" include_suggested_highlights" to " false" ,
63
64
" is_in_archive_home" to " true" ,
@@ -66,24 +67,7 @@ open class StoriesRepository(private val service: StoriesService) {
66
67
if (! isEmpty(maxId)) {
67
68
form[" max_id" ] = maxId // NOT TESTED
68
69
}
69
- val response = service.fetchArchive(form)
70
- val data = JSONObject (response)
71
- val highlightsReel = data.getJSONArray(" items" )
72
- val length = highlightsReel.length()
73
- val highlightModels: MutableList <HighlightModel > = ArrayList ()
74
- for (i in 0 until length) {
75
- val highlightNode = highlightsReel.getJSONObject(i)
76
- highlightModels.add(
77
- HighlightModel (
78
- null ,
79
- highlightNode.getString(Constants .EXTRAS_ID ),
80
- highlightNode.getJSONObject(" cover_image_version" ).getString(" url" ),
81
- highlightNode.getLong(" latest_reel_media" ),
82
- highlightNode.getInt(" media_count" )
83
- )
84
- )
85
- }
86
- return ArchiveFetchResponse (highlightModels, data.getBoolean(" more_available" ), data.getString(" max_id" ))
70
+ return service.fetchArchive(form)
87
71
}
88
72
89
73
open suspend fun getUserStory (options : StoryViewerOptions ): List <StoryModel > {
@@ -248,12 +232,6 @@ open class StoriesRepository(private val service: StoriesService) {
248
232
return listCopy
249
233
}
250
234
251
- class ArchiveFetchResponse (val result : List <HighlightModel >, val hasNextPage : Boolean , val nextCursor : String ) {
252
- fun hasNextPage (): Boolean {
253
- return hasNextPage
254
- }
255
- }
256
-
257
235
companion object {
258
236
@Volatile
259
237
private var INSTANCE : StoriesRepository ? = null
0 commit comments