public AddonConfigurator(ILogger logger, AddonConfig addonConfig) { this.logger = logger; this.addonConfig = addonConfig; this.wowProcess = new WowProcess(); }
public void Setup(string ServerName, bool LoadConfig = false) { _servername = ServerName; sCalendarCommand = new CalendarCommand(ServerName); sBirthdayCommand = new BirthdayCommand(ServerName); sBanCommand = new BanCommand(ServerName); sBan = new Ban(ServerName); if (IRCConfig.List[ServerName].ServerId == 1 || LoadConfig) { _config = new AddonConfig(Name, ".yml"); } _calendar = new Calendar(ServerName); _calendar.Start(); sIrcBase.Networks[ServerName].IrcRegisterHandler("PRIVMSG", HandlePrivmsg); InitIrcCommand(); SchumixBase.DManager.Update("banned", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); SchumixBase.DManager.Update("birthday", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); SchumixBase.DManager.Update("calendar", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); if (CleanConfig.Database) { SchumixBase.sCleanManager.CDatabase.CleanTable("banned"); SchumixBase.sCleanManager.CDatabase.CleanTable("birthday"); SchumixBase.sCleanManager.CDatabase.CleanTable("calendar"); } }
public int Reload(string RName, bool LoadConfig, string SName = "") { try { switch (RName.ToLower()) { case "config": if (IRCConfig.List[_servername].ServerId == 1 || LoadConfig) { _config = new AddonConfig(Name, ".yml"); } return(1); case "command": InitIrcCommand(); RemoveIrcCommand(); return(1); } } catch (Exception e) { Log.Error("WordPressRssAddon", sLConsole.GetString("Reload: ") + sLConsole.GetString("Failure details: {0}"), e.Message); return(0); } return(-1); }
public async Task RefreshConfig(AddonConfig config, Action onComplete) { if (config == null || config.Items.Count == 0) { return; } int itemCount = config.Items.Count; Task[] fetches = new Task[itemCount]; for (int i = 0; i < itemCount; i++) { var index = i; var item = config.Items[index]; fetches[index] = new TaskFactory().StartNew(() => { var deets = GetAddonDetails(item.Url, true).Result; config.Items[index].SiteVersion = deets.SiteVersion; config.Items[index].Url = deets.Url; onComplete(); }); } await Task.WhenAll(fetches); }
/// <summary> /// 初期値の設定 /// </summary> private void Initialize() { // デフォルト値の設定 this.Url = GetDefaultUrl(); this.AddonConfig = new AddonConfig(); this.AddonConfig.SecBeforeDeath = 5; this.AddonConfig.MaxCount = 10; this.AddonConfig.IsExpanded = false; this.AddonConfig.ClearOnStart = true; }
public void Destroy() { RemoveIrcCommand(); _config = null; foreach (var list in sRssCommand.RssList) { list.Stop(); } sRssCommand.RssList.Clear(); }
private void btnAdd_Click(object sender, RoutedEventArgs e) { var config = ConfigManager.GetConfig(); if (config == null) { config = new AddonConfig(); } config.Items.Add(newItem); ConfigManager.SetConfig(config); Close(); }
/// <summary> /// 初期値の設定 /// </summary> private void Initialize() { Url = GetDefaultUrl(); AddonConfig = new AddonConfig(); AddonConfig.CheckedItems = new HashSet <int>(); // とりあえず全チェック foreach (var item in Items.List) { AddonConfig.CheckedItems.Add(item.GetHashCode()); } }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { var logger = new SerilogLoggerProvider(Log.Logger).CreateLogger(nameof(Program)); services.AddSingleton(logger); var wowProcess = new WowProcess(); var wowScreen = new WowScreen(logger, wowProcess); wowScreen.GetRectangle(out var rect); var addonConfig = AddonConfig.Load(); var addonConfigurator = new AddonConfigurator(logger, addonConfig); if (!addonConfig.IsDefault() && !addonConfigurator.Installed()) { // At this point the webpage never loads so fallback to configuration page AddonConfig.Delete(); DataFrameConfiguration.RemoveConfiguration(); } if (DataFrameConfiguration.Exists() && !DataFrameConfiguration.IsValid(rect, addonConfigurator.GetInstalledVersion())) { // At this point the webpage never loads so fallback to configuration page DataFrameConfiguration.RemoveConfiguration(); } if (AddonConfig.Exists() && DataFrameConfiguration.Exists()) { var dataConfig = DataConfig.Load(); var pather = GetPather(logger, dataConfig); var botController = new BotController(logger, pather, dataConfig, Configuration); services.AddSingleton <IBotController>(botController); services.AddSingleton <IGrindSessionHandler>(botController.GrindSessionHandler); services.AddSingleton <IGrindSession>(botController.GrindSession); services.AddSingleton <IAddonReader>(botController.AddonReader); services.AddMatBlazor(); } else { services.AddSingleton <IBotController>(new ConfigBotController()); services.AddSingleton <IAddonReader>(new ConfigAddonReader()); } services.AddRazorPages(); services.AddServerSideBlazor(); services.AddBlazorTable(); }
public void Setup(string ServerName, bool LoadConfig = false) { _servername = ServerName; sRssCommand = new RssCommand(ServerName); sLocalization.Locale = sLConsole.Locale; if (IRCConfig.List[ServerName].ServerId == 1 || LoadConfig) { _config = new AddonConfig(Name, ".yml"); } InitIrcCommand(); SchumixBase.DManager.Update("gitinfo", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); if (CleanConfig.Database) { SchumixBase.sCleanManager.CDatabase.CleanTable("gitinfo"); } var db = SchumixBase.DManager.Query("SELECT Name, Type, Link, Website FROM gitinfo WHERE ServerName = '{0}'", ServerName); if (!db.IsNull()) { foreach (DataRow row in db.Rows) { string name = row["Name"].ToString(); string type = row["Type"].ToString(); string link = row["Link"].ToString(); string website = row["Website"].ToString(); var rss = new GitRss(ServerName, name, type, link, website); sRssCommand.RssList.Add(rss); } int x = 0; foreach (var list in sRssCommand.RssList) { list.Start(); x++; } Log.Notice("GitRssAddon", sLConsole.GetString("{0}: {1} rss loaded."), ServerName, x); } else { Log.Warning("GitRssAddon", sLConsole.GetString("{0}: Empty database!"), ServerName); } }
public void Setup(string ServerName, bool LoadConfig = false) { _servername = ServerName; sSCompiler = new SCompiler(ServerName); if (IRCConfig.List[ServerName].ServerId == 1 || LoadConfig) { _config = new AddonConfig(Name, ".yml"); } sIrcBase.Networks[ServerName].IrcRegisterHandler("PRIVMSG", HandlePrivmsg); sSCompiler.EntryRegex = new Regex(@"class\s+" + CompilerConfig.MainClass + @"\s*{"); sSCompiler.EntryAndAbstractRegex = new Regex(@"class\s+" + CompilerConfig.MainClass + @"\s*:\s*Schumix.Compiler.Abstract\s*{"); sSCompiler.SchumixRegex = new Regex(@"public\s+void\s+" + CompilerConfig.MainConstructor + @"\s*\(\s*\)\s*{"); sSCompiler.SchumixAndOverrideRegex = new Regex(@"public\s+override\s+void\s+" + CompilerConfig.MainConstructor + @"\s*\(\s*\)\s*{"); }
public void Setup(string ServerName, bool LoadConfig = false) { _servername = ServerName; sRssCommand = new RssCommand(ServerName); sLocalization.Locale = sLConsole.Locale; if(IRCConfig.List[ServerName].ServerId == 1 || LoadConfig) _config = new AddonConfig(Name, ".yml"); InitIrcCommand(); SchumixBase.DManager.Update("rssinfo", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); if(CleanConfig.Database) SchumixBase.sCleanManager.CDatabase.CleanTable("rssinfo"); var db = SchumixBase.DManager.Query("SELECT Name, Link, Website FROM rssinfo WHERE ServerName = '{0}'", ServerName); if(!db.IsNull()) { foreach(DataRow row in db.Rows) { string name = row["Name"].ToString(); string link = row["Link"].ToString(); string website = row["Website"].ToString(); var rss = new Rss(ServerName, name, link, website); sRssCommand.RssList.Add(rss); } int x = 0; foreach(var list in sRssCommand.RssList) { list.Start(); x++; } Log.Notice("RssAddon", sLConsole.GetString("{0}: {1} rss loaded."), ServerName, x); } else Log.Warning("RssAddon", sLConsole.GetString("{0}: Empty database!"), ServerName); }
protected Addon(AddonConfig config) { m_config = (config == null ? new AddonConfig() : m_config); }
public void Setup(string ServerName, bool LoadConfig = false) { _servername = ServerName; if (CleanConfig.Database) { Log.Debug("ExtraAddon", sLConsole.GetString("The deleting of messages that older than 30 days have been started.")); var db = SchumixBase.DManager.Query("SELECT Id, UnixTime FROM message WHERE ServerName = '{0}'", ServerName); if (!db.IsNull()) { foreach (DataRow row in db.Rows) { int time = row["UnixTime"].ToInt32(); if ((DateTime.Now - sUtilities.GetDateTimeFromUnixTime(time)).TotalDays > 30) { SchumixBase.DManager.Delete("message", string.Format("Id = '{0}'", row["Id"].ToString())); } } } Log.Debug("ExtraAddon", sLConsole.GetString("Message deletion has been ended.")); } SchumixBase.DManager.Update("hlmessage", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); SchumixBase.DManager.Update("kicklist", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); SchumixBase.DManager.Update("modelist", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); SchumixBase.DManager.Update("message", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); SchumixBase.DManager.Update("notes", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); SchumixBase.DManager.Update("notes_users", string.Format("ServerName = '{0}'", ServerName), string.Format("ServerId = '{0}'", IRCConfig.List[ServerName].ServerId)); if (CleanConfig.Database) { SchumixBase.sCleanManager.CDatabase.CleanTable("hlmessage"); SchumixBase.sCleanManager.CDatabase.CleanTable("kicklist"); SchumixBase.sCleanManager.CDatabase.CleanTable("modelist"); SchumixBase.sCleanManager.CDatabase.CleanTable("message"); SchumixBase.sCleanManager.CDatabase.CleanTable("notes"); SchumixBase.sCleanManager.CDatabase.CleanTable("notes_users"); } // Online sFunctions = new Functions(ServerName); sFunctions._timeronline.Interval = 10 * 60 * 1000; sFunctions._timeronline.Elapsed += sFunctions.HandleIsOnline; sFunctions._timeronline.Enabled = true; sFunctions._timeronline.Start(); sIrcHandler = new IrcHandler(ServerName, sFunctions); sNotes = new Notes(ServerName, sIrcHandler.sNameList); sFunctions.IsOnline = false; sIrcHandler.sNameList.RandomAllVhost(); if (IRCConfig.List[_servername].ServerId == 1 || LoadConfig) { _config = new AddonConfig(Name, ".yml"); } sIrcBase.Networks[ServerName].IrcRegisterHandler("PRIVMSG", HandlePrivmsg); sIrcBase.Networks[ServerName].IrcRegisterHandler("NOTICE", HandleNotice); sIrcBase.Networks[ServerName].IrcRegisterHandler("JOIN", sIrcHandler.HandleJoin); sIrcBase.Networks[ServerName].IrcRegisterHandler("PART", sIrcHandler.HandleLeft); sIrcBase.Networks[ServerName].IrcRegisterHandler("KICK", sIrcHandler.HandleKick); sIrcBase.Networks[ServerName].IrcRegisterHandler("QUIT", sIrcHandler.HandleQuit); sIrcBase.Networks[ServerName].IrcRegisterHandler("NICK", sIrcHandler.HandleNewNick); sIrcBase.Networks[ServerName].IrcRegisterHandler(ReplyCode.RPL_NAMREPLY, sIrcHandler.HandleNameList); sIrcBase.Networks[ServerName].IrcRegisterHandler(ReplyCode.RPL_ENDOFNAMES, sIrcHandler.HandleEndNameList); sIrcBase.Networks[ServerName].IrcRegisterHandler(ReplyCode.RPL_WELCOME, sIrcHandler.HandleSuccessfulAuth); InitIrcCommand(); }
public int Reload(string RName, bool LoadConfig, string SName = "") { try { switch(RName.ToLower()) { case "config": if(IRCConfig.List[_servername].ServerId == 1 || LoadConfig) _config = new AddonConfig(Name, ".yml"); return 1; case "command": InitIrcCommand(); RemoveIrcCommand(); return 1; } } catch(Exception e) { Log.Error("RssAddon", sLConsole.GetString("Reload: ") + sLConsole.GetString("Failure details: {0}"), e.Message); return 0; } return -1; }
public void LoadConfigFile() { PluginConfiguration pc = PluginConfiguration.CreateForType<BackgroundProcessing>(); if (pc == null) { return; } pc.load(); config = new AddonConfig(pc); pc.save(); }
public void Destroy() { RemoveIrcCommand(); _config = null; foreach(var list in sRssCommand.RssList) list.Stop(); sRssCommand.RssList.Clear(); }
public void Delete() { DeleteAddon(); AddonConfig.Delete(); }