public AddonConfigurator(ILogger logger, AddonConfig addonConfig)
        {
            this.logger      = logger;
            this.addonConfig = addonConfig;

            this.wowProcess = new WowProcess();
        }
Example #2
0
        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");
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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;
        }
Example #6
0
        public void Destroy()
        {
            RemoveIrcCommand();
            _config = null;

            foreach (var list in sRssCommand.RssList)
            {
                list.Stop();
            }

            sRssCommand.RssList.Clear();
        }
Example #7
0
        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();
        }
Example #10
0
        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);
            }
        }
Example #11
0
        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*{");
        }
Example #12
0
		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);
		}
Example #13
0
 protected Addon(AddonConfig config)
 {
     m_config = (config == null ? new AddonConfig() : m_config);
 }
Example #14
0
        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();
        }
Example #15
0
		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;
		}
Example #16
0
        public void LoadConfigFile()
        {
            PluginConfiguration pc = PluginConfiguration.CreateForType<BackgroundProcessing>();
            if (pc == null) { return; }

            pc.load();
            config = new AddonConfig(pc);
            pc.save();
        }
Example #17
0
		public void Destroy()
		{
			RemoveIrcCommand();
			_config = null;

			foreach(var list in sRssCommand.RssList)
				list.Stop();

			sRssCommand.RssList.Clear();
		}
 public void Delete()
 {
     DeleteAddon();
     AddonConfig.Delete();
 }