mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Enforce maximum extension lib version of 1.2
This commit is contained in:
		| @@ -7,6 +7,7 @@ import com.github.salomonbrys.kotson.string | ||||
| import com.google.gson.Gson | ||||
| import com.google.gson.JsonArray | ||||
| import eu.kanade.tachiyomi.extension.model.Extension | ||||
| import eu.kanade.tachiyomi.extension.util.ExtensionLoader | ||||
| import eu.kanade.tachiyomi.network.GET | ||||
| import eu.kanade.tachiyomi.network.NetworkHelper | ||||
| import eu.kanade.tachiyomi.network.asObservableSuccess | ||||
| @@ -36,17 +37,23 @@ internal class ExtensionGithubApi { | ||||
|  | ||||
|         val json = gson.fromJson<JsonArray>(text) | ||||
|  | ||||
|         return json.map { element -> | ||||
|             val name = element["name"].string.substringAfter("Tachiyomi: ") | ||||
|             val pkgName = element["pkg"].string | ||||
|             val apkName = element["apk"].string | ||||
|             val versionName = element["version"].string | ||||
|             val versionCode = element["code"].int | ||||
|             val lang = element["lang"].string | ||||
|             val icon = "$repoUrl/icon/${apkName.replace(".apk", ".png")}" | ||||
|         return json | ||||
|                 .filter { element -> | ||||
|                     val versionName = element["version"].string | ||||
|                     val libVersion = versionName.substringBeforeLast('.').toDouble() | ||||
|                     libVersion >= ExtensionLoader.LIB_VERSION_MIN && libVersion <= ExtensionLoader.LIB_VERSION_MAX | ||||
|                 } | ||||
|                 .map { element -> | ||||
|                     val name = element["name"].string.substringAfter("Tachiyomi: ") | ||||
|                     val pkgName = element["pkg"].string | ||||
|                     val apkName = element["apk"].string | ||||
|                     val versionName = element["version"].string | ||||
|                     val versionCode = element["code"].int | ||||
|                     val lang = element["lang"].string | ||||
|                     val icon = "$repoUrl/icon/${apkName.replace(".apk", ".png")}" | ||||
|  | ||||
|             Extension.Available(name, pkgName, versionName, versionCode, lang, apkName, icon) | ||||
|         } | ||||
|                     Extension.Available(name, pkgName, versionName, versionCode, lang, apkName, icon) | ||||
|                 } | ||||
|     } | ||||
|  | ||||
|     fun getApkUrl(extension: Extension.Available): String { | ||||
|   | ||||
| @@ -27,8 +27,8 @@ internal object ExtensionLoader { | ||||
|  | ||||
|     private const val EXTENSION_FEATURE = "tachiyomi.extension" | ||||
|     private const val METADATA_SOURCE_CLASS = "tachiyomi.extension.class" | ||||
|     private const val LIB_VERSION_MIN = 1 | ||||
|     private const val LIB_VERSION_MAX = 1 | ||||
|     const val LIB_VERSION_MIN = 1.0 | ||||
|     const val LIB_VERSION_MAX = 1.2 | ||||
|  | ||||
|     private const val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or PackageManager.GET_SIGNATURES | ||||
|  | ||||
| @@ -107,9 +107,9 @@ internal object ExtensionLoader { | ||||
|         } | ||||
|  | ||||
|         // Validate lib version | ||||
|         val majorLibVersion = versionName.substringBefore('.').toInt() | ||||
|         if (majorLibVersion < LIB_VERSION_MIN || majorLibVersion > LIB_VERSION_MAX) { | ||||
|             val exception = Exception("Lib version is $majorLibVersion, while only versions " + | ||||
|         val libVersion = versionName.substringBeforeLast('.').toDouble() | ||||
|         if (libVersion < LIB_VERSION_MIN || libVersion > LIB_VERSION_MAX) { | ||||
|             val exception = Exception("Lib version is $libVersion, while only versions " + | ||||
|                     "$LIB_VERSION_MIN to $LIB_VERSION_MAX are allowed") | ||||
|             Timber.w(exception) | ||||
|             return LoadResult.Error(exception) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user