aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Server/ShiftnetBackend.cs
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-02-12 11:21:20 -0500
committerMichael <[email protected]>2017-02-12 11:21:20 -0500
commit7f8f8b1c483e04abde8e849e8054a5ff4b651051 (patch)
tree955e3bca44bc0f51459f9faf1beb1c485cafa18c /ShiftOS.Server/ShiftnetBackend.cs
parent177c22a24b419144af7a00d5970d04dc1618e0d7 (diff)
downloadshiftos_thereturn-7f8f8b1c483e04abde8e849e8054a5ff4b651051.tar.gz
shiftos_thereturn-7f8f8b1c483e04abde8e849e8054a5ff4b651051.tar.bz2
shiftos_thereturn-7f8f8b1c483e04abde8e849e8054a5ff4b651051.zip
Finish MUD Refactoring
Diffstat (limited to 'ShiftOS.Server/ShiftnetBackend.cs')
-rw-r--r--ShiftOS.Server/ShiftnetBackend.cs114
1 files changed, 114 insertions, 0 deletions
diff --git a/ShiftOS.Server/ShiftnetBackend.cs b/ShiftOS.Server/ShiftnetBackend.cs
new file mode 100644
index 0000000..701021d
--- /dev/null
+++ b/ShiftOS.Server/ShiftnetBackend.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using ShiftOS.Objects;
+using NetSockets;
+using Newtonsoft.Json;
+using System.IO;
+using static ShiftOS.Server.Program;
+
+namespace ShiftOS.Server
+{
+ public static class ShiftnetBackend
+ {
+ [MudRequest("download_start")]
+ public static void StartDownload(string guid, object contents)
+ {
+ string url = contents as string;
+ if (!url.StartsWith("shiftnet/"))
+ {
+ server.DispatchTo(new Guid(guid), new NetObject("shiftnet_got", new ServerMessage
+ {
+ Name = "shiftnet_file",
+ GUID = "server",
+ Contents = (File.Exists("badrequest.md") == true) ? File.ReadAllText("badrequest.md") : @"# Bad request.
+
+You have sent a bad request to the multi-user domain. Please try again."
+ }));
+ return;
+ }
+
+ if (File.Exists(url))
+ {
+ server.DispatchTo(new Guid(guid), new NetObject("download", new ServerMessage
+ {
+ Name = "download_meta",
+ GUID = "server",
+ Contents = JsonConvert.SerializeObject(File.ReadAllBytes(url))
+ }));
+ }
+ else
+ {
+ server.DispatchTo(new Guid(guid), new NetObject("shiftnet_got", new ServerMessage
+ {
+ Name = "shiftnet_file",
+ GUID = "server",
+ Contents = (File.Exists("notfound.md") == true) ? File.ReadAllText("notfound.md") : @"# Not found.
+
+The page you requested at was not found on this multi-user domain."
+ }));
+
+ }
+
+ }
+
+ [MudRequest("shiftnet_get")]
+ public static void GetPage(string guid, object contents)
+ {
+ var args = contents as Dictionary<string, object>;
+ string surl = args["url"] as string;
+ while (surl.EndsWith("/"))
+ {
+ surl = surl.Remove(surl.Length - 1, 1);
+ }
+ if (!surl.StartsWith("shiftnet/"))
+ {
+ server.DispatchTo(new Guid(guid), new NetObject("shiftnet_got", new ServerMessage
+ {
+ Name = "shiftnet_file",
+ GUID = "server",
+ Contents = (File.Exists("badrequest.md") == true) ? File.ReadAllText("badrequest.md") : @"# Bad request.
+
+You have sent a bad request to the multi-user domain. Please try again."
+ }));
+
+ return;
+ }
+
+ if (File.Exists(surl))
+ {
+ server.DispatchTo(new Guid(guid), new NetObject("shiftnet_got", new ServerMessage
+ {
+ Name = "shiftnet_file",
+ GUID = "server",
+ Contents = File.ReadAllText(surl)
+ }));
+ }
+ else if (File.Exists(surl + "/home.rnp"))
+ {
+ server.DispatchTo(new Guid(guid), new NetObject("shiftnet_got", new ServerMessage
+ {
+ Name = "shiftnet_file",
+ GUID = "server",
+ Contents = File.ReadAllText(surl + "/home.rnp")
+ }));
+
+ }
+ else
+ {
+ server.DispatchTo(new Guid(guid), new NetObject("shiftnet_got", new ServerMessage
+ {
+ Name = "shiftnet_file",
+ GUID = "server",
+ Contents = (File.Exists("notfound.md") == true) ? File.ReadAllText("notfound.md") : @"# Not found.
+
+The page you requested at was not found on this multi-user domain."
+ }));
+
+ }
+
+ }
+ }
+}