Add migration ability.

Various bug fixes and code cleanup.
This commit is contained in:
NerdNumber9
2017-01-04 22:56:24 -05:00
parent e4f2bffbc2
commit f5c4535cb0
9 changed files with 218 additions and 15 deletions
+9 -6
View File
@@ -9,7 +9,7 @@ class SearchEngine {
fun matches(metadata: ExGalleryMetadata, query: List<QueryComponent>): Boolean {
fun matchTagList(tags: List<Tag>,
fun matchTagList(tags: Sequence<Tag>,
component: Text): Boolean {
//Match tags
val tagMatcher = if(!component.exact)
@@ -28,15 +28,18 @@ class SearchEngine {
return true
}
val cachedLowercaseTitle = metadata.title?.toLowerCase()
val cachedLowercaseAltTitle = metadata.altTitle?.toLowerCase()
for(component in query) {
if(component is Text) {
//Match title
if (component.asRegex().test(metadata.title?.toLowerCase())
|| component.asRegex().test(metadata.altTitle?.toLowerCase())) {
if (component.asRegex().test(cachedLowercaseTitle)
|| component.asRegex().test(cachedLowercaseAltTitle)) {
continue
}
//Match tags
if(!matchTagList(metadata.tags.entries.flatMap { it.value },
if(!matchTagList(metadata.tags.entries.asSequence().flatMap { it.value.asSequence() },
component)) return false
} else if(component is Namespace) {
if(component.namespace == "uploader") {
@@ -47,9 +50,9 @@ class SearchEngine {
}
} else {
//Match namespace
val ns = metadata.tags.entries.filter {
val ns = metadata.tags.entries.asSequence().filter {
it.key == component.namespace
}.flatMap { it.value }
}.flatMap { it.value.asSequence() }
//Match tags
if (!matchTagList(ns, component.tag!!))
return false