feat: crash report | various small fixes

This commit is contained in:
rebelonion
2024-05-01 14:45:08 -05:00
parent 31c509f88c
commit 8a0224e6b0
12 changed files with 250 additions and 88 deletions

View File

@@ -77,7 +77,7 @@ class AnilistQueries {
"""{Media(id:${media.id}){id favourites popularity episodes chapters mediaListEntry{id status score(format:POINT_100)progress private notes repeat customLists updatedAt startedAt{year month day}completedAt{year month day}}isFavourite siteUrl idMal nextAiringEpisode{episode airingAt}source countryOfOrigin format duration season seasonYear startDate{year month day}endDate{year month day}genres studios(isMain:true){nodes{id name siteUrl}}description trailer{site id}synonyms tags{name rank isMediaSpoiler}characters(sort:[ROLE,FAVOURITES_DESC],perPage:25,page:1){edges{role voiceActors { id name { first middle last full native userPreferred } image { large medium } languageV2 } node{id image{medium}name{userPreferred}isFavourite}}}relations{edges{relationType(version:2)node{id idMal mediaListEntry{progress private score(format:POINT_100)status}episodes chapters nextAiringEpisode{episode}popularity meanScore isAdult isFavourite format title{english romaji userPreferred}type status(version:2)bannerImage coverImage{large}}}}staffPreview:staff(perPage:8,sort:[RELEVANCE,ID]){edges{role node{id image{large medium}name{userPreferred}}}}recommendations(sort:RATING_DESC){nodes{mediaRecommendation{id idMal mediaListEntry{progress private score(format:POINT_100)status}episodes chapters nextAiringEpisode{episode}meanScore isAdult isFavourite format title{english romaji userPreferred}type status(version:2)bannerImage coverImage{large}}}}externalLinks{url site}}Page(page:1){pageInfo{total perPage currentPage lastPage hasNextPage}mediaList(isFollowing:true,sort:[STATUS],mediaId:${media.id}){id status score(format: POINT_100) progress progressVolumes user{id name avatar{large medium}}}}}"""
runBlocking {
val anilist = async {
var response = executeQuery<Query.Media>(query, force = true, show = true)
var response = executeQuery<Query.Media>(query, force = true)
if (response != null) {
fun parse() {
val fetchedMedia = response?.data?.media ?: return

View File

@@ -1,10 +1,13 @@
package ani.dantotsu.connections.comments
import android.content.Context
import ani.dantotsu.connections.anilist.Anilist
import ani.dantotsu.isOnline
import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.settings.saving.PrefName
import ani.dantotsu.snackString
import ani.dantotsu.toast
import ani.dantotsu.util.Logger
import com.lagradost.nicehttp.NiceResponse
import com.lagradost.nicehttp.Requests
import eu.kanade.tachiyomi.network.NetworkHelper
@@ -25,6 +28,7 @@ import uy.kohesive.injekt.api.get
object CommentsAPI {
private const val ADDRESS: String = "https://1224665.xyz:443"
private var isOnline: Boolean = true
var authToken: String? = null
var userId: String? = null
var isBanned: Boolean = false
@@ -49,7 +53,8 @@ object CommentsAPI {
val json = try {
request.get(url)
} catch (e: IOException) {
snackString("Failed to fetch comments")
Logger.log(e)
errorMessage("Failed to fetch comments")
return null
}
if (!json.text.startsWith("{")) return null
@@ -71,7 +76,8 @@ object CommentsAPI {
val json = try {
request.get(url)
} catch (e: IOException) {
snackString("Failed to fetch comments")
Logger.log(e)
errorMessage("Failed to fetch comments")
return null
}
if (!json.text.startsWith("{")) return null
@@ -93,7 +99,8 @@ object CommentsAPI {
val json = try {
request.get(url)
} catch (e: IOException) {
snackString("Failed to fetch comment")
Logger.log(e)
errorMessage("Failed to fetch comment")
return null
}
if (!json.text.startsWith("{")) return null
@@ -115,7 +122,8 @@ object CommentsAPI {
val json = try {
request.post(url)
} catch (e: IOException) {
snackString("Failed to vote")
Logger.log(e)
errorMessage("Failed to vote")
return false
}
val res = json.code == 200
@@ -141,7 +149,8 @@ object CommentsAPI {
val json = try {
request.post(url, requestBody = body.build())
} catch (e: IOException) {
snackString("Failed to comment")
Logger.log(e)
errorMessage("Failed to comment")
return null
}
val res = json.code == 200
@@ -152,7 +161,8 @@ object CommentsAPI {
val parsed = try {
Json.decodeFromString<ReturnedComment>(json.text)
} catch (e: Exception) {
snackString("Failed to parse comment")
Logger.log(e)
errorMessage("Failed to parse comment")
return null
}
return Comment(
@@ -179,7 +189,8 @@ object CommentsAPI {
val json = try {
request.delete(url)
} catch (e: IOException) {
snackString("Failed to delete comment")
Logger.log(e)
errorMessage("Failed to delete comment")
return false
}
val res = json.code == 200
@@ -198,7 +209,8 @@ object CommentsAPI {
val json = try {
request.put(url, requestBody = body)
} catch (e: IOException) {
snackString("Failed to edit comment")
Logger.log(e)
errorMessage("Failed to edit comment")
return false
}
val res = json.code == 200
@@ -214,7 +226,8 @@ object CommentsAPI {
val json = try {
request.post(url)
} catch (e: IOException) {
snackString("Failed to ban user")
Logger.log(e)
errorMessage("Failed to ban user")
return false
}
val res = json.code == 200
@@ -241,7 +254,8 @@ object CommentsAPI {
val json = try {
request.post(url, requestBody = body)
} catch (e: IOException) {
snackString("Failed to report comment")
Logger.log(e)
errorMessage("Failed to report comment")
return false
}
val res = json.code == 200
@@ -296,7 +310,8 @@ object CommentsAPI {
return null
}
suspend fun fetchAuthToken(client: OkHttpClient? = null) {
suspend fun fetchAuthToken(context: Context, client: OkHttpClient? = null) {
isOnline = isOnline(context)
if (authToken != null) return
val MAX_RETRIES = 5
val tokenLifetime: Long = 1000 * 60 * 60 * 24 * 6 // 6 days
@@ -325,7 +340,8 @@ object CommentsAPI {
val parsed = try {
Json.decodeFromString<AuthResponse>(json.text)
} catch (e: Exception) {
snackString("Failed to login to comments API: ${e.printStackTrace()}")
Logger.log(e)
errorMessage("Failed to login to comments API: ${e.printStackTrace()}")
return
}
PrefManager.setVal(PrefName.CommentAuthResponse, parsed)
@@ -345,12 +361,18 @@ object CommentsAPI {
return
}
} catch (e: IOException) {
snackString("Failed to login to comments API")
Logger.log(e)
errorMessage("Failed to login to comments API")
return
}
kotlinx.coroutines.delay(60000)
}
snackString("Failed to login after multiple attempts")
errorMessage("Failed to login after multiple attempts")
}
private fun errorMessage(reason: String) {
Logger.log(reason)
if (isOnline) snackString(reason)
}
fun logout() {