Skip to content

Commit

Permalink
chore: update dependencies
Browse files Browse the repository at this point in the history
update nitrite from v3 to v4
  • Loading branch information
omg-xtao committed Jan 29, 2025
1 parent 68cf709 commit 44c52d2
Show file tree
Hide file tree
Showing 18 changed files with 224 additions and 186 deletions.
4 changes: 3 additions & 1 deletion TMessagesProj/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,9 @@ dependencies {
implementation "com.squareup.okhttp3:okhttp:5.0.0-alpha.10"
implementation 'com.neovisionaries:nv-websocket-client:2.14'
implementation 'dnsjava:dnsjava:3.4.1'
implementation "org.dizitart:nitrite:3.4.3"
// db
implementation 'org.dizitart:nitrite:4.3.0'
implementation 'org.dizitart:nitrite-mvstore-adapter:4.3.0'

implementation "cn.hutool:hutool-core:5.7.13"
implementation "cn.hutool:hutool-crypto:5.7.13"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,6 @@
import androidx.annotation.RequiresApi;
import androidx.core.content.pm.ShortcutManagerCompat;

import org.apache.commons.lang3.StringUtils;
import org.dizitart.no2.objects.filters.ObjectFilters;
import org.json.JSONArray;
import org.json.JSONException;
import androidx.annotation.IntDef;

import org.json.JSONObject;
import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.SerializedData;
Expand Down Expand Up @@ -556,7 +550,7 @@ public static int getLastLocalId() {
public static void saveAccounts() {
FileLog.e("Save accounts: " + activeAccounts, new Exception());
ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE).edit()
.putString("active_accounts", StringUtils.join(activeAccounts, ","))
.putString("active_accounts", StrUtil.join(",", activeAccounts))
.apply();
}

Expand Down Expand Up @@ -734,7 +728,7 @@ public static void loadConfig() {
}

if (!SharedConfig.activeAccounts.isEmpty()) {
preferences.edit().putString("active_accounts", StringUtils.join(activeAccounts, ",")).apply();
preferences.edit().putString("active_accounts", StrUtil.join(",", activeAccounts)).apply();
}

preferences.edit().putBoolean("activeAccountsLoaded", true).apply();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,6 @@

import com.jakewharton.processphoenix.ProcessPhoenix;

import org.apache.commons.lang3.StringUtils;

import org.telegram.PhoneFormat.PhoneFormat;
import org.telegram.messenger.AccountInstance;
import org.telegram.messenger.AndroidUtilities;
Expand Down
34 changes: 20 additions & 14 deletions TMessagesProj/src/main/java/tw/nekomimi/nekogram/database/DbPref.kt
Original file line number Diff line number Diff line change
@@ -1,25 +1,31 @@
package tw.nekomimi.nekogram.database

import android.content.SharedPreferences
import org.dizitart.no2.*
import org.dizitart.no2.filters.Filters
import org.dizitart.no2.collection.Document
import org.dizitart.no2.collection.FindOptions
import org.dizitart.no2.collection.NitriteCollection
import org.dizitart.no2.collection.UpdateOptions
import org.dizitart.no2.filters.Filter
import org.dizitart.no2.filters.FluentFilter
import org.dizitart.no2.index.IndexOptions
import org.dizitart.no2.index.IndexType
import org.telegram.messenger.FileLog
import tw.nekomimi.nekogram.utils.UIUtil

class DbPref(val connection: NitriteCollection) : SharedPreferences {
class DbPref(val collection: NitriteCollection) : SharedPreferences {

init {
if (!connection.hasIndex("key")) {
connection.createIndex("key", IndexOptions.indexOptions(IndexType.Unique))
if (!collection.hasIndex("key")) {
collection.createIndex(IndexOptions.indexOptions(IndexType.UNIQUE), "key")
}
}

val listeners = LinkedHashSet<SharedPreferences.OnSharedPreferenceChangeListener>()

val isEmpty get() = connection.find(FindOptions.limit(0, 1)).count() == 0
val isEmpty get() = collection.find(FindOptions.limitBy(1)).count() == 0

private inline fun <reified T> getAs(key: String, defValue: T): T {
connection.find(Filters.eq("key", key)).apply {
collection.find(FluentFilter.where("key").eq(key)).apply {
runCatching {
return first().get("value", T::class.java)
}
Expand All @@ -28,7 +34,7 @@ class DbPref(val connection: NitriteCollection) : SharedPreferences {
}

override fun contains(key: String): Boolean {
return connection.find(Filters.eq("key", key)).count() > 0
return collection.find(FluentFilter.where("key").eq(key)).count() > 0
}

override fun getBoolean(key: String, defValue: Boolean) = getAs(key, defValue)
Expand All @@ -37,7 +43,7 @@ class DbPref(val connection: NitriteCollection) : SharedPreferences {

override fun getAll(): MutableMap<String, *> {
val allValues = HashMap<String, Any>()
connection.find().forEach {
collection.find().forEach {
allValues[it.get("key", String::class.java)] = it["value"]
}
return allValues
Expand Down Expand Up @@ -113,17 +119,17 @@ class DbPref(val connection: NitriteCollection) : SharedPreferences {
override fun commit(): Boolean {
try {
if (clear) {
connection.remove(Filters.ALL)
collection.remove(Filter.ALL)
} else {
toRemove.forEach {
connection.remove(Filters.eq("key", it))
collection.remove(FluentFilter.where("key").eq(it))
}
}
toApply.forEach { (key, value) ->
if (value == null) {
connection.remove(Filters.eq("key", key))
collection.remove(FluentFilter.where("key").eq(key))
} else {
connection.update(Filters.eq("key", key), Document().apply {
collection.update(FluentFilter.where("key").eq(key), Document.createDocument().apply {
put("key", key)
put("value", value)
}, UpdateOptions.updateOptions(true))
Expand All @@ -142,4 +148,4 @@ class DbPref(val connection: NitriteCollection) : SharedPreferences {

}

}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package tw.nekomimi.nekogram.database

import org.dizitart.no2.Nitrite
import org.dizitart.no2.common.module.NitriteModule
import org.dizitart.no2.mvstore.MVStoreModule
import org.telegram.messenger.ApplicationLoader
import tw.nekomimi.nekogram.utils.FileUtil
import java.io.File

@JvmOverloads
fun mkDatabase(name: String, delete: Boolean = false): Nitrite {
fun mkDatabase(name: String, delete: Boolean = false, module: NitriteModule? = null): Nitrite {

val file = File("${ApplicationLoader.getDataDirFixed()}/databases/$name.db")
FileUtil.initDir(file.parentFile!!)
Expand All @@ -15,12 +17,16 @@ fun mkDatabase(name: String, delete: Boolean = false): Nitrite {
}

fun create(): Nitrite {
val nitrite = Nitrite.builder()
.filePath(file)
.openOrCreate()!!
val storeModule = MVStoreModule.withConfig()
.filePath(file)
.build()
var nitriteBuilder = Nitrite.builder()
.loadModule(storeModule)
if (module != null) nitriteBuilder = nitriteBuilder.loadModule(module)
val nitrite = nitriteBuilder.openOrCreate()

val test = nitrite.openSharedPreference("shared_preferences")
test.connection.close()
test.collection.close()

return nitrite
}
Expand Down Expand Up @@ -52,10 +58,10 @@ fun openMainSharedPreference(name: String, delete: Boolean = false): DbPref {

mainSharedPreferencesDatabase.openSharedPreference(name)

} catch (e: IllegalStateException) {
} catch (_: IllegalStateException) {

openMainSharedPreference(name, true)

}

}
}

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,29 +1,44 @@
package tw.nekomimi.nekogram.transtale

import org.dizitart.no2.objects.ObjectRepository
import org.dizitart.no2.objects.filters.ObjectFilters
import org.dizitart.no2.common.mapper.SimpleNitriteMapper
import org.dizitart.no2.common.module.NitriteModule
import org.dizitart.no2.filters.FluentFilter
import org.dizitart.no2.repository.ObjectRepository
import org.telegram.messenger.LocaleController
import tw.nekomimi.nekogram.NekoConfig
import tw.nekomimi.nekogram.database.mkDatabase
import tw.nekomimi.nekogram.transtale.entity.ChatCCTarget
import tw.nekomimi.nekogram.transtale.entity.ChatLanguage
import tw.nekomimi.nekogram.transtale.entity.TransItem
import tw.nekomimi.nekogram.transtale.mapper.ChatCCTargetConverter
import tw.nekomimi.nekogram.transtale.mapper.ChatLanguageConverter
import tw.nekomimi.nekogram.transtale.mapper.TransItemConverter
import tw.nekomimi.nekogram.utils.UIUtil
import java.util.*
import kotlin.collections.HashMap
import java.util.Locale

class TranslateDb(val code: String) {

var conn: ObjectRepository<TransItem> = db.getRepository(code, TransItem::class.java)
var conn: ObjectRepository<TransItem> = db.getRepository(TransItem::class.java, code)

companion object {

val db = mkDatabase("translate_caches")
val db = mkDatabase("translate_caches", module = NitriteModule.module(getNitriteMapper()))

val repo = HashMap<Locale, TranslateDb>()
val chat = db.getRepository("chat", ChatLanguage::class.java)
val ccTarget = db.getRepository("opencc", ChatCCTarget::class.java)
val chat: ObjectRepository<ChatLanguage> = db.getRepository(ChatLanguage::class.java, "chat")
val ccTarget: ObjectRepository<ChatCCTarget> = db.getRepository(ChatCCTarget::class.java, "opencc")

@JvmStatic fun getNitriteMapper(): SimpleNitriteMapper {
val nitriteMapper = SimpleNitriteMapper()
nitriteMapper.registerEntityConverter(ChatCCTargetConverter())
nitriteMapper.registerEntityConverter(ChatLanguageConverter())
nitriteMapper.registerEntityConverter(TransItemConverter())
return nitriteMapper
}

@JvmStatic fun getChatLanguage(chatId: Long, default: Locale): Locale {

return chat.find(ObjectFilters.eq("chatId", chatId)).firstOrDefault()?.language?.code2Locale
return chat.find(FluentFilter.where("chatId").eq(chatId)).firstOrNull()?.language?.code2Locale
?: default

}
Expand All @@ -38,7 +53,7 @@ class TranslateDb(val code: String) {
@JvmStatic
fun getChatCCTarget(chatId: Long, default: String?): String? {

return ccTarget.find(ObjectFilters.eq("chatId", chatId)).firstOrDefault()?.ccTarget
return ccTarget.find(FluentFilter.where("chatId").eq(chatId)).firstOrNull()?.ccTarget
?: default

}
Expand Down Expand Up @@ -80,7 +95,7 @@ class TranslateDb(val code: String) {

}

fun contains(text: String) = synchronized(this) { conn.find(ObjectFilters.eq("text", text)).count() > 0 }
fun contains(text: String) = synchronized(this) { conn.find(FluentFilter.where("text").eq(text)).count() > 0 }

fun save(text: String, trans: String) = synchronized<Unit>(this) {

Expand All @@ -90,8 +105,8 @@ class TranslateDb(val code: String) {

fun query(text: String) = synchronized(this) {

conn.find(ObjectFilters.eq("text", text)).firstOrDefault()?.trans
conn.find(FluentFilter.where("text").eq(text)).firstOrNull()?.trans

}

}
}
Loading

0 comments on commit 44c52d2

Please sign in to comment.