Skip to content

Commit

Permalink
add resmush.it to data saver
Browse files Browse the repository at this point in the history
  • Loading branch information
LuftVerbot committed Jul 25, 2023
1 parent d62b713 commit c5a155e
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ class SourcePreferences(
NONE,
BANDWIDTH_HERO,
WSRV_NL,
RESMUSH_IT,
}
// SY <--
}
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,7 @@ object SettingsAdvancedScreen : SearchableSettings {
DataSaver.NONE to stringResource(R.string.disabled),
DataSaver.BANDWIDTH_HERO to stringResource(R.string.bandwidth_hero),
DataSaver.WSRV_NL to stringResource(R.string.wsrv),
DataSaver.RESMUSH_IT to stringResource(R.string.resmush),
),
),
Preference.PreferenceItem.EditTextPreference(
Expand Down Expand Up @@ -471,7 +472,7 @@ object SettingsAdvancedScreen : SearchableSettings {
} else {
stringResource(R.string.data_saver_image_format_summary_off)
},
enabled = dataSaver != DataSaver.NONE,
enabled = dataSaver != DataSaver.NONE && dataSaver != DataSaver.RESMUSH_IT,
)
},
Preference.PreferenceItem.SwitchPreference(
Expand Down
33 changes: 33 additions & 0 deletions app/src/main/java/exh/util/DataSaver.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@ package exh.util
import eu.kanade.domain.source.service.SourcePreferences
import eu.kanade.domain.source.service.SourcePreferences.DataSaver.BANDWIDTH_HERO
import eu.kanade.domain.source.service.SourcePreferences.DataSaver.NONE
import eu.kanade.domain.source.service.SourcePreferences.DataSaver.RESMUSH_IT
import eu.kanade.domain.source.service.SourcePreferences.DataSaver.WSRV_NL
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.NetworkHelper
import eu.kanade.tachiyomi.source.MangaSource
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.online.HttpSource
import okhttp3.OkHttpClient
import okhttp3.Response
import rx.Observable
import tachiyomi.core.preference.Preference
import uy.kohesive.injekt.injectLazy

interface DataSaver {

Expand Down Expand Up @@ -52,6 +57,7 @@ fun DataSaver(source: MangaSource, preferences: SourcePreferences): DataSaver {
NONE -> DataSaver.NoOp
BANDWIDTH_HERO -> BandwidthHeroDataSaver(preferences)
WSRV_NL -> WsrvNlDataSaver(preferences)
RESMUSH_IT -> ReSmushItDataSaver(preferences)
}
}

Expand Down Expand Up @@ -119,3 +125,30 @@ private class WsrvNlDataSaver(preferences: SourcePreferences) : DataSaver {
}
}
}

private class ReSmushItDataSaver(preferences: SourcePreferences) : DataSaver {

private val network: NetworkHelper by injectLazy()

private val client: OkHttpClient
get() = network.client

private val ignoreJpg = preferences.dataSaverIgnoreJpeg().get()
private val ignoreGif = preferences.dataSaverIgnoreGif().get()

private val quality = preferences.dataSaverImageQuality().get()

override fun compress(imageUrl: String): String {
return when {
imageUrl.contains(".jpeg", true) || imageUrl.contains(".jpg", true) -> if (ignoreJpg) imageUrl else getUrl(imageUrl)
imageUrl.contains(".gif", true) -> if (ignoreGif) imageUrl else getUrl(imageUrl)
else -> getUrl(imageUrl)
}
}

private fun getUrl(imageUrl: String): String {
// Network Request sent to resmush
return client.newCall(GET("http://api.resmush.it/ws.php?img=$imageUrl&qlty=$quality")).execute()
.body.string().substringAfter("\"dest\":\"").substringBefore("\",")
}
}
1 change: 1 addition & 0 deletions i18n/src/main/res/values/strings-aniyomi.xml
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@
<string name="data_saver_color_bw">Convert to Black And White</string>
<string name="bandwidth_hero">Bandwidth Hero (requires a Bandwidth Hero Proxy server)</string>
<string name="wsrv">wsrv.nl</string>
<string name="resmush">resmush.it</string>
<string name="bandwidth_data_saver_server">Bandwidth Hero Proxy Server</string>
<string name="data_saver_server_summary">Put Bandwidth Hero Proxy server url here</string>
</resources>

0 comments on commit c5a155e

Please sign in to comment.