fix: network safety

This commit is contained in:
rebelonion 2024-05-01 19:45:37 -05:00
parent f03af6856a
commit e32bfa0cfa
7 changed files with 47 additions and 28 deletions

View file

@ -12,6 +12,8 @@ import ani.dantotsu.addons.AddonManager
import ani.dantotsu.addons.LoadResult import ani.dantotsu.addons.LoadResult
import ani.dantotsu.addons.AddonInstallReceiver import ani.dantotsu.addons.AddonInstallReceiver
import ani.dantotsu.media.AddonType import ani.dantotsu.media.AddonType
import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.settings.saving.PrefName
import ani.dantotsu.util.Logger import ani.dantotsu.util.Logger
import eu.kanade.tachiyomi.extension.InstallStep import eu.kanade.tachiyomi.extension.InstallStep
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -70,7 +72,7 @@ class TorrentAddonManager(
} }
override fun isAvailable(): Boolean { override fun isAvailable(): Boolean {
return extension?.extension != null return extension?.extension != null && PrefManager.getVal(PrefName.TorrentEnabled)
} }
override fun getVersion(): String? { override fun getVersion(): String? {

View file

@ -40,7 +40,12 @@ class MangaUpdates {
e.printStackTrace() e.printStackTrace()
} }
} }
val res = client.post(apiUrl, json = query).parsed<MangaUpdatesResponse>() val res = try {
client.post(apiUrl, json = query).parsed<MangaUpdatesResponse>()
} catch (e: Exception) {
Logger.log(e.toString())
return@tryWithSuspend null
}
coroutineScope { coroutineScope {
res.results?.map { res.results?.map {
async(Dispatchers.IO) { async(Dispatchers.IO) {

View file

@ -271,33 +271,40 @@ class SelectorDialogFragment : BottomSheetDialogFragment() {
if (torrentExtension.isAvailable()) { if (torrentExtension.isAvailable()) {
val activity = currActivity() ?: requireActivity() val activity = currActivity() ?: requireActivity()
launchIO { launchIO {
val extension = torrentExtension.extension!!.extension try {
torrentExtension.torrentHash?.let { val extension = torrentExtension.extension!!.extension
extension.removeTorrent(it) torrentExtension.torrentHash?.let {
} extension.removeTorrent(it)
val index = if (url.contains("index=")) {
url.substringAfter("index=").toIntOrNull() ?: 0
} else 0
Logger.log("Sending: ${url}, ${video.quality}, $index")
val currentTorrent = extension.addTorrent(
url, video.quality.toString(), "", "", false
)
torrentExtension.torrentHash = currentTorrent.hash
video.file.url = extension.getLink(currentTorrent, index)
Logger.log("Received: ${video.file.url}")
if (launch == true) {
Intent(activity, ExoplayerView::class.java).apply {
ExoplayerView.media = media
ExoplayerView.initialized = true
startActivity(this)
} }
} else { val index = if (url.contains("index=")) {
model.setEpisode( url.substringAfter("index=").toIntOrNull() ?: 0
media.anime!!.episodes!![media.anime.selectedEpisode!!]!!, } else 0
"startExo no launch" Logger.log("Sending: ${url}, ${video.quality}, $index")
val currentTorrent = extension.addTorrent(
url, video.quality.toString(), "", "", false
) )
torrentExtension.torrentHash = currentTorrent.hash
video.file.url = extension.getLink(currentTorrent, index)
Logger.log("Received: ${video.file.url}")
if (launch == true) {
Intent(activity, ExoplayerView::class.java).apply {
ExoplayerView.media = media
ExoplayerView.initialized = true
startActivity(this)
}
} else {
model.setEpisode(
media.anime!!.episodes!![media.anime.selectedEpisode!!]!!,
"startExo no launch"
)
}
dismiss()
} catch (e: Exception) {
Injekt.get<CrashlyticsInterface>().logException(e)
Logger.log(e)
toast("Error starting video")
dismiss()
} }
dismiss()
} }
} else { } else {
try { try {

View file

@ -1,7 +1,6 @@
package ani.dantotsu.others package ani.dantotsu.others
import android.os.Bundle import android.os.Bundle
import android.text.InputType
import android.view.View import android.view.View
import android.widget.Button import android.widget.Button
import android.widget.EditText import android.widget.EditText

View file

@ -26,7 +26,11 @@ class ImageSearchViewModel : ViewModel() {
) )
.build() .build()
val res = client.post(url, requestBody = requestBody).parsed<SearchResult>() val res = try {
client.post(url, requestBody = requestBody).parsed<SearchResult>()
} catch (e: Exception) {
SearchResult(error = e.message)
}
searchResultLiveData.postValue(res) searchResultLiveData.postValue(res)
} }

View file

@ -52,6 +52,7 @@
android:inputType="textMultiLine|none" android:inputType="textMultiLine|none"
android:textIsSelectable="true" android:textIsSelectable="true"
android:focusable="false" android:focusable="false"
android:textSize="12sp"
android:focusableInTouchMode="false" android:focusableInTouchMode="false"
android:padding="16dp" android:padding="16dp"
android:textColor="?attr/colorOnBackground" /> android:textColor="?attr/colorOnBackground" />

View file

@ -139,6 +139,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="marquee" android:ellipsize="marquee"
android:fontFamily="@font/poppins_bold" android:fontFamily="@font/poppins_bold"
android:layout_marginStart="2dp"
android:maxLines="5" android:maxLines="5"
android:text="@string/empty" android:text="@string/empty"
app:lineHeight="15sp" /> app:lineHeight="15sp" />