Update tag database format

This commit is contained in:
FooIbar authored and tarsin committed 2022-12-18 07:55:37 +08:00
1 parent 82ba22cda2
commit 7b906f3c3e
2 files changed
+26 -29

No files matched your search

@@ -58,11 +58,12 @@ class EhTagDatabase(private val name: String, source: BufferedSource) {
tags = tmpTags
if (tags != null) {
tagList = ArrayList()
tags.keys().forEachRemaining { k: String ->
try {
tagList!!.add(Pair(k, tags.getString(k)))
} catch (e: JSONException) {
e.printStackTrace()
tags.keys().forEachRemaining { prefix: String ->
val values = tags.optJSONObject(prefix)
values?.let {
it.keys().forEachRemaining { tag: String ->
tagList!!.add(Pair("$prefix:$tag", values.optString(tag)))
}
}
}
} else {
@@ -70,17 +71,16 @@ class EhTagDatabase(private val name: String, source: BufferedSource) {
}
}
fun getTranslation(tag: String?): String? {
try {
return tag?.let { tags!!.getString(it) }
} catch (e: JSONException) {
e.printStackTrace()
}
return null
fun getTranslation(prefix: String?, tag: String?): String? {
return tags!!.optJSONObject(prefix)?.optString(tag)
}
/* Construct a cold flow for tag database suggestions */
fun suggestFlow(keyword: String, translate: Boolean, exactly: Boolean = false): Flow<Pair<String?, String>> = flow {
fun suggestFlow(
keyword: String,
translate: Boolean,
exactly: Boolean = false
): Flow<Pair<String?, String>> = flow {
tagList?.forEach {
val tag = it.first
val hint = if (translate) it.second else null
@@ -120,17 +120,17 @@ class EhTagDatabase(private val name: String, source: BufferedSource) {
private set
init {
NAMESPACE_TO_PREFIX["artist"] = "a:"
NAMESPACE_TO_PREFIX["cosplayer"] = "cos:"
NAMESPACE_TO_PREFIX["character"] = "c:"
NAMESPACE_TO_PREFIX["female"] = "f:"
NAMESPACE_TO_PREFIX["group"] = "g:"
NAMESPACE_TO_PREFIX["language"] = "l:"
NAMESPACE_TO_PREFIX["male"] = "m:"
NAMESPACE_TO_PREFIX["mixed"] = "x:"
NAMESPACE_TO_PREFIX["other"] = "o:"
NAMESPACE_TO_PREFIX["parody"] = "p:"
NAMESPACE_TO_PREFIX["reclass"] = "r:"
NAMESPACE_TO_PREFIX["artist"] = "a"
NAMESPACE_TO_PREFIX["cosplayer"] = "cos"
NAMESPACE_TO_PREFIX["character"] = "c"
NAMESPACE_TO_PREFIX["female"] = "f"
NAMESPACE_TO_PREFIX["group"] = "g"
NAMESPACE_TO_PREFIX["language"] = "l"
NAMESPACE_TO_PREFIX["male"] = "m"
NAMESPACE_TO_PREFIX["mixed"] = "x"
NAMESPACE_TO_PREFIX["other"] = "o"
NAMESPACE_TO_PREFIX["parody"] = "p"
NAMESPACE_TO_PREFIX["reclass"] = "r"
}
@JvmStatic
@@ -937,7 +937,7 @@ public class GalleryDetailScene extends CollapsingToolbarScene implements View.O
String readableTagName = null;
if (ehTags != null) {
readableTagName = ehTags.getTranslation("n:" + tg.groupName);
readableTagName = ehTags.getTranslation("n", tg.groupName);
}
TextView tgName = (TextView) inflater.inflate(R.layout.item_gallery_tag, ll, false);
@@ -946,9 +946,6 @@ public class GalleryDetailScene extends CollapsingToolbarScene implements View.O
tgName.setBackgroundTintList(ColorStateList.valueOf(colorName));
String prefix = EhTagDatabase.namespaceToPrefix(tg.groupName);
if (prefix == null) {
prefix = "";
}
AutoWrapLayout awl = new AutoWrapLayout(context);
ll.addView(awl, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
@@ -959,7 +956,7 @@ public class GalleryDetailScene extends CollapsingToolbarScene implements View.O
String readableTag = null;
if (ehTags != null) {
readableTag = ehTags.getTranslation(prefix + tagStr);
readableTag = ehTags.getTranslation(prefix, tagStr);
}
tag.setText(readableTag != null ? readableTag : tagStr);