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

View File

@ -180,14 +180,14 @@ class EHentai(override val id: Int,
with(metdata) { with(metdata) {
url = manga.url url = manga.url
exh = this@EHentai.exh exh = this@EHentai.exh
title = select("#gn").text().nullIfBlank() title = select("#gn").text().nullIfBlank()?.trim()
altTitle = select("#gj").text().nullIfBlank() altTitle = select("#gj").text().nullIfBlank()?.trim()
thumbnailUrl = select("#gd1 img").attr("src").nullIfBlank() thumbnailUrl = select("#gd1 img").attr("src").nullIfBlank()?.trim()
genre = select(".ic").attr("alt").nullIfBlank() genre = select(".ic").attr("alt").nullIfBlank()?.trim()
uploader = select("#gdn").text().nullIfBlank() uploader = select("#gdn").text().nullIfBlank()?.trim()
//Parse the table //Parse the table
select("#gdd tr").forEach { select("#gdd tr").forEach {

View File

@ -4,7 +4,6 @@ import exh.metadata.models.ExGalleryMetadata
import exh.metadata.models.Tag import exh.metadata.models.Tag
class SearchEngine { class SearchEngine {
//TODO Namespace alias
fun matches(metadata: ExGalleryMetadata, query: List<QueryComponent>): Boolean { fun matches(metadata: ExGalleryMetadata, query: List<QueryComponent>): Boolean {
fun matchTagList(tags: List<Tag>, fun matchTagList(tags: List<Tag>,
@ -37,15 +36,23 @@ class SearchEngine {
if(!matchTagList(metadata.tags.entries.flatMap { it.value }, if(!matchTagList(metadata.tags.entries.flatMap { it.value },
component)) return false component)) return false
} else if(component is Namespace) { } else if(component is Namespace) {
if(component.namespace == "uploader") {
//Match uploader
if(!component.tag?.rawTextOnly().equals(metadata.uploader,
ignoreCase = true)) {
return false
}
} else {
//Match namespace //Match namespace
val ns = metadata.tags.entries.filter { val ns = metadata.tags.entries.filter {
it.key == component.namespace it.key == component.namespace
}.flatMap { it.value } }.flatMap { it.value }
//Match tags //Match tags
if(!matchTagList(ns, component.tag!!)) if (!matchTagList(ns, component.tag!!))
return false return false
} }
} }
}
return true return true
} }