/// <summary> /// Initializes a new instance of the <see cref="CommentFilter"/> class. /// </summary> public CommentFilter(ISubtextContext context, ICommentSpamService spamService) { SubtextContext = context; SpamService = spamService; Blog = context.Blog; Cache = context.Cache; }
private int ApplyActionToCheckedFeedback(Action<FeedbackItem, ICommentSpamService> action) { ICommentSpamService feedbackService = null; if(Blog.FeedbackSpamServiceEnabled) { feedbackService = new AkismetSpamService(Config.CurrentBlog.FeedbackSpamServiceKey, Config.CurrentBlog, null, Url); } int actionsApplied = 0; foreach(RepeaterItem item in feedbackRepeater.Items) { // Get the checkbox from the item or the alternating item. var deleteCheck = item.FindControl("chkDelete") as CheckBox ?? item.FindControl("chkDeleteAlt") as CheckBox; if(deleteCheck != null && deleteCheck.Checked) { // Get the FeedbackId from the item or the alternating item. var feedbackId = item.FindControl("FeedbackId") as HtmlInputHidden ?? item.FindControl("FeedbackIdAlt") as HtmlInputHidden; int id; if(feedbackId != null && int.TryParse(feedbackId.Value, out id)) { FeedbackItem feedbackItem = FeedbackItem.Get(id); if(feedbackItem != null) { actionsApplied++; action(feedbackItem, feedbackService); } } } } return actionsApplied; }
protected void lkbPost_Click(object sender, EventArgs e) { try { var entry = new Trackback(EntryId, txbTitle.Text, txbUrl.Text.EnsureUrl(), string.Empty, txbBody.Text.Trim().Length > 0 ? txbBody.Text.Trim() : txbTitle.Text); var commentService = new CommentService(SubtextContext, null); if (commentService.Create(entry, true /*runFilters*/) > 0) { ICommentSpamService feedbackService = null; if (Config.CurrentBlog.FeedbackSpamServiceEnabled) { feedbackService = new AkismetSpamService(Config.CurrentBlog.FeedbackSpamServiceKey, Config.CurrentBlog, null, Url); } var filter = new CommentFilter(SubtextContext, feedbackService); filter.FilterAfterPersist(entry); Messages.ShowMessage(Constants.RES_SUCCESSNEW); Edit.Visible = false; Results.Visible = true; } else { Messages.ShowError(Constants.RES_FAILUREEDIT + " There was a baseline problem posting your Trackback."); } } catch (Exception ex) { Log.Error(ex.Message, ex); Messages.ShowError(String.Format(Constants.RES_EXCEPTION, Constants.RES_FAILUREEDIT, ex.Message)); } }
public string pingBack(string sourceURI, string targetURI) { if (!Blog.TrackbacksEnabled) { return("Pingbacks are not enabled for this site."); } string pageTitle; // GetPostIDFromUrl returns the postID int?id = SubtextContext.RequestContext.GetIdFromRequest(); if (id == null) { throw new XmlRpcFaultException(33, Resources.XmlRcpFault_DidNotLinkToPermalink); } Uri sourceUrl = sourceURI.ParseUri(); Uri targetUrl = targetURI.ParseUri(); // does the sourceURI actually contain the permalink ? if (sourceUrl == null || targetUrl == null || !Verifier.SourceContainsTarget(sourceUrl, targetUrl, out pageTitle)) { throw new XmlRpcFaultException(17, Resources.XmlRcpFault_InvalidLink); } //PTR = Pingback - TrackBack - Referral var trackback = new Trackback(id.Value, HtmlHelper.SafeFormat(pageTitle, SubtextContext.HttpContext.Server), new Uri(sourceURI), string.Empty, HtmlHelper.SafeFormat(pageTitle, SubtextContext.HttpContext.Server), Blog.TimeZone.Now); ICommentSpamService feedbackService = null; if (Blog.FeedbackSpamServiceEnabled) { feedbackService = new AkismetSpamService(Blog.FeedbackSpamServiceKey, Blog, null, Url); } var commentService = new CommentService(SubtextContext, new CommentFilter(SubtextContext, feedbackService)); commentService.Create(trackback, true /*runFilters*/); //TODO: Create this using IoC container var emailService = new EmailService(EmailProvider.Instance(), new EmbeddedTemplateEngine(), SubtextContext); emailService.EmailCommentToBlogAuthor(trackback); return(String.Format(CultureInfo.InvariantCulture, Resources.XmlRpcMessage_ThanksForThePingback, sourceURI)); }
/// <summary> /// Approves the comment, and removes it from the SPAM folder or from the /// Trash folder. /// </summary> /// <param name="feedback"></param> /// <param name="spamService"></param> /// <returns></returns> public static void Approve(this ObjectRepository repository, FeedbackItem feedback, ICommentSpamService spamService) { if (feedback == null) { throw new ArgumentNullException("feedback"); } feedback.SetStatus(FeedbackStatusFlag.Approved, true); feedback.SetStatus(FeedbackStatusFlag.Deleted, false); if (spamService != null) { spamService.SubmitGoodFeedback(feedback); } repository.Update(feedback); }
/// <summary> /// Approves the comment, and removes it from the SPAM folder or from the /// Trash folder. /// </summary> /// <param name="feedback"></param> /// <param name="spamService"></param> /// <returns></returns> public static void Approve(FeedbackItem feedback, ICommentSpamService spamService) { if (feedback == null) { throw new ArgumentNullException("feedback"); } feedback.SetStatus(FeedbackStatusFlag.Approved, true); feedback.SetStatus(FeedbackStatusFlag.Deleted, false); if (spamService != null) { spamService.SubmitGoodFeedback(feedback); } Update(feedback); }
private void CreateCommentWithContactMessage(FeedbackItem contactMessage) { try { ICommentSpamService feedbackService = null; if (Blog.FeedbackSpamServiceEnabled) { feedbackService = new AkismetSpamService(Blog.FeedbackSpamServiceKey, Blog, null, Url); } var commentService = new CommentService(SubtextContext, new CommentFilter(SubtextContext, feedbackService)); commentService.Create(contactMessage, true /*runFilters*/); } catch (BaseCommentException exc) { lblMessage.Text = exc.Message; } }
private void CreateTrackbackAndSendResponse(ISubtextContext subtextContext, IEntryIdentity entry, int entryId) { HttpContextBase context = subtextContext.RequestContext.HttpContext; string title = SafeParam(context, "title"); string excerpt = SafeParam(context, "excerpt"); string urlText = SafeParam(context, "url"); string blogName = SafeParam(context, "blog_name"); Uri url = urlText.ParseUri(); if (url == null) { SendTrackbackResponse(context, 1, Resources.TrackbackResponse_NoUrl); return; } if (entry == null || !IsSourceVerification(url, subtextContext.UrlHelper.EntryUrl(entry).ToFullyQualifiedUrl(subtextContext.Blog))) { SendTrackbackResponse(context, 2, String.Format(CultureInfo.InvariantCulture, Resources.TrackbackResponse_NoRelevantLink, url)); return; } var trackback = new Trackback(entryId, title, url, blogName, excerpt, Blog.TimeZone.Now); ICommentSpamService feedbackService = null; Blog blog = subtextContext.Blog; if (blog.FeedbackSpamServiceEnabled) { feedbackService = new AkismetSpamService(blog.FeedbackSpamServiceKey, blog, null, Url); } var commentService = new CommentService(SubtextContext, new CommentFilter(SubtextContext, feedbackService)); commentService.Create(trackback, true /*runFilters*/); //TODO: Create this using IoC container var emailService = new EmailService(EmailProvider.Instance(), new EmbeddedTemplateEngine(), subtextContext); emailService.EmailCommentToBlogAuthor(trackback); }
private void OnSubmitButtonClick(object sender, EventArgs e) { Thread.Sleep(5000); if (!Page.IsValid) { return; } LastDitchValidation(); try { Entry currentEntry = RealEntry; if (IsCommentAllowed) { FeedbackItem feedbackItem = CreateFeedbackInstanceFromFormInput(currentEntry); ICommentSpamService feedbackService = null; if (Blog.FeedbackSpamServiceEnabled) { feedbackService = new AkismetSpamService(Blog.FeedbackSpamServiceKey, Blog, null, Url); } var commentService = new CommentService(SubtextContext, new CommentFilter(SubtextContext, feedbackService)); commentService.Create(feedbackItem, true /*runFilters*/); var emailService = new EmailService(EmailProvider.Instance(), new EmbeddedTemplateEngine(), SubtextContext); emailService.EmailCommentToBlogAuthor(feedbackItem); if (chkRemember == null || chkRemember.Checked) { SetRememberedUserCookie(); } DisplayResultMessage(feedbackItem); } } catch (BaseCommentException exception) { Message.Text = exception.Message; } }
/// <summary> /// Confirms the feedback as spam and moves it to the trash. /// </summary> /// <param name="feedback">The feedback.</param> /// <param name="spamService"></param> public static void ConfirmSpam(FeedbackItem feedback, ICommentSpamService spamService) { if(feedback == null) { throw new ArgumentNullException("feedback"); } feedback.SetStatus(FeedbackStatusFlag.Approved, false); feedback.SetStatus(FeedbackStatusFlag.ConfirmedSpam, true); if(spamService != null) { spamService.SubmitGoodFeedback(feedback); } Update(feedback); }
/// <summary> /// Confirms the feedback as spam and moves it to the trash. /// </summary> /// <param name="feedback">The feedback.</param> /// <param name="spamService"></param> public static void ConfirmSpam(this ObjectRepository repository, FeedbackItem feedback, ICommentSpamService spamService) { if (feedback == null) { throw new ArgumentNullException("feedback"); } feedback.SetStatus(FeedbackStatusFlag.Approved, false); feedback.SetStatus(FeedbackStatusFlag.ConfirmedSpam, true); if (spamService != null) { spamService.SubmitGoodFeedback(feedback); } repository.Update(feedback); }
/// <summary> /// Initializes a new instance of the <see cref="CommentMessageHandler"/> class. /// </summary> /// <param name="sessions">The sessions.</param> /// <param name="spamService">The spam service.</param> public CommentMessageHandler(IMomntzSessions sessions, ICommentSpamService spamService) { _sessions = sessions; _spamService = spamService; }