public RocksmithService() { rocksmithDir = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "rocksmith")); Config = JsonCommon.Load <RocksmithConfig>(Path.Combine(rocksmithDir.FullName, "rocksmith.json")); Queue = new RocksmithQueue(rocksmithDir.FullName, Config.UserLimit); }
public StreamingService(BotService bot, RocksmithService rocksmith) { // Бот Bot = bot; Rocksmith = rocksmith; // Настройки приложения JObject settings = JsonCommon.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.json")); contentProviders = new List <ContentProvider>(); Broadcast = new Broadcast(); JToken streamingConfigs = settings["streaming"]; if (!streamingConfigs.IsNullOrEmpty()) { if (!streamingConfigs["twitch"].IsNullOrEmpty()) { Twitch = new TwitchConnector(Bot, JsonConvert.DeserializeObject <TwitchConnectorConfig>(streamingConfigs["twitch"].ToString())); } if (!streamingConfigs["youtube"].IsNullOrEmpty()) { Youtube = new YoutubeConnector(Bot, JsonConvert.DeserializeObject <YoutubeConnectorConfig>(streamingConfigs["youtube"].ToString())); } } InitProviders((JObject)settings["providers"]); InitWidgetsSchemes(settings["scheme"].ToString()); InitBroadcastHandlers(); }
public void Init(string fileName) { JObject data = JsonCommon.Load(fileName); Config = fileName; ConfigData = data; ProcessID = -1; ProgramID = ConfigData["id"].ToString(); Module = ConfigData["module"].ToString(); LastStatus = GetLastStatus(); Version = new Version(ConfigData["version"]?.ToString() ?? "0.0.0"); }
private void InitWidgetsSchemes(string current) { WidgetsSchemes = new List <WidgetsScheme>(); string fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "widgets"); string[] files = Directory.GetFiles(fileName, "*.json"); foreach (string file in files) { WidgetsSchemes.Add(JsonCommon.Load <WidgetsScheme>(file)); } WidgetsScheme = WidgetsSchemes.FirstOrDefault(s => s.Name == current); }
private ETLUpdateRecord AddUpdateRecord(string file) { string extension = Path.GetExtension(file).Replace(".", string.Empty); string fileName = Path.GetFileName(file); // На программу подразумевается одна конфигурация и один модуль ETLProcess prc = pumps.FirstOrDefault(p => extension.IsMatch("json") ? p.Config == fileName : p.Module == fileName); // В реестре закачка отсутствует, есть только программный модуль if (prc == null && extension.IsMatch("dll")) { return(null); } ETLUpdateRecord rec = null; switch (extension) { case "json": JObject data = JsonCommon.Load(file); string programID = prc == null ? data["id"].ToString() : prc.ProgramID; rec = new ETLUpdateRecord { Config = fileName, Module = data["module"].ToString(), ProgramID = programID }; Updates[programID] = rec; break; case "dll": // Если записи нет, то добавляем, иначе нужный модуль уже должен быть прописан в обновление if (!Updates.ContainsKey(prc.ProgramID)) { rec = new ETLUpdateRecord { ProgramID = prc.ProgramID, Module = fileName }; Updates.Add(prc.ProgramID, rec); } break; } return(rec); }
/// <summary> /// args[0] - id закачки; /// args[1] - тип конфигурации: -h - история, -s - строка -f - файл /// args[2] - конфигурация: в зависимости от args[1] это строка конфигурации или имя файла /// </summary> static void Main(string[] args) { try { context = new ETLContext(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config", "ETLSettings.json")); context.Initialize(); context.DB.Connect(); decimal sessNo = Convert.ToDecimal(args[0]); historyRecord = context.History[sessNo]; JObject config = null; switch (args[1]) { case "-f": config = JsonCommon.Load(Path.Combine(context.Settings.Registry.ProgramsPath, args[2])); break; case "-h": config = (JObject)JsonConvert.DeserializeObject(historyRecord.config); break; case "-s": config = (JObject)JsonConvert.DeserializeObject(args[2]); break; } if (config == null) { return; } // Инициализация Init(sessNo, config["id"].ToString(), config["module"].ToString()); // Выполнение Exec(sessNo, config); } catch (Exception ex) { Logger.WriteToTrace($"Критическая ошибка загрузки закачки: {ex}", TraceMessageKind.CriticalError); } finally { program?.Dispose(); Logger.CloseLogFile(); } }
private void Init() { // Загрузка текстовых команд commandList = new List <string>(); JObject settings = JsonCommon.Load(Path.Combine(botDir.FullName, "bot.json")); if (!settings.IsNullOrEmpty()) { LogMessages = Convert.ToBoolean(settings["logMessages"]); commandList = JsonConvert.DeserializeObject <List <string> >(settings["commands"].ToString()); SoundTimeout = Convert.ToInt32(settings["soundTimeout"].ToString()); } // Загрузка звуковых команд soundCommandList = JsonCommon.Load <Dictionary <string, string> >(Path.Combine(botDir.FullName, "sound.json")); }
public void CachePlaylists() { localPlaylists = new List <LocalPlaylist>(); playlists = new List <PlaylistInfo>(); FileInfo[] files = new DirectoryInfo(playlistsDir).GetFiles("*.json"); if (files.Length == 0) { return; } int id = 0; foreach (FileInfo file in files) { LocalPlaylist playlist = JsonCommon.Load <LocalPlaylist>(file.FullName); playlist.ID = $"{id}"; int trackId = 0; foreach (LocalTrack track in playlist.Tracks) { track.ID = $"{id}:{trackId++}"; } localPlaylists.Add(playlist); id++; } localPlaylists.ForEach(p => { playlists.Add(new PlaylistInfo { Type = ProviderType.Local, ID = p.ID, Title = p.Title, Cover = $"api/content/playlistCover?id={p.ID}" }); }); }
/// <summary> /// Инициализация списка закачек /// </summary> private void InitPumpsList() { Logger.WriteToTrace("Формирование списка закачек."); Pumps = new List <ETLProcess>(); string[] pumpConfigs = Directory.GetFiles(Context.Settings.Registry.ProgramsPath); List <string> ids = new List <string>(); foreach (string pumpConfig in pumpConfigs) { try { string fileName = Path.GetFileName(pumpConfig); JObject data = JsonCommon.Load(pumpConfig); string id = data["id"].ToString(); // Если уже существует закачка с таким ID if (ids.Contains(id)) { Logger.WriteToTrace($"Закачка с ID = \"{id}\" (\"{fileName}\") уже существует.", TraceMessageKind.Warning); continue; } // Процесс инициализируется данными конфигурации ETLProcess prc = new ETLProcess(pumpConfig, Context.History); // Сохраняется конфиг закачки с описанием Pumps.Add(prc); ids.Add(id); } catch (Exception ex) { Logger.WriteToTrace($"Ошибка при формировании реестра закачек: {ex}.", TraceMessageKind.Error); } } }