Fix #4016: Translated tags failing to find some tags.

* Normalize spaces to underscores when saving other names. Preserve case
  since case can be significant.

* Fix WikiPage#other_names_include to search case-insensitively (note:
  this prevents using the index).

* Fix sources to return the raw tags in `#tags` and the normalized tags
  in `#normalized_tags`. The normalized tags are the tags that will be
  matched against other names.
This commit is contained in:
evazion
2018-12-16 11:27:04 -06:00
parent a1df1abf0b
commit c700ea4b5f
9 changed files with 49 additions and 21 deletions

View File

@@ -178,8 +178,16 @@ module Sources
(@tags || []).uniq
end
def normalized_tags
tags.map { |tag, url| normalize_tag(tag) }.sort.uniq
end
def normalize_tag(tag)
WikiPage.normalize_other_name(tag).downcase
end
def translated_tags
translated_tags = tags.map(&:first).flat_map(&method(:translate_tag)).uniq.sort
translated_tags = normalized_tags.flat_map(&method(:translate_tag)).uniq.sort
translated_tags.reject { |tag| tag.category == Tag.categories.artist }
end
@@ -240,6 +248,7 @@ module Sources
:canonical_url => canonical_url,
:normalized_for_artist_finder_url => normalize_for_artist_finder,
:tags => tags,
:normalized_tags => normalized_tags,
:translated_tags => translated_tags,
:unique_id => unique_id,
:artist_commentary => {