public static string FormatReport(Post post, ClassificationResults results, float threshold)
        {
            if (post == null || results == null ||
                results.Action == ClassificationResults.SuggestedAction.Nothing)
            {
                return null;
            }

            var msg = new MessageBuilder();
            var boldTh = 1 - ((1 - threshold) / 2);
            var resData = $"Similarity: {Math.Round(results.Similarity * 100)}%";

            switch (results.Action)
            {
                case ClassificationResults.SuggestedAction.Edit:
                {
                    msg.AppendLink("Edit", editUrl, resData, results.Similarity >= boldTh ?
                        TextFormattingOptions.Bold :
                        TextFormattingOptions.None,
                        WhiteSpace.None);
                    break;
                }
                case ClassificationResults.SuggestedAction.Close:
                {
                    msg.AppendLink("Close", closeUrl, resData, results.Similarity >= boldTh ?
                        TextFormattingOptions.Bold :
                        TextFormattingOptions.None,
                        WhiteSpace.None);
                    break;
                }
                case ClassificationResults.SuggestedAction.Delete:
                {
                    msg.AppendLink("Delete", deleteUrl, resData, results.Similarity >= boldTh ?
                        TextFormattingOptions.Bold :
                        TextFormattingOptions.None,
                        WhiteSpace.None);
                    break;
                }
            }

            msg.AppendText(": ");
            msg.AppendLink(post.Title, post.Url, "Score: " + post.Score, TextFormattingOptions.None, WhiteSpace.None);
            msg.AppendText(", by ");
            msg.AppendLink(post.AuthorName, post.AuthorLink, "Reputation: " + post.AuthorRep, TextFormattingOptions.None, WhiteSpace.None);
            msg.AppendText(".");

            return msg.ToString();
        }
Exemple #2
0
        private static void ReportPost(Post post, ClassificationResults results)
        {
            var report = ReportFormatter.FormatReport(post, results, cvClassifier.Threshold);

            if (string.IsNullOrWhiteSpace(report)) return;

            socvr.PostMessageFast(report);
            lqphq.PostMessageFast(report);
        }