private void SendEmailToNotifyThePersonWhoWasSpotted(Photo photo, Usr currentUsr) { Mailer sm = new Mailer(); sm.RedirectUrl = photo.Url(); sm.Subject = "You've been spotted!"; string intro = "A friend of yours"; if (currentUsr != null) intro = "Your buddy, <a href=\"[LOGIN(" + currentUsr.Url() + ")]\">" + currentUsr.NickNameSafe + "</a>"; sm.Body = "<p>" + intro + " has spotted you in a photo, shown below:</p>" + "<p align=\"center\"><a href=\"[LOGIN(" + photo.Url() + ")]\"><img src=\"" + photo.WebPath + "\" height=\"" + photo.WebHeight + "\" width=\"" + photo.WebWidth + "\" class=\"BorderBlack All\" border=\"0\"></a></p>" + "<p>If you're not in this photo, please click the link below to log in, and click the <b>Remove me from this photo</b> " + "button under the photo.</p>"; sm.TemplateType = Mailer.TemplateTypes.AnotherSiteUser; sm.UsrRecipient = this; sm.To = this.Email; sm.Send(); }
private void PanelAbuse_Load(object sender, System.EventArgs e) { if (Mode.Equals(Modes.Abuse)) { ChangePanel(PanelAbuse); PhotoKLabel.Text = CurrentAbuse.ObjectK.ToString(); PhotoStringLabel.Text = CurrentAbuse.ObjectString; Photo p = null; try { p = new Photo(CurrentAbuse.ObjectK); } catch { } if (p != null) { ThisGalleryP.InnerHtml = "<a href=\"" + p.Gallery.PagedUrl() + "\" target=\"_blank\">" + p.Gallery.UrlNoSkip() + "</a> - <a href=\"" + p.Gallery.UrlApp("edit") + "\" target=\"_blank\">[edit]</a> - (" + p.Gallery.TotalPhotos + " photos, " + p.Gallery.LivePhotos + " live)<br>"; PhotoAnchor.HRef = p.Url(); PhotoImg.Src = p.WebPath; PhotoImg.Height = p.WebHeight; PhotoImg.Width = p.WebWidth; PhotoPanel.Visible = true; NoPhotoPanel.Visible = false; } else { ThisGalleryPanel.Visible = false; PhotoPanel.Visible = false; NoPhotoPanel.Visible = true; } AbuseByP.InnerHtml = CurrentAbuse.AbuseUsr.LinkNewWindow() + "<br>"; AbuseByP.InnerHtml += "Pending abuse accusations: " + CurrentAbuse.AbuseUsr.AbuseAccusationsPending + "<br>"; AbuseByP.InnerHtml += "Abuse in the past: " + CurrentAbuse.AbuseUsr.AbuseAccusationsAbuse + "<br>"; AbuseByP.InnerHtml += "Accusations with no abuse: " + CurrentAbuse.AbuseUsr.AbuseAccusationsNoAbuse; ReportByP.InnerHtml = CurrentAbuse.ReportUsr.LinkNewWindow() + "<br>"; ReportByP.InnerHtml += "Pending abuse reports: " + CurrentAbuse.ReportUsr.AbuseReportsPending + "<br>"; ReportByP.InnerHtml += "Successful abuse reports: " + CurrentAbuse.ReportUsr.AbuseReportsUseful + "<br>"; ReportByP.InnerHtml += "Overturned abuse reports: " + CurrentAbuse.ReportUsr.AbuseReportsOverturned; ReportDescriptionP.InnerText = CurrentAbuse.ReportDescription; Query q = new Query(); q.QueryCondition = new Q(Gallery.Columns.OwnerUsrK, CurrentAbuse.AbuseUsrK); q.TopRecords = 20; q.OrderBy = new OrderBy(Gallery.Columns.LastLiveDateTime, OrderBy.OrderDirection.Descending); GallerySet gs = new GallerySet(q); GalleriesP.InnerHtml = ""; foreach (Gallery g in gs) { GalleriesP.InnerHtml += "<a href=\"" + g.PagedUrl() + "\" target=\"_blank\">" + g.UrlNoSkip() + "</a> - <a href=\"" + g.UrlApp("edit") + "\" target=\"_blank\">[edit]</a> - (" + g.TotalPhotos + " photos, " + g.LivePhotos + " live)<br>"; } if (CurrentAbuse.Status.Equals(Abuse.StatusEnum.Done)) { ActionsPanel.Visible = false; ResolvedPanel.Visible = true; if (CurrentAbuse.ResolveStatus.Equals(Abuse.ResolveStatusEnum.Abuse)) ResolvedLabel.Text = "There was abuse."; else if (CurrentAbuse.ResolveStatus.Equals(Abuse.ResolveStatusEnum.NoAbuse)) ResolvedLabel.Text = "There was no abuse, but the report was helpful."; else if (CurrentAbuse.ResolveStatus.Equals(Abuse.ResolveStatusEnum.Overturned)) ResolvedLabel.Text = "There was no abuse, the report was overturned."; ResolvedLabel.Text += " Resolved by " + CurrentAbuse.ResolveUsr.Link() + ", " + Cambro.Misc.Utility.FriendlyTime(CurrentAbuse.ResolveDateTime); ResolveDescriptionP.InnerText = CurrentAbuse.ResolveDescription; } else { ActionsPanel.Visible = true; ResolvedPanel.Visible = false; } } }
public static void CreateSpotted(Usr u, Photo p) { Query q = new Query(); q.QueryCondition = new And( new Q(FacebookPost.Columns.DateTime, QueryOperator.GreaterThan, System.DateTime.Now.AddDays(-1)), new Q(FacebookPost.Columns.FacebookUid, u.Facebook.Uid), new Q(FacebookPost.Columns.Type, TypeEnum.Spotted)); FacebookPostSet fps = new FacebookPostSet(q); if (fps.Count < 10) { Query q1 = new Query(); q1.QueryCondition = new And( new Q(FacebookPost.Columns.DateTime, QueryOperator.GreaterThan, System.DateTime.Now.AddDays(-1)), new Q(FacebookPost.Columns.FacebookUid, u.Facebook.Uid), new Q(FacebookPost.Columns.DataInt, p.GalleryK), new Q(FacebookPost.Columns.Type, TypeEnum.Spotted)); FacebookPostSet fps1 = new FacebookPostSet(q1); if (fps1.Count == 0) { FacebookPost fp = new FacebookPost(); fp.Hits = 0; fp.FacebookUid = u.Facebook.Uid; fp.DateTime = System.DateTime.Now; fp.Type = TypeEnum.Spotted; fp.Content = "PhotoK=" + p.K.ToString(); fp.DataInt = p.GalleryK; fp.UsrK = u.K; fp.Update(); //send facebook message //http://developers.facebook.com/docs/reference/api/post Dictionary<string, object> par = new Dictionary<string, object>(); par["picture"] = p.IconPath; par["link"] = "http://" + Vars.DomainName + p.Url() + "?fbpk=" + fp.K.ToString(); par["caption"] = "Don't Stay In"; if (p.Event != null) { par["name"] = p.Event.FriendlyNameGeneric(true, false, false, false); par["description"] = ("@ " + p.Event.FriendlyNameGeneric(false, true, true, true)).TruncateWithDots(990); } else if (p.Article != null) { par["name"] = p.Article.Name; } u.Facebook.PutWallPost("I've been spotted...", par); } } }
public void Action_Click(object o, System.EventArgs e) { if (Mode.Equals(Modes.Abuse)) { if (Page.IsValid) { if (CurrentAbuse.Status.Equals(Abuse.StatusEnum.Done)) throw new DsiUserFriendlyException("Oops - this abuse report has already been resolved - maybe someone beat you to it..."); if (!(OverturnRadio.Checked || NoAbuseRadio.Checked || NoAbuseDeleteRadio.Checked || AbuseDeleteRadio.Checked || AbuseDeleteWatchRadio.Checked || AbuseDeleteBanRadio.Checked || AbuseDeleteBanModerateRadio.Checked)) { throw new DsiUserFriendlyException("You must choose an option!"); } if (OverturnRadio.Checked) { CurrentAbuse.ResolveDateTime = DateTime.Now; CurrentAbuse.Status = Abuse.StatusEnum.Done; CurrentAbuse.ResolveStatus = Abuse.ResolveStatusEnum.Overturned; CurrentAbuse.ResolveDescription = ResolveDescriptionTextBox.Text; CurrentAbuse.ResolveUsrK = Usr.Current.K; CurrentAbuse.Update(); Photo p = null; try { p = new Photo(CurrentAbuse.ObjectK); } catch { } Mailer m = new Mailer(); m.Subject = "Your abuse report has been resolved"; m.Body = "<p>You recently filed an abuse report about a photo</p>"; m.Body += "<p>Our moderators have reviewed the photo, and found no abuse. Please only report photos when there is a clear abuse of the photo rules. If you mis-use this abuse report service, you will not be able to make further reports.</p>"; m.Body += "<p>Our moderator included the following note:</p>"; m.Body += "<p><i>" + CurrentAbuse.ResolveDescription + "</i></p>"; if (p != null) m.RedirectUrl = p.Url(); m.TemplateType = Mailer.TemplateTypes.AnotherSiteUser; m.UsrRecipient = CurrentAbuse.ReportUsr; m.Send(); CurrentAbuse.ReportUsr.UpdateAbuseTrackers(); CurrentAbuse.AbuseUsr.UpdateAbuseTrackers(); Bobs.Global.UpdatePhotoAbuseReports(); } else if (NoAbuseRadio.Checked || NoAbuseDeleteRadio.Checked) { CurrentAbuse.ResolveDateTime = DateTime.Now; CurrentAbuse.Status = Abuse.StatusEnum.Done; CurrentAbuse.ResolveStatus = Abuse.ResolveStatusEnum.NoAbuse; CurrentAbuse.ResolveDescription = ResolveDescriptionTextBox.Text; CurrentAbuse.ResolveUsrK = Usr.Current.K; CurrentAbuse.Update(); Photo p = null; try { p = new Photo(CurrentAbuse.ObjectK); if (NoAbuseDeleteRadio.Checked) p.DeleteAll(null); } catch { } Mailer m = new Mailer(); m.Subject = "Your abuse report has been resolved"; m.Body = "<p>You recently filed an abuse report about a photo</p>"; m.Body += "<p>Our moderators have reviewed the photo, and found no abuse. Your report was helpful however.</p>"; m.Body += "<p>Our moderator included the following note:</p>"; m.Body += "<p><i>" + CurrentAbuse.ResolveDescription + "</i></p>"; if (p != null) m.RedirectUrl = p.Url(); m.TemplateType = Mailer.TemplateTypes.AnotherSiteUser; m.UsrRecipient = CurrentAbuse.ReportUsr; m.Send(); CurrentAbuse.ReportUsr.UpdateAbuseTrackers(); CurrentAbuse.AbuseUsr.UpdateAbuseTrackers(); Bobs.Global.UpdatePhotoAbuseReports(); } else if (AbuseDeleteRadio.Checked || AbuseDeleteWatchRadio.Checked || AbuseDeleteBanRadio.Checked || AbuseDeleteBanModerateRadio.Checked) { try { Photo ph = new Photo(CurrentAbuse.ObjectK); ph.DeleteAll(null); } catch { } if (AbuseDeleteWatchRadio.Checked) { try { CurrentAbuse.AbuseUsr.ModeratePhotos = true; CurrentAbuse.AbuseUsr.Update(); } catch { } } if (AbuseDeleteBanRadio.Checked) { try { CurrentAbuse.AbuseUsr.Banned = true; CurrentAbuse.AbuseUsr.BannedByUsrK = Usr.Current.K; CurrentAbuse.AbuseUsr.BannedDateTime = DateTime.Now; CurrentAbuse.AbuseUsr.BannedReason = ResolveDescriptionTextBox.Text; CurrentAbuse.AbuseUsr.Update(); Mailer sm = new Mailer(); sm.Body = "<p>Banned user: <a href=\"[LOGIN(" + CurrentAbuse.AbuseUsr.Url() + ")]\">" + CurrentAbuse.AbuseUsr.NickName + "</a> (" + CurrentAbuse.AbuseUsr.K + " - " + CurrentAbuse.AbuseUsr.Email + ")</p>"; sm.Body += "<p>They were banned by: <a href=\"[LOGIN(" + Usr.Current.Url() + ")]\">" + Usr.Current.NickName + "</a> (" + Usr.Current.K + " - " + Usr.Current.Email + ")</p>"; sm.Body += "<p>DateTime: " + DateTime.Now.ToString() + "</p>"; sm.Body += "<p>Reason: " + ResolveDescriptionTextBox.Text + "</p>"; sm.TemplateType = Mailer.TemplateTypes.AdminNote; sm.Subject = "New banned user - " + CurrentAbuse.AbuseUsr.NickName + " was banned by " + Usr.Current.NickName; sm.To = "*****@*****.**"; sm.Send(); } catch { } } if (AbuseDeleteBanModerateRadio.Checked) { Query q = new Query(); q.QueryCondition = new Q(Gallery.Columns.OwnerUsrK, CurrentAbuse.AbuseUsrK); GallerySet gs = new GallerySet(q); foreach (Gallery g in gs) { Query qP = new Query(); qP.QueryCondition = new Q(Photo.Columns.GalleryK, g.K); PhotoSet ps = new PhotoSet(qP); foreach (Photo ph in ps) { ph.Status = Photo.StatusEnum.Moderate; ph.Update(); } g.UpdateStats(null, true); g.UpdatePhotoOrder(null); if (g.Event != null) g.Event.UpdateTotalPhotos(null); } } CurrentAbuse.ResolveDateTime = DateTime.Now; CurrentAbuse.Status = Abuse.StatusEnum.Done; CurrentAbuse.ResolveStatus = Abuse.ResolveStatusEnum.Abuse; CurrentAbuse.ResolveDescription = ResolveDescriptionTextBox.Text; CurrentAbuse.ResolveUsrK = Usr.Current.K; CurrentAbuse.Update(); Mailer m = new Mailer(); m.Subject = "Your abuse report has been resolved"; m.Body = "<p>You recently filed an abuse report about a photo</p>"; m.Body += "<p>Our moderators have reviewed the photo, and found it breaks our rules. It has been deleted.</p>"; m.Body += "<p>Our moderator included the following note:</p>"; m.Body += "<p><i>" + CurrentAbuse.ResolveDescription + "</i></p>"; m.TemplateType = Mailer.TemplateTypes.AnotherSiteUser; m.UsrRecipient = CurrentAbuse.ReportUsr; m.Send(); CurrentAbuse.ReportUsr.UpdateAbuseTrackers(); CurrentAbuse.AbuseUsr.UpdateAbuseTrackers(); Bobs.Global.UpdatePhotoAbuseReports(); } PanelAbuse_Load(null, null); } } }
public static void CreateFrontPagePhotoDsi(Photo photo, string caption) { Query q = new Query(); q.QueryCondition = new And( new Q(FacebookPost.Columns.DateTime, QueryOperator.GreaterThan, System.DateTime.Now.AddDays(-7)), new Q(FacebookPost.Columns.FacebookUid, FacebookCommon.Common(Facebook.Apps.Dsi).AppId), new Q(FacebookPost.Columns.DataInt, photo.K), new Q(FacebookPost.Columns.Type, TypeEnum.FrontPagePhotoDsi)); FacebookPostSet fps = new FacebookPostSet(q); if (fps.Count == 0) { FacebookPost fp = new FacebookPost(); fp.Hits = 0; fp.FacebookUid = FacebookCommon.Common(Facebook.Apps.Dsi).AppId; fp.DateTime = System.DateTime.Now; fp.Type = TypeEnum.FrontPagePhotoDsi; fp.Content = "PhotoK=" + photo.K.ToString(); fp.DataInt = photo.K; fp.UsrK = 0; fp.Update(); //send facebook message //http://developers.facebook.com/docs/reference/api/post Dictionary<string, object> par = new Dictionary<string, object>(); par["picture"] = photo.IconPath; par["link"] = "http://" + Vars.DomainName + photo.Url() + "?fbpk=" + fp.K.ToString(); par["name"] = "Photo by " + photo.Usr.NickName; par["caption"] = "Don't Stay In"; if (photo.Event != null) { par["description"] = ("From " + photo.Event.FriendlyNameGeneric(true, true, true, true)).TruncateWithDots(990); } else if (photo.Article != null) { par["description"] = ("From " + photo.Article.Name).TruncateWithDots(990); } FacebookGraphAPI dsiPage = FacebookGraphAPI.GetPageApi(Facebook.Apps.Dsi); dsiPage.PutWallPost(caption, par); } }