I like the idea. Iâm unsure of the implementation method, though. Of course thatâs where my brain always takes me when I read suggestions like this.
I did add in the ability to sort ASC/DESC with a query string: order=votes
Is there a query string variable for narrowing the topics based on timestamp? That might be a better option in the near term.
I am not an expert on algorithms and these kinds of things, but i would imagine that, for a hot page to work the best, you would need to calculate the individual âtrend score / trajectoryâ of each post within a certain amount of time and not just sort by what got the most votes the last month.
Basic example:
Post A: Got 10 votes within 1 day = trend score 10
Post B: Got 10 votes within 3 days = trend score 3
Post C: Got 50 votes within 10 days = trend score 5
In the HOT category the order would be
Post A (with only 10 votes)
Post C (with 50 votes)
Post B (with 10 votes)
Maybe votes from specific groups or levels of users matter more when calculating the trend score. e.g. in my community i could see the value in giving moderators some kind of curator role where their vote matters more because they are really knowledgeable about the topics people discuss - so their role could be to upvote good topics and bump them into the hot category.
Makes sense. If we can nail down the weighting of votes, I can add a field to the topic that gives it a rating and then add that rating as a sort option. That would allow something along these lines: ?order=vote_rating. But that doesnât solve the time period you mentioned.[quote=âcommonpawn, post:26, topic:40121â]
Hot posts (trending within certain timeframe set by the admin)
[/quote]
Iâm not sure that part is worth it. I could see the value in top votes given a time frame and a sort by this topic rating, but combining the two might be overkill.
Yeah i guess the ultimate solution would be a Hot sorting criteria which is scaleable and works for a forum with a lot of activity (100s of posts per day) to one with very little (10 posts per week - e.g. an idea board like UserVoice).
Agreed. My thinking is that this is a custom field that gets recalculated with a sidekiq job. The duration would need to be determined, though. Every 30 minutes? Every hour? I would want it to be as infrequent as we can get away with.
And thanks for the link. Iâll need a bit to digest that one.
My call here is that this is a V3 or V4 feature, we may get to it eventually. When we do I would just like to change it so âpluginsâ can inject extra signal into the existing hot algorithm.