public DownloadWebSocketService(
            IWebSocketHandler webSocketHandler,
            IDirectoryHandler directoryHandler,
            IDownloadHandler downloadHandler,
            IFileHandler fileHandler,
            IFileHistoryHandler fileHistoryHandler,
            ISettingsHandler settingsHandler,
            IDebugHandler debugHandler)
        {
            debugHandler.TraceMessage("Constructor called.", DebugSource.CONSTRUCTOR, DebugType.ENTRY_EXIT);

            DebugHandler       = debugHandler;
            WebSocketHandler   = webSocketHandler;
            DirectoryHandler   = directoryHandler;
            DownloadHandler    = downloadHandler;
            FileHandler        = fileHandler;
            FileHistoryHandler = fileHistoryHandler;
            SettingsHandler    = settingsHandler;
            LastDownloadedInfo = new JsonDownloadInfo();

            LittleWeebSettings = SettingsHandler.GetLittleWeebSettings();
            IrcSettings        = SettingsHandler.GetIrcSettings();


            downloadHandler.OnDownloadUpdateEvent += OnDownloadUpdateEvent;
        }
Пример #2
0
        public DebugHandler()
        {
            LittleWeebSettings = new LittleWeebSettings()
            {
                Local      = true,
                Port       = 1515,
                DebugLevel = new List <int>()
                {
                    0, 1, 2, 3, 4, 5
                },
                DebugType = new List <int>()
                {
                    0, 1, 2, 3, 4
                },
                RandomUsernameLength = 6,
                MaxDebugLogSize      = 2000
            };

            MessageQueue = new ConcurrentBag <string[]>();

            foreach (int level in LittleWeebSettings.DebugLevel)
            {
                WriteTrace("DEBUG LEVEL: " + level);
            }

            currentLog = "";

            CreateFile();
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
            TraceWriter();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
            WriteTrace("Succesfully initiated debug handler!");
        }
