From e11487ac2e8b976941910535695211bf6e262cc4 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Wed, 22 Jul 2026 18:55:50 +0330 Subject: [PATCH] #495 GanjoorCommentRankingScoreCalculator --- .../GanjoorCommentRankingScoreCalculator.cs | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 RMuseum/Utils/GanjoorCommentRankingScoreCalculator.cs diff --git a/RMuseum/Utils/GanjoorCommentRankingScoreCalculator.cs b/RMuseum/Utils/GanjoorCommentRankingScoreCalculator.cs new file mode 100644 index 00000000..d8f68a6b --- /dev/null +++ b/RMuseum/Utils/GanjoorCommentRankingScoreCalculator.cs @@ -0,0 +1,48 @@ +using System; + +namespace RMuseum.Utils +{ + /// + /// comment ranking score calculator + /// + public class GanjoorCommentRankingScoreCalculator + { + public static int ComputeRankingScore(int likes, int dislikes) + { + int score = likes - dislikes; + int votes = likes + dislikes; + + int confidence = + VoteConfidenceBonus[ + Math.Min(votes, VoteConfidenceBonus.Length - 1)]; + + return score * 1_000_000 + + confidence * 1_000 + + likes; + } + private static readonly short[] VoteConfidenceBonus = + { + 0, //0 votes + 200, //1 + 350, //2 + 470, //3 + 560, //4 + 630, //5 + 690, //6 + 740, //7 + 780, //8 + 810, //9 + 840, //10 + 860, //11 + 880, //12 + 895, //13 + 910, //14 + 920, //15 + 930, //16 + 940, //17 + 948, //18 + 955, //19 + 960 //20+ + }; + } +}