From 914d2d5b4e5d7be7761e23c5647c32fb10dc75c0 Mon Sep 17 00:00:00 2001 From: albert Date: Sat, 14 Jan 2012 17:19:42 -0500 Subject: [PATCH] fixes #280 --- app/logical/post_sets/post.rb | 4 ++++ app/models/tag.rb | 2 +- app/presenters/post_set_presenters/post.rb | 8 +++++++- app/presenters/tag_set_presenter.rb | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/logical/post_sets/post.rb b/app/logical/post_sets/post.rb index 40fe31750..0f7e2c972 100644 --- a/app/logical/post_sets/post.rb +++ b/app/logical/post_sets/post.rb @@ -47,6 +47,10 @@ module PostSets tag_array.size == 0 end + def is_pattern_search? + tag_string =~ /\*/ + end + def current_page [page.to_i, 1].max end diff --git a/app/models/tag.rb b/app/models/tag.rb index 4c667a328..e8023da2b 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -195,7 +195,7 @@ class Tag < ActiveRecord::Base output[:include] << tag[1..-1] elsif tag =~ /\*/ - matches = Tag.name_matches(tag).all(:select => "name", :limit => 25, :order => "post_count DESC").map(&:name) + matches = Tag.name_matches(tag).all(:select => "name", :limit => Danbooru.config.tag_query_limit, :order => "post_count DESC").map(&:name) matches = ["~no_matches~"] if matches.empty? output[:include] += matches diff --git a/app/presenters/post_set_presenters/post.rb b/app/presenters/post_set_presenters/post.rb index 1b47a0594..5447d98d1 100644 --- a/app/presenters/post_set_presenters/post.rb +++ b/app/presenters/post_set_presenters/post.rb @@ -9,7 +9,9 @@ module PostSetPresenters end def related_tags - if post_set.is_single_tag? + if post_set.is_pattern_search? + pattern_tags + elsif post_set.is_single_tag? related_tags_for_single elsif post_set.is_empty_tag? popular_tags @@ -31,6 +33,10 @@ module PostSetPresenters results end + def pattern_tags + Tag.name_matches(post_set.tag_string).all(:select => "name", :limit => Danbooru.config.tag_query_limit, :order => "post_count DESC").map(&:name) + end + def related_tags_for_group RelatedTagCalculator.calculate_from_sample_to_array(post_set.tag_string).map(&:first) end diff --git a/app/presenters/tag_set_presenter.rb b/app/presenters/tag_set_presenter.rb index 31c2e3554..50fa767b3 100644 --- a/app/presenters/tag_set_presenter.rb +++ b/app/presenters/tag_set_presenter.rb @@ -12,7 +12,7 @@ class TagSetPresenter < Presenter def tag_list_html(template, options = {}) html = "" html << ""