private void SetAllIrcSettings(IrcSettings settings)
 {
     DebugHandler.TraceMessage("SetAllIrcSettings Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
     DebugHandler.TraceMessage(settings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);
     IrcClientHandlerSettings.SetIrcSettings(settings);
     FileHandlerSettings.SetIrcSettings(settings);
     DownloadHandlerSettings.SetIrcSettings(settings);
     DirectoryWebSocketServiceSettings.SetIrcSettings(settings);
     IrcWebSocketServiceSettings.SetIrcSettings(settings);
 }
Exemplo n.º 2
0
        public bool StartConnection(IrcSettings settings = null)
        {
            DebugHandler.TraceMessage("StartConnection Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            try
            {
                if (settings != null)
                {
                    DebugHandler.TraceMessage(settings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);
                    IrcSettings = settings;
                }
                IrcClient.SetupIrc(IrcSettings.ServerAddress, IrcSettings.UserName, IrcSettings.Channels, IrcSettings.Port, "", 3000, IrcSettings.Secure);

                Thread.Sleep(500);

                if (!IrcClient.StartClient())
                {
                    OnIrcClientConnectionStatusEvent?.Invoke(this, new IrcClientConnectionStatusArgs()
                    {
                        Connected        = false,
                        ChannelsAndUsers = null
                    });

                    DebugHandler.TraceMessage("Irc client is could not connect!", DebugSource.TASK, DebugType.WARNING);
                    return(false);
                }
                else
                {
                    DebugHandler.TraceMessage("Irc client is succesfully connected!", DebugSource.TASK, DebugType.INFO);
                    return(true);
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.ERROR);
                return(false);
            }
        }
Exemplo n.º 3
0
        public void WriteIrcSettings(IrcSettings ircSettings)
        {
            DebugHandler.TraceMessage("WriteIrcSettings Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(ircSettings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            try
            {
                string settingsName = "IrcSettings.json";
                string settingsJson = JsonConvert.SerializeObject(ircSettings);

                if (!File.Exists(Path.Combine(SettingsPath, settingsName)))
                {
                    using (var fileStream = File.Open(Path.Combine(SettingsPath, settingsName), FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite))
                    {
                        using (var streamWriter = new StreamWriter(fileStream))
                        {
                            streamWriter.Write(settingsJson);
                        }
                    }
                }
                else
                {
                    using (var fileStream = File.Open(Path.Combine(SettingsPath, settingsName), FileMode.Truncate, FileAccess.ReadWrite, FileShare.ReadWrite))
                    {
                        using (var streamWriter = new StreamWriter(fileStream))
                        {
                            streamWriter.Write(settingsJson);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);
            }
        }
 public void SetIrcSettings(IrcSettings settings)
 {
     DebugHandler.TraceMessage("SetIrcSettings called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
     DebugHandler.TraceMessage(settings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);
     IrcSettings = settings;
 }
Exemplo n.º 5
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;
        }