Ejemplo n.º 1
0
 //Saves lists...
 public async void SaveSettings()
 {
     try
     {
         File.WriteAllText("Settings.json", JsonConvert.SerializeObject(this.Settings));
         await ControlHandler.LogAsync("[SETTINGSHANDLER] Saved Settings File!");
     }
     catch (Exception ecc) {
         Console.WriteLine(ecc.Message);
     }
 }
Ejemplo n.º 2
0
 public static Task ResetTabsAsync()
 {
     Program.UserInterface.SelectedChannels.Clear();
     Program.UserInterface.tabControl1.Invoke(new Action(() =>
     {
         for (int i = 4; i < Program.UserInterface.tabControl1.TabCount;)
         {
             try
             {
                 Program.UserInterface.tabControl1.TabPages[i].Dispose();
             }
             catch { }
         }
     }));
     Program.UserInterface.DMUploadButton.Invoke(new Action(() => { Program.UserInterface.DMUploadButton.Enabled = false; }));
     Program.UserInterface.DMListView.Invoke(new Action(() => { Program.UserInterface.DMListView.Items.Clear(); }));
     Program.UserInterface.ChannelListView.Invoke(new Action(() => { Program.UserInterface.ChannelListView.Items.Clear(); }));
     Program.UserInterface.MessagesListView.Invoke(new Action(() => { Program.UserInterface.MessagesListView.Items.Clear(); }));
     Program.UserInterface.UserJoinChannelsComboBox.Invoke(new Action(() => { Program.UserInterface.UserJoinChannelsComboBox.Items.Clear(); }));
     Program.UserInterface.ConnectedMessageAddButton.Invoke(new Action(() => {
         if (Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Connected || Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Connecting)
         {
             Program.UserInterface.ConnectedMessageAddButton.Enabled = true;
         }
         else if (Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Disconnected || Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Disconnecting)
         {
             Program.UserInterface.ConnectedMessageAddButton.Enabled = false;
         }
     }));
     Program.UserInterface.FileSendButton.Invoke(new Action(() => { Program.UserInterface.FileSendButton.Enabled = false; }));
     Program.UserInterface.ConnectButton.Invoke(new Action(() => {
         if (Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Connected || Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Connecting)
         {
             Program.UserInterface.ConnectButton.Enabled = false;
         }
         else if (Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Disconnected || Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Disconnecting)
         {
             Program.UserInterface.ConnectButton.Enabled = true;
         }
     }));
     Program.UserInterface.DisconnectButton.Invoke(new Action(() => {
         if (Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Connected || Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Connecting)
         {
             Program.UserInterface.DisconnectButton.Enabled = true;
         }
         else if (Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Disconnected || Global.Kuro.Client.ConnectionState == Discord.ConnectionState.Disconnecting)
         {
             Program.UserInterface.DisconnectButton.Enabled = false;
         }
     }));
     ControlHandler.LogAsync("[LOGHANDLER] Reset controls!");
     return(Task.CompletedTask);
 }
Ejemplo n.º 3
0
        public async Task ClientReady()
        {
            await ControlHandler.LogAsync("[CONNECTED] Successfully connected to Discord!");

            await Global.SettingsHandler.RefreshGuildChangesAsync();

            Program.UserInterface.ConnectButton.Invoke(new Action(() =>
            {
                Program.UserInterface.ConnectButton.Enabled = false;
            }));
            await Global.Kuro.Client.SetGameAsync(Global.SettingsHandler.Settings.Game);
        }