Пример #3
0
        public void SetLittleWeebSettings(LittleWeebSettings settings)
        {
            DebugHandler.TraceMessage("SetLittleWeebSettings called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(settings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            LittleWeebSettings = settings;
        }
        public Task SetSettingsClasses(
            ISettingsHandler settingsHandler,
            IIrcClientHandler ircClientHandler,
            IFileHandler fileHandler,
            IDownloadHandler downloadHandler,
            IDirectoryWebSocketService directoryWebSocketService,
            IIrcWebSocketService ircWebSocketService
            )
        {
            DebugHandler.TraceMessage("SetSettingsClasses Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);

            SettingsHandler           = settingsHandler;
            IrcClientHandler          = ircClientHandler;
            DownloadHandler           = downloadHandler;
            DirectoryWebSocketService = directoryWebSocketService;
            IrcWebSocketService       = ircWebSocketService;


            WebSocketHandlerSettings          = WebSocketHandler as ISettingsInterface;
            IrcClientHandlerSettings          = ircClientHandler as ISettingsInterface;
            DebugHandlerSettings              = DebugHandler as ISettingsInterface;
            FileHandlerSettings               = fileHandler as ISettingsInterface;
            DownloadHandlerSettings           = downloadHandler as ISettingsInterface;
            DirectoryWebSocketServiceSettings = directoryWebSocketService as ISettingsInterface;
            IrcWebSocketServiceSettings       = ircWebSocketService as ISettingsInterface;

            LittleWeebSettings = settingsHandler.GetLittleWeebSettings();
            IrcSettings        = settingsHandler.GetIrcSettings();

            SetAllIrcSettings(IrcSettings);
            SetAllLittleWeebSettings(LittleWeebSettings);

            return(Task.CompletedTask);
        }
        public async Task SetLittleWeebSettings(JObject jsonLittleWeebSettings)
        {
            DebugHandler.TraceMessage("SetLittleWeebSettings Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(jsonLittleWeebSettings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

            try
            {
                LittleWeebSettings = SettingsHandler.GetLittleWeebSettings();

                LittleWeebSettings.RandomUsernameLength = jsonLittleWeebSettings.Value <int>("randomusernamelength");
                LittleWeebSettings.DebugLevel           = jsonLittleWeebSettings.Value <JArray>("debuglevel").ToObject <List <int> >();
                LittleWeebSettings.DebugType            = jsonLittleWeebSettings.Value <JArray>("debugtype").ToObject <List <int> >();
                LittleWeebSettings.MaxDebugLogSize      = jsonLittleWeebSettings.Value <int>("maxdebuglogsize");
                SetAllLittleWeebSettings(LittleWeebSettings);


                SettingsHandler.WriteLittleWeebSettings(LittleWeebSettings);

                await GetCurrentLittleWeebSettings();
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);
                JsonError error = new JsonError
                {
                    type         = "set_littleweeb_settings_error",
                    errortype    = "Exception",
                    errormessage = "Failed to set littleweeb settings.",
                    exception    = e.ToString()
                };

                await WebSocketHandler.SendMessage(error.ToJson());
            }
        }
 private void SetAllLittleWeebSettings(LittleWeebSettings settings)
 {
     DebugHandler.TraceMessage("SetAllLittleWeebSettings Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
     DebugHandler.TraceMessage(settings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);
     IrcClientHandlerSettings.SetLittleWeebSettings(settings);
     FileHandlerSettings.SetLittleWeebSettings(settings);
     DownloadHandlerSettings.SetLittleWeebSettings(settings);
     DirectoryWebSocketServiceSettings.SetLittleWeebSettings(settings);
     IrcWebSocketServiceSettings.SetLittleWeebSettings(settings);
 }
        public async Task GetCurrentLittleWeebSettings()
        {
            DebugHandler.TraceMessage("GetCurrentLittleWeebSettings Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            LittleWeebSettings = SettingsHandler.GetLittleWeebSettings();

            JsonLittleWeebSettings settings = new JsonLittleWeebSettings()
            {
                port  = LittleWeebSettings.Port,
                local = LittleWeebSettings.Local,
                randomusernamelength = LittleWeebSettings.RandomUsernameLength,
                debuglevel           = LittleWeebSettings.DebugLevel,
                debugtype            = LittleWeebSettings.DebugType,
                maxdebuglogsize      = LittleWeebSettings.MaxDebugLogSize
            };
            await WebSocketHandler.SendMessage(settings.ToJson());
        }
Пример #8
0
        public IrcWebSocketService(IWebSocketHandler webSocketHandler, IIrcClientHandler ircClientHandler, ISettingsHandler settingsHandler, IDebugHandler debugHandler)
        {
            debugHandler.TraceMessage("IrcWebSocketService Constructor called.", DebugSource.CONSTRUCTOR, DebugType.ENTRY_EXIT);

            SendMessageToWebSocketClient = false;
            IsIrcConnected   = false;
            SettingsHandler  = settingsHandler;
            IrcClientHandler = ircClientHandler;
            WebSocketHandler = webSocketHandler;
            DebugHandler     = debugHandler;

            LittleWeebSettings = SettingsHandler.GetLittleWeebSettings();
            IrcSettings        = SettingsHandler.GetIrcSettings();

            IrcClientHandler.OnIrcClientMessageEvent          += OnIrcClientMessageEvent;
            IrcClientHandler.OnIrcClientConnectionStatusEvent += OnIrcClientConnectionStatusEvent;
        }
Пример #9
0
        public IrcClientHandler(ISettingsHandler settingsHandler, IDebugHandler debugHandler)
        {
            debugHandler.TraceMessage("Constructor Called.", DebugSource.CONSTRUCTOR, DebugType.ENTRY_EXIT);

            SettingsHandler = settingsHandler;
            DebugHandler    = debugHandler;

            IrcSettings        = SettingsHandler.GetIrcSettings();
            LittleWeebSettings = SettingsHandler.GetLittleWeebSettings();

            IrcClient = new SimpleIRC();
            IrcClient.SetCustomDownloadDir(IrcSettings.fullfilepath);
            IrcClient.IrcClient.OnUserListReceived += OnUserListUpdate;
            IrcClient.IrcClient.OnMessageReceived  += OnMessage;
            IrcClient.IrcClient.OnDebugMessage     += OnMessageDebug;
            IrcClient.DccClient.OnDccEvent         += OnDownloadUpdate;
            IrcClient.DccClient.OnDccDebugMessage  += OnDownloadUpdateDebug;
        }
Пример #10
0
        public void WriteLittleWeebSettings(LittleWeebSettings littleWeebSettings)
        {
            DebugHandler.TraceMessage("WriteLittleWeebSettings Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);
            DebugHandler.TraceMessage(littleWeebSettings.ToString(), DebugSource.TASK, DebugType.PARAMETERS);


            try
            {
                string settingsName = "LittleWeebSettings.json";
                string settingsJson = JsonConvert.SerializeObject(littleWeebSettings);
                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);
            }
        }
Пример #11
0
 public WebSocketHandler(ISettingsHandler settingsHandler, IDebugHandler debugHandler)
 {
     debugHandler.TraceMessage("Constructor Called", DebugSource.CONSTRUCTOR, DebugType.ENTRY_EXIT);
     LittleWeebSettings = settingsHandler.GetLittleWeebSettings();
     DebugHandler       = debugHandler;
 }
Пример #12
0
 public void SetSettings(ISettingsHandler settingsHandler)
 {
     LittleWeebSettings = settingsHandler.GetLittleWeebSettings();
     SettingsHandler    = settingsHandler;
 }