public EventTabellenParser(ILogger <EventTabellenParser> logger, IEventParser eventParser, RegExContainer regExContainer) { _logger = logger; _eventParser = eventParser; _regExContainer = regExContainer; _titleRegex = new Regex(@"\w{3,} für (.*) \w{3,}", RegexOptions.Singleline); }
public GameLogReaderHttp(Uri[] gameLogServerUris, IEventParser parser, ILogger logger) { _eventParser = parser; _logServerApi = RestClient.For <IGameLogServer>(gameLogServerUris[0].ToString()); _safeLogPath = gameLogServerUris[1].LocalPath.ToBase64UrlSafeString(); _logger = logger; }
public MixerConstellation(ILoggerFactory loggerFactory, IMixerFactory factory, IEventParser parser, CancellationToken shutdown) { _loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); _factory = factory ?? throw new ArgumentNullException(nameof(factory)); _logger = loggerFactory.CreateLogger(nameof(MixerConstellation)); _shutdown = shutdown; _parser = parser ?? throw new ArgumentNullException(nameof(parser)); }
/// <summary> /// Construct a new JsonRpcWebSocket object /// </summary> public JsonRpcWebSocket(ILogger logger, IMixerFactory factory, IEventParser parser) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _factory = factory ?? throw new ArgumentNullException(nameof(factory)); _parser = parser ?? throw new ArgumentNullException(nameof(parser)); _readBuffer = new byte[READ_BUFFER_SIZE]; ReplyTimeout = TimeSpan.FromSeconds(10); }
public async Task Initialize(IManager mgr) { bool firstRun = ScriptEngine == null; // it's been loaded before so we need to call the unload event if (!firstRun) { await OnUnloadAsync(); } Manager = mgr; string script; using (var stream = new FileStream(FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (var reader = new StreamReader(stream, Encoding.Default)) { script = await reader.ReadToEndAsync(); } } ScriptEngine = new Jint.Engine(cfg => cfg.AllowClr(new[] { typeof(System.Net.Http.HttpClient).Assembly, typeof(EFClient).Assembly, }) .CatchClrExceptions()); ScriptEngine.Execute(script); ScriptEngine.SetValue("_localization", Utilities.CurrentLocalization); dynamic pluginObject = ScriptEngine.GetValue("plugin").ToObject(); this.Author = pluginObject.author; this.Name = pluginObject.name; this.Version = (float)pluginObject.version; try { if (pluginObject.isParser) { await OnLoadAsync(mgr); IEventParser eventParser = (IEventParser)ScriptEngine.GetValue("eventParser").ToObject(); IRConParser rconParser = (IRConParser)ScriptEngine.GetValue("rconParser").ToObject(); Manager.AdditionalEventParsers.Add(eventParser); Manager.AdditionalRConParsers.Add(rconParser); } } catch { } if (!firstRun) { await OnLoadAsync(mgr); } }
public static ImmutableHashSet <EventLevel> GetSupportedLevels(IEventParser <TEvents> listener) { if (SupportedLevels == null) { SupportedLevels = EventParserTypes.GetLevelsFromParser(listener.GetType()); } return(SupportedLevels); }
public MixerChat(ILoggerFactory loggerFactory, IMixerFactory factory, IMixerRestClient client, IEventParser parser, CancellationToken shutdown) { _loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); _factory = factory ?? throw new ArgumentNullException(nameof(factory)); _restClient = client ?? throw new ArgumentNullException(nameof(client)); _logger = loggerFactory.CreateLogger(nameof(MixerChat)); _parser = parser ?? throw new ArgumentNullException(nameof(parser)); _shutdown = shutdown; }
public IGameLogReader CreateGameLogReader(Uri[] logUris, IEventParser eventParser) { var baseUri = logUris[0]; if (baseUri.Scheme == Uri.UriSchemeHttp) { return(new GameLogReaderHttp(logUris, eventParser, _serviceProvider.GetRequiredService <ILogger <GameLogReaderHttp> >())); } else if (baseUri.Scheme == Uri.UriSchemeFile) { return(new GameLogReader(baseUri.LocalPath, eventParser, _serviceProvider.GetRequiredService <ILogger <GameLogReader> >())); } throw new NotImplementedException($"No log reader implemented for Uri scheme \"{baseUri.Scheme}\""); }
public XmlDocumentCapturer(IValidator <XDocument> validator, IEventParser <XElement> xmlEventParser, IEventStore eventStore) { if (validator == null) { throw new ArgumentNullException("validator"); } if (xmlEventParser == null) { throw new ArgumentNullException("xmlEventParser"); } if (eventStore == null) { throw new ArgumentNullException("eventStore"); } _validator = validator; _xmlEventParser = xmlEventParser; _eventStore = eventStore; }
public AnalysisMode(IAttackCollection attackCollection, IArmCollection armCollection, IFastDrawCollection fastDrawCollection, ISpellCollection spellCollection, ISummonCollection summonCollection, IEnemyCollection enemyCollection, IItemCollection itemCollection, IAreaCollection areaCollection, IRandomizerAgent agent, IEventParser eventParser) { AttackCollection = attackCollection; ArmCollection = armCollection; FastDrawCollection = fastDrawCollection; SpellCollection = spellCollection; SummonCollection = summonCollection; EnemyCollection = enemyCollection; ItemCollection = itemCollection; AreaCollection = areaCollection; Agent = agent; EventParser = eventParser; }
public void AddEventParser(IEventParser parser) { eventParsers.Add(parser); }
public IJsonRpcWebSocket CreateJsonRpcWebSocket(ILogger logger, IEventParser parser) => new JsonRpcWebSocket(logger, this, _config, parser);
public IMixerChat CreateChat(IMixerRestClient client, IEventParser parser, CancellationToken shutdownRequest) => new MixerChat(_config, _loggerFactory, this, client, parser, shutdownRequest);
public IMixerConstellation CreateConstellation(IEventParser parser, CancellationToken shutdownRequest) => new MixerConstellation(_config, _loggerFactory, this, parser, shutdownRequest);
public void AddEventParser(IEventParser parser) { }
public GameLogReader(string logFile, IEventParser parser, ILogger logger) { _logFile = logFile; _parser = parser; _logger = logger; }
public GameLogReader(string logFile, IEventParser parser) { LogFile = logFile; Parser = parser; }
public GameLogReaderHttp(Uri gameLogServerUri, string logPath, IEventParser parser) { this.logPath = logPath.ToBase64UrlSafeString();; Parser = parser; Api = RestClient.For <IGameLogServer>(gameLogServerUri); }
public async Task Initialize(IManager manager, IScriptCommandFactory scriptCommandFactory, IScriptPluginServiceResolver serviceResolver) { await _onProcessing.WaitAsync(); try { // for some reason we get an event trigger when the file is not finished being modified. // this must have been a change in .NET CORE 3.x // so if the new file is empty we can't process it yet if (new FileInfo(_fileName).Length == 0L) { return; } bool firstRun = _scriptEngine == null; // it's been loaded before so we need to call the unload event if (!firstRun) { await OnUnloadAsync(); foreach (string commandName in _registeredCommandNames) { manager.GetLogger(0).WriteDebug($"Removing plugin registered command \"{commandName}\""); manager.RemoveCommandByName(commandName); } _registeredCommandNames.Clear(); } successfullyLoaded = false; string script; using (var stream = new FileStream(_fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (var reader = new StreamReader(stream, Encoding.Default)) { script = await reader.ReadToEndAsync(); } } _scriptEngine = new Engine(cfg => cfg.AllowClr(new[] { typeof(System.Net.Http.HttpClient).Assembly, typeof(EFClient).Assembly, typeof(Utilities).Assembly, typeof(Encoding).Assembly }) .CatchClrExceptions()); _scriptEngine.Execute(script); _scriptEngine.SetValue("_localization", Utilities.CurrentLocalization); _scriptEngine.SetValue("_serviceResolver", serviceResolver); dynamic pluginObject = _scriptEngine.GetValue("plugin").ToObject(); Author = pluginObject.author; Name = pluginObject.name; Version = (float)pluginObject.version; var commands = _scriptEngine.GetValue("commands"); if (commands != JsValue.Undefined) { try { foreach (var command in GenerateScriptCommands(commands, scriptCommandFactory)) { manager.GetLogger(0).WriteDebug($"Adding plugin registered command \"{command.Name}\""); manager.AddAdditionalCommand(command); _registeredCommandNames.Add(command.Name); } } catch (RuntimeBinderException e) { throw new PluginException($"Not all required fields were found: {e.Message}") { PluginFile = _fileName }; } } await OnLoadAsync(manager); try { if (pluginObject.isParser) { IsParser = true; IEventParser eventParser = (IEventParser)_scriptEngine.GetValue("eventParser").ToObject(); IRConParser rconParser = (IRConParser)_scriptEngine.GetValue("rconParser").ToObject(); manager.AdditionalEventParsers.Add(eventParser); manager.AdditionalRConParsers.Add(rconParser); } } catch (RuntimeBinderException) { } if (!firstRun) { await OnLoadAsync(manager); } successfullyLoaded = true; } catch (JavaScriptException ex) { throw new PluginException($"An error occured while initializing script plugin: {ex.Error} (Line: {ex.Location.Start.Line}, Character: {ex.Location.Start.Column})") { PluginFile = _fileName }; } catch { throw; } finally { if (_onProcessing.CurrentCount == 0) { _onProcessing.Release(1); } } }