mirror of
https://github.com/lempamo/Project-Unite.git
synced 2025-01-22 11:21:47 -05:00
discord webhooks
This commit is contained in:
parent
7c3d5156e1
commit
3f1236f22e
3 changed files with 51 additions and 0 deletions
|
@ -145,6 +145,13 @@ public ActionResult AddRelease(PostDownloadViewModel model)
|
||||||
|
|
||||||
//Now we just save to the database...
|
//Now we just save to the database...
|
||||||
db.Downloads.Add(download);
|
db.Downloads.Add(download);
|
||||||
|
|
||||||
|
NotificationDaemon.ScreamToDiscord("New release: " + download.Name, $@"A new release of ShiftOS has been made!
|
||||||
|
|
||||||
|
Release name: {download.Name}
|
||||||
|
Stable: {download.IsStable}
|
||||||
|
Released on: {download.PostDate}", Url.Action("ViewRelease", "Downloads", new { id = download.Id }));
|
||||||
|
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
|
|
||||||
return RedirectToAction("Releases");
|
return RedirectToAction("Releases");
|
||||||
|
|
|
@ -75,6 +75,7 @@ public enum AuditLogLevel
|
||||||
public class Configuration
|
public class Configuration
|
||||||
{
|
{
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
public string WebhookUrl { get; set; }
|
||||||
public string FeedbackEmail { get; set; }
|
public string FeedbackEmail { get; set; }
|
||||||
public string SiteName { get; set; }
|
public string SiteName { get; set; }
|
||||||
public string ReturnEmail { get; set; }
|
public string ReturnEmail { get; set; }
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
using System.Web.Script.Serialization;
|
||||||
using Microsoft.AspNet.Identity.Owin;
|
using Microsoft.AspNet.Identity.Owin;
|
||||||
using Microsoft.AspNet.SignalR;
|
using Microsoft.AspNet.SignalR;
|
||||||
using Project_Unite.Models;
|
using Project_Unite.Models;
|
||||||
|
@ -110,6 +113,46 @@ public static void NotifyUser(string uid, string target, string title, string de
|
||||||
SendMessage(target, ComposeHtml(note));
|
SendMessage(target, ComposeHtml(note));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void ScreamToDiscord(string title, string desc, string url)
|
||||||
|
{
|
||||||
|
var db = new ApplicationDbContext();
|
||||||
|
var conf = db.Configs.FirstOrDefault();
|
||||||
|
if(conf != null)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(conf.WebhookUrl))
|
||||||
|
{
|
||||||
|
var wc = HttpWebRequest.Create(conf.WebhookUrl);
|
||||||
|
wc.Method = "POST";
|
||||||
|
wc.ContentType = "application/json";
|
||||||
|
string json = new JavaScriptSerializer().Serialize(new
|
||||||
|
{
|
||||||
|
content = $@"**{title}**
|
||||||
|
|
||||||
|
{desc}
|
||||||
|
|
||||||
|
Visit this URL to see more: {url}"
|
||||||
|
});
|
||||||
|
wc.ContentLength = json.Length;
|
||||||
|
using (var s = wc.GetRequestStream())
|
||||||
|
{
|
||||||
|
using(var writer = new StreamWriter(s))
|
||||||
|
{
|
||||||
|
writer.Write(json);
|
||||||
|
using(var r = wc.GetResponse())
|
||||||
|
{
|
||||||
|
using(var rs = r.GetResponseStream())
|
||||||
|
{
|
||||||
|
using(var reader = new StreamReader(rs))
|
||||||
|
{
|
||||||
|
string result = reader.ReadToEnd();
|
||||||
|
db.AuditLogs.Add(new AuditLog("system", AuditLogLevel.Admin, "Discord webhook sent. Result: " + result));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue