aboutsummaryrefslogtreecommitdiff
path: root/source/WindowsFormsApplication1/Package_Grabber.cs
diff options
context:
space:
mode:
authorMichaelTheShifter <[email protected]>2016-06-25 08:10:03 -0400
committerMichaelTheShifter <[email protected]>2016-06-25 08:10:03 -0400
commit84f689b91a73e512b035df40bbcf556b008a3b81 (patch)
treeda1020b2b5866c7ce300ac7b9c97112fe80fa1b3 /source/WindowsFormsApplication1/Package_Grabber.cs
parent6707e2076a63dafab686fd533c95fb8ceb6c23fa (diff)
downloadshiftos-c-_theultimatehacker-84f689b91a73e512b035df40bbcf556b008a3b81.tar.gz
shiftos-c-_theultimatehacker-84f689b91a73e512b035df40bbcf556b008a3b81.tar.bz2
shiftos-c-_theultimatehacker-84f689b91a73e512b035df40bbcf556b008a3b81.zip
Sort source code into folders.
It feels better to know what's responsible for what... Plus I removed some un-needed C# stuff.
Diffstat (limited to 'source/WindowsFormsApplication1/Package_Grabber.cs')
-rw-r--r--source/WindowsFormsApplication1/Package_Grabber.cs402
1 files changed, 0 insertions, 402 deletions
diff --git a/source/WindowsFormsApplication1/Package_Grabber.cs b/source/WindowsFormsApplication1/Package_Grabber.cs
deleted file mode 100644
index b6bbc61..0000000
--- a/source/WindowsFormsApplication1/Package_Grabber.cs
+++ /dev/null
@@ -1,402 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Text;
-using System.Threading.Tasks;
-using System.IO;
-using System.IO.Compression;
-using Newtonsoft.Json;
-using System.Windows.Forms;
-using System.Threading;
-using System.Drawing;
-using NetSockets;
-
-namespace ShiftOS
-{
- [Serializable]
- public class ObjectModel
- {
- public string SysId { get; set; }
- public string Command { get; set; }
- public object OptionalObject { get; set; }
- }
-
- [Serializable]
- public class ChatUser
- {
- public string Name { get; set; }
- public event EventHandler OnJoin;
- public event EventHandler OnLeave;
- }
-
- [Serializable]
- public class ChatMessage
- {
- public string Text { get; set; }
- public ChatUser User { get; set; }
- }
-
- class Package_Grabber
- {
-
-
- public static Dictionary<string, NetObjectClient> clients = null;
-
- /// <summary>
- /// Connect to a ShiftOS server
- /// </summary>
- /// <param name="address">IP address</param>
- /// <param name="port">Port (typically this is 4433.)</param>
- public static void ConnectToServer(string address, int port)
- {
- if(clients == null)
- {
- clients = new Dictionary<string, NetObjectClient>();
- }
- bool blacklisted = false;
- string blacklist = new WebClient().DownloadString("http://playshiftos.ml/server/blacklist");
- string[] splitter = blacklist.Split(';');
- foreach (string addr in splitter)
- {
- try
- {
- string[] addSplitter = addr.Split(':');
- string host = addSplitter[0];
- int prt = Convert.ToInt32(addSplitter[1]);
- if(address == host && port == prt)
- {
- blacklisted = true;
- }
- }
- catch
- {
-
- }
- }
- if (!blacklisted)
- {
- var client = new NetObjectClient();
- client.OnReceived += (object s, NetReceivedEventArgs<NetObject> a) =>
- {
- try
- {
- var obj = (ObjectModel)a.Data.Object;
- if (obj.Command == "set_ident")
- {
- this_id = obj.SysId;
- }
- }
- catch
- {
-
- }
- };
-
- try
- {
- client.Connect(address, port);
- clients.Add(client.RemoteHost, client);
- }
- catch
- {
- }
- }
- else
- {
- API.CreateInfoboxSession("Server Connection Error", "The server you are trying to connect to has been blacklisted for breaking the rules of the Server Showcase, therefore you may not connect to it.", infobox.InfoboxMode.Info);
- }
- }
-
- private static string this_id = "";
-
- /// <summary>
- /// Send a message to a server.
- /// </summary>
- /// <param name="host">Server hostname/IP</param>
- /// <param name="text">Messge contents.</param>
- public static void SendMessage(string host, string text)
- {
- var obj = new ObjectModel();
- obj.SysId = this_id;
- obj.Command = text;
- try {
- clients[host].Send(new NetObject("test", obj));
- }
- catch
- {
-
- }
- }
-
- /// <summary>
- /// Send a message to a server containing a .NET object.
- /// </summary>
- /// <param name="host">Server hostname/IP</param>
- /// <param name="text">Message text.</param>
- /// <param name="optional">The object to go with it.</param>
- public static void SendMessage(string host, string text, object optional)
- {
- var obj = new ObjectModel();
- obj.SysId = this_id;
- obj.Command = text;
- obj.OptionalObject = optional;
- try {
- clients[host].Send(obj.SysId, obj);
- }
- catch
- {
-
- }
- }
-
-
-
- /// <summary>
- /// Disconnect from a server.
- /// </summary>
- /// <param name="host">Server host.</param>
- public static void Disconnect(string host)
- {
- if(clients.ContainsKey(host))
- {
- if(clients[host].IsConnected == true)
- {
- clients[host].Disconnect();
- }
- }
- }
-
-
- /// <summary>
- /// Download a package through spkg.
- /// </summary>
- /// <param name="pkgname">Package name</param>
- /// <returns>Could it download?</returns>
- public static bool GetPackage(string pkgname)
- {
- bool result = true;
- try
- {
- string downloadpath = Paths.Mod_Temp;
- if (!Directory.Exists(downloadpath))
- {
- Directory.CreateDirectory(downloadpath);
- } else
- {
- Directory.Delete(downloadpath, true);
- Directory.CreateDirectory(downloadpath);
- }
- WebClient wc = new WebClient();
- wc.DownloadFile("http://playshiftos.ml/shiftnet/packages/" + pkgname + ".pkg", downloadpath + pkgname + ".pkg");
- LastPackage_DownloadPath = downloadpath + pkgname + ".pkg";
- }
- catch
- {
- result = false;
- }
- return result;
- }
-
- public static string LastPackage_DownloadPath = null;
-
- /// <summary>
- /// Extracts the last downloaded package.
- /// </summary>
- /// <returns>The temp path</returns>
- public static string ExtractPackage()
- {
- if (LastPackage_DownloadPath != null)
- {
- string packagedir = null;
- if (LastPackage_DownloadPath.EndsWith(".pkg"))
- {
- packagedir = LastPackage_DownloadPath.Replace(".pkg", "");
- }
- else
- {
- packagedir = LastPackage_DownloadPath.Replace(".stp", "");
- }
- if (Directory.Exists(packagedir))
- {
- Directory.Delete(packagedir, true);
- }
- ZipFile.ExtractToDirectory(LastPackage_DownloadPath, packagedir);
- return packagedir;
- }
- else
- {
- return "fail";
- }
- }
-
- /// <summary>
- /// Extract a specified .stp or .pkg file.
- /// </summary>
- /// <param name="localpath">File to extract</param>
- /// <returns>The new temp path</returns>
- public static string ExtractPackage(string localpath)
- {
- try {
-
- string packagedir = Paths.Mod_Temp + "pkg";
- if (Directory.Exists(packagedir))
- {
- Directory.Delete(packagedir, true);
- }
- Directory.CreateDirectory(packagedir);
- ZipFile.ExtractToDirectory(localpath, packagedir);
- return packagedir;
- }
- catch
- {
- return "fail";
- }
- }
-
- /// <summary>
- /// Install a package from a directory
- /// </summary>
- /// <param name="dir">The package directory</param>
- /// <returns>Could it install?</returns>
- public static string InstallPackage(string dir)
- {
- try
- {
- string dirsepchar = "\\";
- switch (OSInfo.GetPlatformID())
- {
- case "microsoft":
- dirsepchar = "\\";
- break;
- default:
- dirsepchar = "/";
- break;
- }
- string alfile = null;
- foreach (string file in Directory.GetFiles(dir))
- {
- if (file.Contains("applauncher"))
- {
- alfile = file;
- }
- }
- string json = File.ReadAllText(alfile);
- if (!Directory.Exists(Paths.Mod_AppLauncherEntries))
- {
- Directory.CreateDirectory(Paths.Mod_AppLauncherEntries);
- }
- ModApplauncherItem itm = JsonConvert.DeserializeObject<ModApplauncherItem>(json);
- File.WriteAllText(Paths.Mod_AppLauncherEntries + itm.Name, json);
- //Applauncher Entry installed!
- if (!Directory.Exists(Paths.Applications + itm.AppDirectory))
- {
- Directory.CreateDirectory(Paths.Applications + itm.AppDirectory);
- }
-
- Thread.Sleep(200);
- if (!File.Exists(Paths.Applications + itm.AppDirectory + dirsepchar + "Icon.bmp"))
- {
- File.Copy(dir + "Icon.bmp", Paths.Applications + itm.AppDirectory + dirsepchar + "Icon.bmp");
- }
- if (File.Exists(Paths.Applications + itm.AppDirectory + dirsepchar + "app.saa"))
- {
- File.Delete(Paths.Applications + itm.AppDirectory + dirsepchar + "app.saa");
- }
- File.Move(dir + "app.saa", Paths.Applications + itm.AppDirectory + dirsepchar + "app.saa");
- //App installed.
- foreach (string file in Directory.GetFiles(dir))
- {
- if (file.EndsWith(".dll"))
- {
- if (!File.Exists(Paths.Applications + itm.AppDirectory + dirsepchar + new FileInfo(file).Name))
- {
- //Dependencies are fucking bitches.
- File.Copy(file, Paths.Applications + itm.AppDirectory + dirsepchar + new FileInfo(file).Name);
- }
- }
- }
- //Dependencies installed.
- API.CurrentSession.SetupAppLauncher();
- return "success";
- }
- catch (Exception ex)
- {
- return ex.Message;
- }
- }
- }
-
- class FTP_API
- {
- /// <summary>
- /// Gets a package image from the ShiftOS website
- /// </summary>
- /// <param name="ftpFilePath">Image path relative to the packages directory</param>
- /// <returns>The image</returns>
- [Obsolete]
- public static Image GetImage(string ftpFilePath)
- {
- var request = WebRequest.Create("http://playshiftos.ml/appscape/packages/" + ftpFilePath);
-
- using (var response = request.GetResponse())
- {
- using (var str = response.GetResponseStream())
- {
- return Image.FromStream(str);
- }
- }
- }
-
- [Obsolete]
- public static Image GetSkinImage(string ftpFilePath)
- {
- var request = WebRequest.Create("http://playshiftos.ml/appscape/skins/" + ftpFilePath);
-
- using (var response = request.GetResponse())
- {
- using (var str = response.GetResponseStream())
- {
- return Image.FromStream(str);
- }
- }
- }
- }
-
-
- [Serializable]
- public class AppscapeModder
- {
- public string DevKey { get; set; }
- public string Name { get; set; }
- public string Bio { get; set; }
- public string BitnoteAddress { get; set; }
- }
-
- [Serializable]
- public class AppscapePackage
- {
- public string Name { get; set; }
- public string Address { get; set; }
- public string DevKey { get; set; }
- public string Description { get; set; }
- public string SetupFile { get; set; }
- public string PkgIconPath { get; set; }
- public string ScreenshotPath { get; set; }
- public decimal Cost { get; set; }
- public string Server { get; set; }
- }
-
- [Serializable]
- public class SkinData
- {
- public string Name { get; set; }
- public string Author { get; set; }
- public string Description { get; set; }
- public string Download { get; set; }
- public string Icon { get; set; }
- public string Screenshot { get; set; }
- public decimal Cost { get; set; }
- public string Server { get; set; }
- }
-}