default tag listing now weighted by time

This commit is contained in:
r888888888
2013-06-24 15:08:42 -07:00
parent 9a957e3e3e
commit ec56d7abc9
2 changed files with 17 additions and 11 deletions

View File

@@ -117,9 +117,6 @@ class Tag < ActiveRecord::Base
end
module StatisticsMethods
def trending
raise NotImplementedError
end
end
module NameMethods

View File

@@ -23,16 +23,25 @@ module PostSetPresenters
end
def popular_tags
n = 1
results = []
Cache.get("popular-tags", 1.hour) do
CurrentUser.scoped(User.admins.first, "127.0.0.1") do
n = 1
results = []
while results.empty? && n < 256
query = n.days.ago.strftime("date:>%Y-%m-%d")
results = RelatedTagCalculator.calculate_from_sample_to_array(query).map(&:first)
n *= 2
while results.empty? && n < 256
query = n.days.ago.strftime("date:>%Y-%m-%d")
results = RelatedTagCalculator.calculate_from_sample_to_array(query)
n *= 2
end
results.map! do |tag_name, recent_count|
tag = Tag.find_or_create_by_name(tag_name)
[tag_name, recent_count.to_f / tag.post_count.to_f]
end
results.sort_by! {|x| -x[1]}.map(&:first)
end
end
results
end
def pattern_tags