This commit is contained in:
r888888888
2013-07-24 18:12:44 -07:00
parent b94d6e1693
commit c0921d0590
3 changed files with 41 additions and 1 deletions

View File

@@ -9,6 +9,29 @@ class RelatedTagCalculator
convert_hash_to_array(calculate_from_sample(tags, Danbooru.config.post_sample_size, category_constraint))
end
def self.calculate_from_post_set_to_array(post_set, category_constraint = nil)
convert_hash_to_array(calculate_from_post_set(post_set, category_constraint))
end
def self.calculate_from_post_set(post_set, category_constraint = nil)
counts = Hash.new {|h, k| h[k] = 0}
post_set.posts.each do |post|
post.tag_array.each do |tag|
category = Tag.category_for(tag)
if category_constraint
if category == category_constraint
counts[tag] += 1
end
else
counts[tag] += 1
end
end
end
counts
end
def self.calculate_from_sample(tags, limit, category_constraint = nil)
counts = Hash.new {|h, k| h[k] = 0}

View File

@@ -40,10 +40,14 @@ module PostSetPresenters
if tag
tag.related_tag_array.map(&:first)
else
[]
calculate_related_tags_from_post_set
end
end
def calculate_related_tags_from_post_set
RelatedTagCalculator.calculate_from_post_set_to_array(post_set).map(&:first)
end
def tag_list_html(template)
tag_set_presenter.tag_list_html(template)
end