Ejemplo n.º 1
0
		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();
		}
Ejemplo n.º 2
0
		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;
				}
			}
		}
Ejemplo n.º 3
0
		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);
				}
			}
		}
Ejemplo n.º 4
0
		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);
				}
			}
		}
Ejemplo n.º 5
0
		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);
			}
		}