Ejemplo n.º 4
0
        //Admin stuff
        public async static Task <bool> AddAdmin(string Username, ulong UserID, string Addedby)
        {
            if (Global.SettingsHandler.Settings.Admins.FindIndex(u => u.Id == UserID) == -1)
            {
                Global.SettingsHandler.Settings.Admins.Add(new AdminUser(Username, UserID, Addedby));
                await ControlHandler.LogAsync("[PERMHANLDER] An admin has been added: " + Username);

                Global.SettingsHandler.SaveSettings();
                await ControlHandler.ShowSettingsValueAsync();

                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 5
0
        public async static Task <bool> RemoveBlackList(SocketTextChannel Channel)
        {
            if (Global.SettingsHandler.Settings.BlackListChannels.FindIndex(u => u.Id == Channel.Id) > -1)
            {
                Global.SettingsHandler.Settings.BlackListChannels.Remove(Global.SettingsHandler.Settings.BlackListChannels.Find(u => u.Id == Channel.Id));
                await ControlHandler.LogAsync("[PERMHANLDER] Blacklisted channel has been Removed: " + Channel.Id);

                Global.SettingsHandler.SaveSettings();
                await ControlHandler.ShowSettingsValueAsync();

                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 6
0
        //Blacklist stuff
        public async static Task <bool> AddBlackList(SocketTextChannel Channel, string AddedBy)
        {
            if (Global.SettingsHandler.Settings.BlackListChannels.FindIndex(u => u.Id == Channel.Id) == -1)
            {
                Global.SettingsHandler.Settings.BlackListChannels.Add(new BlackListedChannel(Channel.Guild.Name, Channel.Id, Channel.Name, AddedBy));
                await ControlHandler.LogAsync("[PERMHANLDER] Blacklisted channel has been Added: " + Channel.Id);

                Global.SettingsHandler.SaveSettings();
                await ControlHandler.ShowSettingsValueAsync();

                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 7
0
 public SettingsHandler(string SettingsFile)
 {
     if (File.Exists(SettingsFile))
     {
         try
         {
             Settings = JsonConvert.DeserializeObject <Setting>(File.ReadAllText(SettingsFile));
             ControlHandler.LogAsync("[SETTINGSHANDLER] Read Settings File!");
         }
         catch {
             ControlHandler.LogAsync("[SETTINGSHANDLER] Couldn't read Settings file! Using Default settings. Don't forget to set your ID as OwnerID in [SETTINGS]!");
         }
     }
     else
     {
         ControlHandler.LogAsync("[SETTINGSHANDLER] Couldn't read Settings file! Using Default settings. Don't forget to set your ID as OwnerID in [SETTINGS]!");
     }
 }
Ejemplo n.º 8
0
        public async static Task <bool> RemoveAdmin(ulong UserID)
        {
            if (Global.SettingsHandler.Settings.Admins.FindIndex(u => u.Id == UserID) == -1)
            {
                AdminUser OldAdmin = Global.SettingsHandler.Settings.Admins.Find(u => u.Id == UserID);
                await ControlHandler.LogAsync("[PERMHANLDER] An admin has been Removed: " + OldAdmin.Username);

                Global.SettingsHandler.Settings.Admins.Remove(Global.SettingsHandler.Settings.Admins.Find(u => u.Id == UserID));
                Global.SettingsHandler.SaveSettings();
                await ControlHandler.ShowSettingsValueAsync();

                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 9
0
        public async Task MessageReceived(SocketMessage message)
        {
            string Guild = message.Channel is SocketDMChannel ? "PRIVATE" : (message.Channel as SocketGuildChannel).Guild.Name;

            if (Guild != "PRIVATE")
            {
                if (Program.UserInterface.SelectedChannels.Count != 0 && Program.UserInterface.SelectedChannels.IndexOf(message.Channel as SocketTextChannel) > -1)
                {
                    SocketTextChannel ch = Program.UserInterface.SelectedChannels[Program.UserInterface.SelectedChannels.IndexOf(message.Channel as SocketTextChannel)];
                    if (message.Channel.Name == ch.Name && Guild == ch.Guild.Name)
                    {
                        await ControlHandler.LogAsync("[" + message.Timestamp.LocalDateTime + "] " + "#" + message.Channel.Name + " | " + message.Author + ": " + (message.Attachments.Count != 0 ? "[" + message.Attachments.FirstOrDefault().Url + "] " + message.Content : message.Content), Guild);
                    }
                    else
                    {
                        await ControlHandler.LogAsync("[" + message.Timestamp.LocalDateTime + "] " + "#" + message.Channel.Name + " | " + message.Author + ": " + (message.Attachments.Count != 0 ? "[" + message.Attachments.FirstOrDefault().Url + "] " + message.Content : message.Content));
                    }
                }
                else
                {
                    await ControlHandler.LogAsync("[" + message.Timestamp.LocalDateTime + "] " + "#" + message.Channel.Name + " | " + message.Author + ": " + (message.Attachments.Count != 0 ? "[" + message.Attachments.FirstOrDefault().Url + "] " + message.Content : message.Content));
                }
            }
            else
            {
                Program.UserInterface.DMListView.Invoke(new Action(async() =>
                {
                    SocketDMChannel Channel = message.Channel as SocketDMChannel;
                    await ControlHandler.LogAsync("[" + message.Timestamp.LocalDateTime + "] PRIVATE/" + message.Author + ": " + (message.Attachments.Count != 0 ? "[" + message.Attachments.FirstOrDefault().Url + "] " + message.Content : message.Content));
                    if (Program.UserInterface.DMListView.Items.IndexOf(Program.UserInterface.DMListView.FindItemWithText(Channel.Recipient.Username + "#" + Channel.Recipient.Discriminator)) == -1)
                    {
                        await ControlHandler.AddNewDM(Channel.Recipient.Username + "#" + Channel.Recipient.Discriminator);
                    }
                    if (Program.UserInterface.SelectedDMIndex != null)
                    {
                        if ((int)Program.UserInterface.SelectedDMIndex == Program.UserInterface.DMListView.Items.IndexOf(Program.UserInterface.DMListView.FindItemWithText(Channel.Recipient.Username + "#" + Channel.Recipient.Discriminator)))
                        {
                            await ControlHandler.LogDMAsync("[" + message.Timestamp.LocalDateTime + "] " + message.Author + ": " + (message.Attachments.Count != 0 ? "[" + message.Attachments.FirstOrDefault().Url + "] " + message.Content : message.Content));
                        }
                    }
                }));
            }
        }
Ejemplo n.º 10
0
 public async void ReadPictures()
 {
     Global.PicturesSFW.Clear();
     Global.PicturesNSFW.Clear();
     try
     {
         foreach (string sfwfolder in this.Settings.SFWFolders)
         {
             Global.PicturesSFW.AddRange(Directory.GetFiles(sfwfolder).ToList <string>().FindAll(path => path.EndsWith(".jpg") || path.EndsWith(".png") || path.EndsWith(".gif") || path.EndsWith(".webm")));
         }
         foreach (string nsfwfolder in this.Settings.NSFWFolders)
         {
             Global.PicturesNSFW.AddRange(Directory.GetFiles(nsfwfolder).ToList <string>().FindAll(path => path.EndsWith(".jpg") || path.EndsWith(".png") || path.EndsWith(".gif") || path.EndsWith(".webm")));
         }
         await ControlHandler.LogAsync(string.Format("[PICTURES] Found {0} SFW and {1} NSFW pictures!", Global.PicturesSFW.Count, Global.PicturesNSFW.Count));
     }
     catch (Exception e)
     {
         await ControlHandler.LogAsync("[PICTURES] Could not get pictures from this folder: " + e.Message);
     }
 }
Ejemplo n.º 11
0
 public Task Log(LogMessage msg)
 {
     ControlHandler.LogAsync(msg.Source + " " + msg.Message);
     return(Task.CompletedTask);
 }
Ejemplo n.º 12
0
        public bool Login()
        {
            PasswordHash     = null;
            Cfduid           = null;
            SankakuSessionId = null;
            ActualUsername   = null;
            try
            {
                HttpWebRequest CookieReq = (HttpWebRequest)WebRequest.Create("https://chan.sankakucomplex.com/");
                CookieReq.Method = "GET";
                CookieReq.Headers.Add("Upgrade-Insecure-Requests: 1");
                CookieReq.Headers.Add("Accept-Encoding: gzip, deflate, sdch, br");
                CookieReq.Headers.Add("Accept-Language: en-US,en;q=0.8,sl;q=0.6");
                CookieReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
                CookieReq.Accept    = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
                CookieReq.Timeout   = 18 * 1000;

                HttpWebResponse CookieResponse   = (HttpWebResponse)CookieReq.GetResponse();
                string          CookieValueValue = CookieResponse.GetResponseHeader("Set-Cookie");
                CookieResponse.Close();
                Cfduid = new Regex(@"__cfduid=(.*?);").Match(CookieValueValue).Groups[1].Value;

                HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://chan.sankakucomplex.com/user/authenticate");
                Request.Method            = "POST";
                Request.AllowAutoRedirect = false;
                Request.Headers.Add("Origin", "https://chan.sankakucomplex.com");
                Request.Headers.Add("Cache-Control", "max-age=0");
                Request.Headers.Add("Upgrade-Insecure-Requests", "1");
                Request.Headers.Add("Accept-Encoding", "gzip, deflate, br");
                Request.Headers.Add("Accept-Language", "en-US,en;q=0.8,sl;q=0.6");
                Request.Host        = "chan.sankakucomplex.com";
                Request.Referer     = "https://chan.sankakucomplex.com/user/login";
                Request.UserAgent   = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
                Request.ContentType = "application/x-www-form-urlencoded";
                Request.Accept      = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
                Request.Headers.Add("Cookie", $"__cfduid={Cfduid}; auto_page=1; blacklisted_tags=; locale=en");
                string Content = $"url=&user%5Bname%5D={Username}&user%5Bpassword%5D={Password}&commit=Login";

                byte[] ContentBytes = Encoding.ASCII.GetBytes(Content);
                Request.ContentLength = ContentBytes.Length;
                Stream RequestStream = Request.GetRequestStream();
                RequestStream.Write(ContentBytes, 0, ContentBytes.Length);
                RequestStream.Close();
                Request.Timeout = 18 * 1000;

                HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
                string          Value    = Response.GetResponseHeader("Set-Cookie");
                Response.Close();

                PasswordHash     = new Regex(@"pass_hash=(.*?);").Match(Value).Groups[1].Value;
                ActualUsername   = new Regex(@"login=(.*?);").Match(Value).Groups[1].Value;
                SankakuSessionId = new Regex(@"_sankakucomplex_session=(.*?);").Match(Value).Groups[1].Value;

                if (PasswordHash.Length < 2)
                {
                    LoggedIn = false; return(LoggedIn);
                }
                LoggedIn = true;
                return(LoggedIn);
            }
            catch (WebException Exception)
            {
                ControlHandler.LogAsync("[SANKAKU] " + Exception.Message);
                LoggedIn = false;
                return(LoggedIn);
            }
            catch
            {
                LoggedIn = false;
                return(LoggedIn);
            }
        }