mirror of
https://github.com/fumiama/copymanga.git
synced 2026-06-07 16:20:24 +08:00
v2.5.4
修复 1. 一些闪退
This commit is contained in:
@@ -12,7 +12,7 @@ android {
|
||||
minSdkVersion 23
|
||||
//noinspection OldTargetApi
|
||||
targetSdkVersion 34
|
||||
versionCode 75
|
||||
versionCode 76
|
||||
versionName '2.5.4'
|
||||
resourceConfigurations += ['zh', 'zh-rCN']
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ object Config {
|
||||
field = LazyHeaders.Builder()
|
||||
.addHeader("referer", referer)
|
||||
.addHeader("User-Agent", pc_ua)
|
||||
.addHeader("source", "copyApp")
|
||||
.addHeader("source", net_source.value)
|
||||
.addHeader("webp", "1")
|
||||
.addHeader("version", app_ver.value)
|
||||
.addHeader(
|
||||
@@ -81,12 +81,19 @@ object Config {
|
||||
|
||||
val net_use_gzip = PreferenceBoolean("settings_cat_net_sw_use_gzip", false)
|
||||
val net_use_json = PreferenceBoolean("settings_cat_net_sw_use_json", false)
|
||||
val net_platform = PreferenceBoolean("settings_cat_net_sw_platform", false)
|
||||
val net_referer = PreferenceBoolean("settings_cat_net_sw_referer", false)
|
||||
val net_version = PreferenceBoolean("settings_cat_net_sw_version", false)
|
||||
val net_region = PreferenceBoolean("settings_cat_net_sw_region", false)
|
||||
val net_no_webp = PreferenceBoolean("settings_cat_net_no_webp", false)
|
||||
val net_use_comandy = PreferenceBoolean("settings_cat_net_sw_use_comandy", false)
|
||||
val net_use_foreign = PreferenceBoolean("settings_cat_net_sw_use_foreign", false)
|
||||
private val net_use_img_proxy = PreferenceBoolean("settings_cat_net_sw_use_img_proxy", false)
|
||||
val net_use_api_proxy = PreferenceBoolean("settings_cat_net_sw_use_api_proxy", false)
|
||||
val net_img_resolution = PreferenceString(R.string.imgResolutionKeyID)
|
||||
val net_umstring = PreferenceString("settings_cat_net_et_umstring")
|
||||
val net_source = PreferenceString("settings_cat_net_et_source", R.string.source)
|
||||
val net_ua = PreferenceString("settings_cat_net_et_ua", "__default_ua__")
|
||||
|
||||
val view_manga_inverse_chapters = PreferenceBoolean("settings_cat_vm_sw_inverse_chapters", false)
|
||||
val view_manga_always_dark_bg = PreferenceBoolean("settings_cat_vm_sw_always_dark_bg", false)
|
||||
|
||||
@@ -106,12 +106,19 @@ class Api {
|
||||
}?: DownloadTools.requestApiWithBody(u, method, body, contentType)).decodeToString()
|
||||
r = Gson().fromJson(ret, ReturnBase::class.java)
|
||||
if (r!!.code != 200) {
|
||||
mu.write { mHostApiUrls.remove(api) }
|
||||
mu.write {
|
||||
if (mHostApiUrls.size <= 1) return@write
|
||||
mHostApiUrls.remove(api)
|
||||
}
|
||||
} else {
|
||||
return ret
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
mu.write { mHostApiUrls.remove(api) }
|
||||
e.printStackTrace()
|
||||
mu.write {
|
||||
if (mHostApiUrls.size <= 1) return@write
|
||||
mHostApiUrls.remove(api)
|
||||
}
|
||||
}
|
||||
}
|
||||
throw IllegalStateException("错误码${r!!.code}, 信息: ${r!!.message}")
|
||||
|
||||
@@ -30,20 +30,23 @@ object DownloadTools {
|
||||
connection.connectTimeout = timeout
|
||||
connection.readTimeout = timeout
|
||||
connection.apply {
|
||||
setRequestProperty("user-agent", Config.pc_ua)
|
||||
setRequestProperty("source", "copyApp")
|
||||
Config.net_ua.value.let {
|
||||
if (it.isEmpty()) return@let
|
||||
setRequestProperty("user-agent", if (it == "__default_ua__") Config.pc_ua else it)
|
||||
}
|
||||
Config.net_source.value.let { if(it.isNotEmpty()) setRequestProperty("source", it) }
|
||||
// deviceinfo
|
||||
setRequestProperty("webp", "1")
|
||||
if (!Config.net_no_webp.value) setRequestProperty("webp", "1")
|
||||
setRequestProperty("dt", SimpleDateFormat("yyyy.MM.dd", Locale.getDefault()).format(Calendar.getInstance().time))
|
||||
if (Config.net_use_gzip.value) setRequestProperty("accept-encoding", "gzip")
|
||||
setRequestProperty("authorization", "Token${Config.token.value?.let { tk ->
|
||||
if (tk.isNotEmpty()) " $tk" else ""
|
||||
}}")
|
||||
setRequestProperty("platform", Config.platform.value)
|
||||
setRequestProperty("referer", Config.referer)
|
||||
if (Config.net_platform.value) setRequestProperty("platform", Config.platform.value)
|
||||
if (Config.net_referer.value) setRequestProperty("referer", Config.referer)
|
||||
if (Config.net_use_json.value) setRequestProperty("accept", "application/json")
|
||||
setRequestProperty("version", Config.app_ver.value)
|
||||
setRequestProperty("region", if(!Config.net_use_foreign.value) "1" else "0")
|
||||
if (Config.net_version.value) setRequestProperty("version", Config.app_ver.value)
|
||||
if (Config.net_region.value) setRequestProperty("region", if(!Config.net_use_foreign.value) "1" else "0")
|
||||
// device
|
||||
// host
|
||||
Config.net_umstring.value.let { if (it.isNotEmpty()) setRequestProperty("umstring", it) }
|
||||
@@ -59,20 +62,23 @@ object DownloadTools {
|
||||
capsule.url = url
|
||||
capsule.method = method
|
||||
capsule.headers = hashMapOf()
|
||||
capsule.headers["user-agent"] = Config.pc_ua
|
||||
capsule.headers["source"] = "copyApp"
|
||||
Config.net_ua.value.let {
|
||||
if (it.isEmpty()) return@let
|
||||
capsule.headers["user-agent"] = if (it == "__default_ua__") Config.pc_ua else it
|
||||
}
|
||||
Config.net_source.value.let { if(it.isNotEmpty()) capsule.headers["source"] = it }
|
||||
// deviceinfo
|
||||
capsule.headers["webp"] = "1"
|
||||
if (!Config.net_no_webp.value) capsule.headers["webp"] = "1"
|
||||
capsule.headers["dt"] = SimpleDateFormat("yyyy.MM.dd", Locale.getDefault()).format(Calendar.getInstance().time)
|
||||
if (Config.net_use_gzip.value) capsule.headers["accept-encoding"] = "gzip"
|
||||
capsule.headers["authorization"] = "Token${Config.token.value?.let { tk ->
|
||||
if (tk.isNotEmpty()) " $tk" else ""
|
||||
}}"
|
||||
capsule.headers["platform"] = Config.platform.value
|
||||
capsule.headers["referer"] = Config.referer
|
||||
if (Config.net_platform.value) capsule.headers["platform"] = Config.platform.value
|
||||
if (Config.net_referer.value) capsule.headers["referer"] = Config.referer
|
||||
if (Config.net_use_json.value) capsule.headers["accept"] = "application/json"
|
||||
capsule.headers["version"] = Config.app_ver.value
|
||||
capsule.headers["region"] = if(!Config.net_use_foreign.value) "1" else "0"
|
||||
if (Config.net_version.value) capsule.headers["version"] = Config.app_ver.value
|
||||
if (Config.net_region.value) capsule.headers["region"] = if(!Config.net_use_foreign.value) "1" else "0"
|
||||
// device
|
||||
// host
|
||||
Config.net_umstring.value.let { if (it.isNotEmpty()) capsule.headers["umstring"] = it }
|
||||
|
||||
@@ -4,9 +4,11 @@
|
||||
<!ENTITY appver "2.3.0">
|
||||
<!ENTITY proxyurl "copymanga.azurewebsites.net">
|
||||
<!ENTITY platform "3">
|
||||
<!ENTITY source "copyApp">
|
||||
]>
|
||||
<resources>
|
||||
<string name="app_name">拷贝漫画</string>
|
||||
<string name="source">&source;</string>
|
||||
|
||||
<string name="action_settings">设定</string>
|
||||
<string name="action_info">关于</string>
|
||||
@@ -177,12 +179,26 @@
|
||||
<string name="settings_cat_net_sm_use_gzip">告知服务器优先返回GZip格式数据</string>
|
||||
<string name="settings_cat_net_sw_use_json">请求JSON</string>
|
||||
<string name="settings_cat_net_sm_use_json">显式告知服务器返回JSON格式数据</string>
|
||||
<string name="settings_cat_net_sw_platform">请求平台</string>
|
||||
<string name="settings_cat_net_sm_platform">向服务器报告平台版本号</string>
|
||||
<string name="settings_cat_net_sw_referer">请求来源</string>
|
||||
<string name="settings_cat_net_sm_referer">向服务器报告请求来源</string>
|
||||
<string name="settings_cat_net_sw_version">请求版本号</string>
|
||||
<string name="settings_cat_net_sm_version">向服务器报告请求版本号</string>
|
||||
<string name="settings_cat_net_sw_region">请求区域</string>
|
||||
<string name="settings_cat_net_sm_region">向服务器报告请求区域</string>
|
||||
<string name="settings_cat_net_sw_no_webp">不请求WebP</string>
|
||||
<string name="settings_cat_net_sm_no_webp">不向服务器报告WebP请求</string>
|
||||
<string name="settings_cat_net_et_title_api_url">请求API网址</string>
|
||||
<string name="settings_cat_net_et_summary_api_url">一般无需更改,除非拷贝漫画官方更改网址,默认:&hosturl;</string>
|
||||
<string name="settings_cat_net_et_title_reverse_proxy">反向代理</string>
|
||||
<string name="settings_cat_net_et_summary_reverse_proxy">您可以自建反向代理并填写在此处以解决网络不畅</string>
|
||||
<string name="settings_cat_net_et_title_umstring">友盟ID</string>
|
||||
<string name="settings_cat_net_et_summary_umstring">填写您分配到的友盟ID</string>
|
||||
<string name="settings_cat_net_et_title_source">请求源</string>
|
||||
<string name="settings_cat_net_et_summary_source">默认&source;</string>
|
||||
<string name="settings_cat_net_et_title_ua">请求UA</string>
|
||||
<string name="settings_cat_net_et_summary_ua">自定义请求UA</string>
|
||||
<string name="settings_cat_net_sw_use_api_proxy">使用API代理(需要密钥)</string>
|
||||
<string name="settings_cat_net_sm_use_api_proxy">作者自建的API代理,可缓解国内图书详情加载问题,但不保证100%解决,也不保证一直可用</string>
|
||||
<string name="settings_cat_net_sw_use_img_proxy">使用图床代理(需要密钥)</string>
|
||||
|
||||
@@ -89,6 +89,36 @@
|
||||
app:selectable="true"
|
||||
app:summary="@string/settings_cat_net_sm_use_json"
|
||||
app:title="@string/settings_cat_net_sw_use_json" />
|
||||
<SwitchPreferenceCompat
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_sw_platform"
|
||||
app:selectable="true"
|
||||
app:summary="@string/settings_cat_net_sm_platform"
|
||||
app:title="@string/settings_cat_net_sw_platform" />
|
||||
<SwitchPreferenceCompat
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_sw_referer"
|
||||
app:selectable="true"
|
||||
app:summary="@string/settings_cat_net_sm_referer"
|
||||
app:title="@string/settings_cat_net_sw_referer" />
|
||||
<SwitchPreferenceCompat
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_sw_version"
|
||||
app:selectable="true"
|
||||
app:summary="@string/settings_cat_net_sm_version"
|
||||
app:title="@string/settings_cat_net_sw_version" />
|
||||
<SwitchPreferenceCompat
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_sw_region"
|
||||
app:selectable="true"
|
||||
app:summary="@string/settings_cat_net_sm_version"
|
||||
app:title="@string/settings_cat_net_sw_version" />
|
||||
<SwitchPreferenceCompat
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_no_webp"
|
||||
app:selectable="true"
|
||||
app:summary="@string/settings_cat_net_sm_no_webp"
|
||||
app:title="@string/settings_cat_net_sw_no_webp" />
|
||||
<ListPreference
|
||||
android:max="1500"
|
||||
app:iconSpaceReserved="false"
|
||||
@@ -142,6 +172,26 @@
|
||||
app:enableCopying="true"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_et_umstring" />
|
||||
<EditTextPreference
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:selectAllOnFocus="false"
|
||||
android:singleLine="true"
|
||||
android:title="@string/settings_cat_net_et_title_source"
|
||||
android:summary="@string/settings_cat_net_et_summary_source"
|
||||
app:enableCopying="true"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_et_source" />
|
||||
<EditTextPreference
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:selectAllOnFocus="false"
|
||||
android:singleLine="true"
|
||||
android:title="@string/settings_cat_net_et_title_ua"
|
||||
android:summary="@string/settings_cat_net_et_summary_ua"
|
||||
app:enableCopying="true"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="settings_cat_net_et_ua" />
|
||||
<SwitchPreferenceCompat
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="@string/apiProxyKeyID"
|
||||
|
||||
Reference in New Issue
Block a user