mirror of
				https://github.com/fabianonline/telegram_backup.git
				synced 2025-10-28 14:40:04 +00:00 
			
		
		
		
	Modified Settings class to only represent internal Settings. Also, renamed it to DbSettings.
This commit is contained in:
		| @@ -541,7 +541,13 @@ class Database private constructor(var client: TelegramClient) { | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	fun settingsSetValue(key: String, value: String?) { | ||||
| 	fun fetchSetting(key: String): String? { | ||||
| 		val rs = stmt!!.executeQuery("SELECT value FROM settings WHERE key='${key}'") | ||||
| 		rs.next() | ||||
| 		return rs.getString(1) | ||||
| 	} | ||||
| 	 | ||||
| 	fun saveSetting(key: String, value: String?) { | ||||
| 		val ps = conn!!.prepareStatement("INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)") | ||||
| 		ps.setString(1, key) | ||||
| 		if (value==null) { | ||||
| @@ -552,16 +558,6 @@ class Database private constructor(var client: TelegramClient) { | ||||
| 		ps.execute() | ||||
| 	} | ||||
| 	 | ||||
| 	fun settingsGetSettings(): Map<String, String?> { | ||||
| 		val rs = stmt!!.executeQuery("SELECT key, value FROM settings") | ||||
| 		val result = mutableMapOf<String, String?>() | ||||
| 		while (rs.next()) { | ||||
| 			result.set(rs.getString(1), rs.getString(2)) | ||||
| 		} | ||||
| 		rs.close() | ||||
| 		return result | ||||
| 	} | ||||
|  | ||||
| 	fun getIdsFromQuery(query: String): LinkedList<Int> { | ||||
| 		try { | ||||
| 			val list = LinkedList<Int>() | ||||
|   | ||||
| @@ -1,60 +1,12 @@ | ||||
| package de.fabianonline.telegram_backup | ||||
|  | ||||
| class Settings() { | ||||
|  | ||||
| 	val options = arrayOf( | ||||
| 		Option("gmaps_api_key", "abc", "This contains the api key bla foo bar.") | ||||
| 	) | ||||
| class DbSettings() { | ||||
| 	private fun fetchValue(name: String): String? = Database.getInstance().fetchSetting(name) | ||||
| 	private fun saveValue(name: String, value: String?) = Database.getInstance().saveSetting(name, value) | ||||
| 	 | ||||
| 	init { | ||||
| 		var all_settings = Database.getInstance().settingsGetSettings() | ||||
| 		for ((key, value) in all_settings) { | ||||
| 			val opt = options.find{it.key == key} | ||||
| 			if (opt==null) throw IllegalArgumentException("Setting with key ${key} is unknown.") | ||||
| 			if (value!=null) opt.value = value | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	fun print() { | ||||
| 		val modifiedSettings = options.filter{!it.isDefaultValue()} | ||||
| 		val defaultSettings = options.filter{it.isDefaultValue()} | ||||
| 		 | ||||
| 		if (modifiedSettings.count() > 0) { | ||||
| 			println("Modified settings:") | ||||
| 			modifiedSettings.forEach{it.print()} | ||||
| 			println("\n") | ||||
| 		} | ||||
| 		 | ||||
| 		if (defaultSettings.count() > 0) { | ||||
| 			println("Settings with default value:") | ||||
| 			defaultSettings.forEach{it.print()} | ||||
| 			println("\n") | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	inner open class HiddenOption(val key: String, val default: String) { | ||||
| 		var value: String? = null | ||||
| 		 | ||||
| 		fun save() { | ||||
| 			if (isDefaultValue()) { | ||||
| 				Database.getInstance().settingsSetValue(key, null) | ||||
| 			} else { | ||||
| 				Database.getInstance().settingsSetValue(key, value) | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		open fun print() { | ||||
| 			println("%-30s %-30s".format(key, value)) | ||||
| 		} | ||||
| 		 | ||||
| 		fun isDefaultValue(): Boolean = (value==null || value==default) | ||||
| 			 | ||||
| 	} | ||||
| 	inner class Option(key: String, default: String, val descr: String): HiddenOption(key, default) { | ||||
| 		override fun print() { | ||||
| 			println("%-30s %-30s %s".format(key, value, descr)) | ||||
| 		} | ||||
| 	} | ||||
| 	var pts: String? | ||||
| 		get() = fetchValue("pts") | ||||
| 		set(x: String?) = saveValue("pts", x) | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user