Add uploader faux-namespace to search engine.

This commit is contained in:
NerdNumber9
2017-01-04 10:30:44 -05:00
parent c49b865ee7
commit 63d58c7a4f
2 changed files with 20 additions and 13 deletions
+15 -8
View File
@@ -4,7 +4,6 @@ import exh.metadata.models.ExGalleryMetadata
import exh.metadata.models.Tag
class SearchEngine {
//TODO Namespace alias
fun matches(metadata: ExGalleryMetadata, query: List<QueryComponent>): Boolean {
fun matchTagList(tags: List<Tag>,
@@ -37,13 +36,21 @@ class SearchEngine {
if(!matchTagList(metadata.tags.entries.flatMap { it.value },
component)) return false
} else if(component is Namespace) {
//Match namespace
val ns = metadata.tags.entries.filter {
it.key == component.namespace
}.flatMap { it.value }
//Match tags
if(!matchTagList(ns, component.tag!!))
return false
if(component.namespace == "uploader") {
//Match uploader
if(!component.tag?.rawTextOnly().equals(metadata.uploader,
ignoreCase = true)) {
return false
}
} else {
//Match namespace
val ns = metadata.tags.entries.filter {
it.key == component.namespace
}.flatMap { it.value }
//Match tags
if (!matchTagList(ns, component.tag!!))
return false
}
}
}
return true