public void OnWebSocketEvent(WebSocketEventArgs args)
        {
            DebugHandler.TraceMessage("OnWebSocketEvent Called", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(args.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            try
            {
                try{
                    JObject query  = JObject.Parse(args.Message);
                    string  action = query.Value <string>("action");

                    if (action != null)
                    {
                        JObject extra = query.Value <JObject>("extra");

                        if (extra != null)
                        {
                            switch (action)
                            {
                            case "delete_file":
                                FileWebSocketService.DeleteFile(extra);
                                break;

                            case "open_file":
                                FileWebSocketService.OpenFile(extra);
                                break;
                            }
                        }
                    }
                }
                catch (JsonReaderException e)
                {
                    DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);

                    JsonError error = new JsonError()
                    {
                        type         = "command_error",
                        errormessage = "Error happend during parsing of command.",
                        errortype    = "exception",
                        exception    = e.ToString()
                    };
                    WebSocketHandler.SendMessage(error.ToJson());
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.ERROR);
                JsonError error = new JsonError()
                {
                    type         = "command_error",
                    errormessage = "Error happend during execution of command.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };
                WebSocketHandler.SendMessage(error.ToJson());
            }
        }
Ejemplo n.º 2
0
        public async Task GetAnimeProfile(JObject query)
        {
            DebugHandler.TraceMessage("GetAnimeProfile Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage("Query: " + query.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            string             id   = query.Value <string>("id");
            JsonKitsuAnimeInfo info = await AnimeProfileHandler.GetAnimeProfile(id);

            await WebSocketHandler.SendMessage(info.ToJson());
        }
Ejemplo n.º 3
0
        public async Task CreateDirectory(JObject directoryJson)
        {
            DebugHandler.TraceMessage("CreateDirectory called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(directoryJson.ToString(), DebugSource.TASK, DebugType.PARAMETERS);
            try
            {
                string filePath = directoryJson.Value <string>("path");
                if (filePath.Contains("//"))
                {
                    filePath.Replace("//", "/");
                }

                if (filePath.Contains("\\\\"))
                {
                    filePath.Replace("\\\\", "\\");
                }
                string result = DirectoryHandler.CreateDirectory(filePath, "");
                await WebSocketHandler.SendMessage(result);
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);

                JsonError error = new JsonError()
                {
                    type         = "create_directory_error",
                    errormessage = "Could not create directory.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };

                await WebSocketHandler.SendMessage(error.ToJson());
            }
        }
        public async Task GetCurrentIrcSettings()
        {
            DebugHandler.TraceMessage("GetCurrentIrcSettings Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            IrcSettings = SettingsHandler.GetIrcSettings();
            JsonIrcInfo info = new JsonIrcInfo()
            {
                channel      = IrcSettings.Channels,
                server       = IrcSettings.ServerAddress,
                user         = IrcSettings.UserName,
                fullfilepath = IrcSettings.fullfilepath
            };

            await WebSocketHandler.SendMessage(info.ToJson());
        }
Ejemplo n.º 5
0
        public async Task DeleteFile(JObject fileInfoJson)
        {
            DebugHandler.TraceMessage("DeleteFile called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(fileInfoJson.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            try
            {
                string filePath = fileInfoJson.Value <string>("path");

                if (filePath.Contains("//"))
                {
                    filePath.Replace("//", "/");
                }

                if (filePath.Contains("\\\\"))
                {
                    filePath.Replace("\\\\", "\\");
                }

                DownloadHandler.RemoveDownload(filePath);
                FileHistoryHandler.RemoveFileFromFileHistory(filePath);
                string result = FileHandler.DeleteFile(filePath);
                await WebSocketHandler.SendMessage(result);
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);
                JsonError error = new JsonError()
                {
                    type         = "parse_file_to_delete_error",
                    errormessage = "Could not parse json containing file to delete information.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };
                await WebSocketHandler.SendMessage(error.ToJson());
            }
        }
        public async Task AddDownload(JObject downloadJson)
        {
            DebugHandler.TraceMessage("AddDownload called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(downloadJson.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            try
            {
                JsonDownloadInfo downloadInfo = new JsonDownloadInfo()
                {
                    animeInfo = new JsonAnimeInfo()
                    {
                        anime_id             = downloadJson.Value <JObject>("animeInfo").Value <string>("animeid"),
                        anime_title          = downloadJson.Value <JObject>("animeInfo").Value <string>("title"),
                        anime_cover_original = downloadJson.Value <JObject>("animeInfo").Value <string>("cover_original"),
                        anime_cover_small    = downloadJson.Value <JObject>("animeInfo").Value <string>("cover_small")
                    },
                    id            = downloadJson.Value <string>("id"),
                    episodeNumber = downloadJson.Value <string>("episodeNumber"),
                    pack          = downloadJson.Value <string>("pack"),
                    bot           = downloadJson.Value <string>("bot"),
                    fullfilepath  = downloadJson.Value <string>("dir"),
                    filename      = downloadJson.Value <string>("filename"),
                    progress      = downloadJson.Value <string>("progress"),
                    speed         = downloadJson.Value <string>("speed"),
                    status        = downloadJson.Value <string>("status"),
                    filesize      = downloadJson.Value <string>("filesize")
                };

                LastDownloadedInfo = downloadInfo;

                string result = DownloadHandler.AddDownload(downloadInfo);

                await WebSocketHandler.SendMessage(result);
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);

                JsonError error = new JsonError()
                {
                    type         = "parse_download_to_add_error",
                    errormessage = "Could not parse json containing download to add information.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };


                await WebSocketHandler.SendMessage(error.ToJson());
            }
        }
        public async Task CheckVersion()
        {
            DebugHandler.TraceMessage("CheckVersion called", DebugSource.TASK, DebugType.ENTRY_EXIT);
            JsonVersionInfo versionInfoDevelop = new JsonVersionInfo();
            JsonVersionInfo versionInfoRelease = new JsonVersionInfo();


            versionInfoDevelop = await VersionHandler.GetLatestVersionDesktop(false);

            versionInfoRelease = await VersionHandler.GetLatestVersionDesktop(true);



#if __ANDROID__
            versionInfoDevelop = await VersionHandler.GetLatestVersionAndroid(false);

            versionInfoRelease = await VersionHandler.GetLatestVersionAndroid(true);
#endif

            JsonVersionInfo currentVersion = VersionHandler.GetLocalVersion();

            try
            {
                if (versionInfoDevelop.newversion != "Not Found" && currentVersion.currentversion != "Not Found")
                {
                    DebugHandler.TraceMessage("Current: " + currentVersion.ToJson(), DebugSource.TASK, DebugType.INFO);
                    DebugHandler.TraceMessage("Develop: " + versionInfoDevelop.ToJson(), DebugSource.TASK, DebugType.INFO);

                    int currentBuild = int.Parse(currentVersion.currentbuild);
                    int newBuild     = int.Parse(versionInfoDevelop.newbuild);

                    if (versionInfoDevelop.newversion == currentVersion.currentversion && currentBuild >= newBuild)
                    {
                        versionInfoDevelop.update_available = false;
                    }
                    else
                    {
                        versionInfoDevelop.update_available = true;
                    }
                }

                if (versionInfoRelease.newversion != "Not Found" && currentVersion.currentversion != "Not Found")
                {
                    DebugHandler.TraceMessage("Current: " + currentVersion.ToJson(), DebugSource.TASK, DebugType.INFO);
                    DebugHandler.TraceMessage("Develop: " + versionInfoRelease.ToJson(), DebugSource.TASK, DebugType.INFO);

                    int currentBuild = int.Parse(currentVersion.currentbuild);
                    int newBuild     = int.Parse(versionInfoRelease.newbuild);
                    if (versionInfoRelease.newversion == currentVersion.currentversion && currentBuild >= newBuild)
                    {
                        versionInfoRelease.update_available = false;
                    }
                    else
                    {
                        versionInfoRelease.update_available = true;
                    }
                }

                versionInfoDevelop.currentbuild   = currentVersion.currentbuild;
                versionInfoDevelop.currentversion = currentVersion.currentversion;

                await WebSocketHandler.SendMessage(versionInfoDevelop.ToJson());

                versionInfoRelease.currentbuild   = currentVersion.currentbuild;
                versionInfoRelease.currentversion = currentVersion.currentversion;

                await WebSocketHandler.SendMessage(versionInfoRelease.ToJson());
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);
            }
        }
        public void OnWebSocketEvent(WebSocketEventArgs args)
        {
            DebugHandler.TraceMessage("OnWebSocketEvent Called", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(args.ToString(), DebugSource.TASK, DebugType.PARAMETERS);


            try
            {
                try{
                    JObject query  = JObject.Parse(args.Message);
                    string  action = query.Value <string>("action");

                    if (action != null)
                    {
                        JObject extra = query.Value <JObject>("extra");

                        if (extra != null)
                        {
                            switch (action)
                            {
                            case "set_littleweeb_settings":
                                SettingsWebSocketService.SetLittleWeebSettings(extra);
                                break;

                            case "set_irc_settings":
                                SettingsWebSocketService.SetIrcSettings(extra);
                                break;

                            case "set_download_directory":
                                SettingsWebSocketService.Setfullfilepath(extra);
                                break;
                            }
                        }
                        else
                        {
                            switch (action)
                            {
                            case "get_littleweeb_settings":
                                SettingsWebSocketService.GetCurrentLittleWeebSettings();
                                break;

                            case "get_irc_settings":
                                SettingsWebSocketService.GetCurrentIrcSettings();
                                break;
                            }
                        }
                    }
                }
                catch (JsonReaderException e)
                {
                    DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);
                    JsonError error = new JsonError()
                    {
                        type         = "command_error",
                        errormessage = "Error happend during parsing of command.",
                        errortype    = "exception",
                        exception    = e.ToString()
                    };
                    WebSocketHandler.SendMessage(error.ToJson());
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.ERROR);

                JsonError error = new JsonError()
                {
                    type         = "command_error",
                    errormessage = "Error happend during execution of command.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };
                WebSocketHandler.SendMessage(error.ToJson());
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Overload method for sending text messages to a specific client, using it's id, asynchronous.
        /// </summary>
        /// <param name="messageToSend"></param>
        /// <param name="clientId"></param>
        /// <returns>True when send succesfully.</returns>
        public async Task <bool> SendTextMessageAsync(string messageToSend, string clientId = null)
        {
            WebSocketMessageContainer message = new WebSocketMessageContainer()
            {
                data   = Encoding.UTF8.GetBytes(messageToSend),
                isText = true
            };

            if (clientId != null)
            {
                return(await _WebsocketHandler.SendMessage(message, clientId));
            }

            return(await _WebsocketHandler.SendMessage(message));
        }
Ejemplo n.º 10
0
        public void OnWebSocketEvent(WebSocketEventArgs args)
        {
            DebugHandler.TraceMessage("OnWebSocketEvent Called", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(args.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            try
            {
                try
                {
                    JObject query  = JObject.Parse(args.Message);
                    string  action = query.Value <string>("action");

                    if (action != null)
                    {
                        JObject extra = query.Value <JObject>("extra");

                        if (extra != null)
                        {
                            switch (action)
                            {
                            case "add_download":
                                DownloadWebSocketService.AddDownload(extra);
                                break;

                            case "add_downloads":
                                DownloadWebSocketService.AddDownloads(extra);
                                break;

                            case "abort_download":
                                DownloadWebSocketService.AbortDownload(extra);
                                break;

                            case "remove_download":
                                DownloadWebSocketService.RemoveDownload(extra);
                                break;
                            }
                        }
                        else
                        {
                            switch (action)
                            {
                            case "get_downloads":
                                DownloadWebSocketService.GetCurrentFileHistory();
                                break;

                            case "get_free_space":
                                DirectoryWebSocketService.GetFreeSpace();
                                break;

                            case "open_download_directory":
                                DownloadWebSocketService.Openfullfilepath();
                                break;
                            }
                        }
                    }
                }
                catch (JsonReaderException e)
                {
                    DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);

                    JsonError error = new JsonError()
                    {
                        type         = "command_error",
                        errormessage = "Error happend during parsing of command.",
                        errortype    = "exception",
                        exception    = e.ToString()
                    };
                    WebSocketHandler.SendMessage(error.ToJson());
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.ERROR);
                JsonError error = new JsonError()
                {
                    type         = "command_error",
                    errormessage = "Error happend during execution of command.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };
                WebSocketHandler.SendMessage(error.ToJson());
            }
        }
 public async Task <StatusCodeResult> SendMessageAsync(string message)
 {
     _websocketHandler.SendMessage(message);
     return(new OkResult());
 }
Ejemplo n.º 12
0
        public async Task Connect(JObject ircJson = null)
        {
            DebugHandler.TraceMessage("Connect called", DebugSource.TASK, DebugType.ENTRY_EXIT);
            bool succes = false;

            try
            {
                if (ircJson == null)
                {
                    string username = IrcSettings.UserName;

                    if (username == "")
                    {
                        username = UtilityMethods.GenerateUsername(LittleWeebSettings.RandomUsernameLength);
                    }
                    IrcSettings.UserName = username;
                }
                else
                {
                    DebugHandler.TraceMessage(ircJson.ToString(), DebugSource.TASK, DebugType.INFO);

                    string username = ircJson.Value <string>("username");

                    if (username == "")
                    {
                        username = UtilityMethods.GenerateUsername(LittleWeebSettings.RandomUsernameLength);
                    }


                    IrcSettings.ServerAddress = ircJson.Value <string>("address");
                    IrcSettings.Channels      = ircJson.Value <string>("channels");
                    IrcSettings.UserName      = username;
                }

                succes = IrcClientHandler.StartConnection(IrcSettings);

                if (succes)
                {
                    JsonIrcInfo ircInfo = new JsonIrcInfo()
                    {
                        connected    = succes,
                        channel      = IrcSettings.Channels,
                        server       = IrcSettings.ServerAddress,
                        user         = IrcSettings.UserName,
                        fullfilepath = IrcSettings.fullfilepath
                    };

                    await WebSocketHandler.SendMessage(ircInfo.ToJson());
                }
                else
                {
                    JsonIrcInfo ircInfo = new JsonIrcInfo()
                    {
                        connected    = succes,
                        channel      = IrcSettings.Channels,
                        server       = IrcSettings.ServerAddress,
                        user         = IrcSettings.UserName,
                        fullfilepath = IrcSettings.fullfilepath
                    };

                    await WebSocketHandler.SendMessage(ircInfo.ToJson());
                }

                DebugHandler.TraceMessage("Started irc connection using the following settings: " + IrcSettings.ToString(), DebugSource.TASK, DebugType.INFO);

                SettingsHandler.WriteIrcSettings(IrcSettings);
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);

                JsonIrcInfo ircInfo = new JsonIrcInfo()
                {
                    connected    = succes,
                    channel      = IrcSettings.Channels,
                    server       = IrcSettings.ServerAddress,
                    user         = IrcSettings.UserName,
                    fullfilepath = IrcSettings.fullfilepath
                };

                await WebSocketHandler.SendMessage(ircInfo.ToJson());

                JsonError error = new JsonError()
                {
                    type         = "irc_connect_error",
                    errormessage = "Could not start connection to irc server.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };

                await WebSocketHandler.SendMessage(error.ToJson());
            }

            IsIrcConnected = succes;
        }
Ejemplo n.º 13
0
        public void OnWebSocketEvent(WebSocketEventArgs args)
        {
            DebugHandler.TraceMessage("OnWebSocketEvent Called", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(args.ToString(), DebugSource.TASK, DebugType.PARAMETERS);
            try
            {
                try{
                    JObject query  = JObject.Parse(args.Message);
                    string  action = query.Value <string>("action");

                    if (action != null)
                    {
                        JObject extra = query.Value <JObject>("extra");

                        if (extra != null)
                        {
                            switch (action)
                            {
                            case "connect_irc":
                                IrcWebSocketService.Connect(extra);
                                break;

                            case "sendmessage_irc":
                                IrcWebSocketService.SendMessage(extra);
                                break;
                            }
                        }
                        else
                        {
                            switch (action)
                            {
                            case "get_irc_data":
                                IrcWebSocketService.GetCurrentIrcSettings();
                                break;

                            case "connect_irc":
                                IrcWebSocketService.Connect();
                                break;

                            case "disconnect_irc":
                                IrcWebSocketService.Disconnect();
                                break;

                            case "enablechat_irc":
                                IrcWebSocketService.EnableSendMessage();
                                break;

                            case "disablechat_irc":
                                IrcWebSocketService.DisableSendMessage();
                                break;
                            }
                        }
                    }
                }
                catch (JsonReaderException e)
                {
                    DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);
                    JsonError error = new JsonError()
                    {
                        type         = "command_error",
                        errormessage = "Error happend during parsing of command.",
                        errortype    = "exception",
                        exception    = e.ToString()
                    };
                    WebSocketHandler.SendMessage(error.ToJson());
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.ERROR);
                JsonError error = new JsonError()
                {
                    type         = "command_error",
                    errormessage = "Error happend during execution of command.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };
                WebSocketHandler.SendMessage(error.ToJson());
            }
        }
Ejemplo n.º 14
0
        public void OnWebSocketEvent(WebSocketEventArgs args)
        {
            DebugHandler.TraceMessage("OnWebSocketEvent called", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(args.ToString(), DebugSource.TASK, DebugType.PARAMETERS);


            try
            {
                try
                {
                    JObject query  = JObject.Parse(args.Message);
                    string  action = query.Value <string>("action");

                    if (action != null)
                    {
                        JObject extra = query.Value <JObject>("extra");

                        if (extra != null)
                        {
                            switch (action)
                            {
                            case "get_files_for_anime":
                                InfoApiWebSocketService.GetFilesForAnime(extra);
                                break;

                            case "get_anime_profile":
                                InfoApiWebSocketService.GetAnimeProfile(extra);
                                break;
                            }
                        }
                        else
                        {
                            switch (action)
                            {
                            case "get_currently_airing":
                                InfoApiWebSocketService.GetCurrentlyAiring();
                                break;
                            }
                        }
                    }
                }
                catch (JsonReaderException e)
                {
                    DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);

                    JsonError error = new JsonError()
                    {
                        type         = "command_error",
                        errormessage = "Error happend during parsing of command.",
                        errortype    = "exception",
                        exception    = e.ToString()
                    };
                    WebSocketHandler.SendMessage(error.ToJson());
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.ERROR);

                JsonError error = new JsonError()
                {
                    type         = "command_error",
                    errormessage = "Error happend during execution of command.",
                    errortype    = "exception",
                    exception    = e.ToString()
                };
                WebSocketHandler.SendMessage(error.ToJson());
            }
        }