Ejemplo n.º 1
0
        /// <summary>
        /// Sets up bot instance
        /// </summary>
        public void Setup()
        {
            // Set logging level
            LogLevels logLevel;

            Enum.TryParse <LogLevels>(CoreSettings.Get("LogLevel", "Production"), out logLevel);
            Log.Level = logLevel;

            // Load instance
            Bot      = new Instance(CoreSettings.Get("Name", defaultName));
            userName = NetworkSettings.Get("Username");
            password = NetworkSettings.Get("Password");
            World    = NetworkSettings.Get("World");
            Owner    = userName;

            // Connect to network
            ConnectToUniverse();
            Log.Info("Network", "Connected to universe");

            // Set up subsystems
            SetupDatabase();
            SetupWeb();
            SetupCommands();
            SetupEvents();
            LoadServices();

            // Set up services
            ConnectToWorld();
            PerformMigrations();
            InitServices();
            Log.Info("Network", "Connected to {0}", World);

            CoreSettings.Set("Version", MigrationVersion);
            Bot.ConsoleBroadcast(ChatEffect.None, ColorInfo, "", "Services is now online; say !help for information");
        }
Ejemplo n.º 2
0
        private void PeriodicLikeDecrease()
        {
            Random r = new Random();

            while (true) //TODO use cancelation token
            {
                try
                {
                    //see if it is time to make a decrease
                    DateTime lastDecrease = CoreSettings.Get("LastLikeDecreaseIteration") == null?DateTime.MinValue:DateTime.Parse(CoreSettings.Get("ListLikeDecreaseIteration"));
                    Logger.Instance.Debug($"Lase decrease was at {lastDecrease}");
                    var span = DateTime.Now - lastDecrease;
                    Logger.Instance.Debug($"Time spent from last like decrease iteration is {span.TotalDays} days");
                    if (span.TotalDays < 100 && span.TotalDays > 1)
                    {
                        //need to do decrease
                        CoreSettings.Set("LastLikeDecreaseIteration", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), true);
                        //Logger.Instance.Debug($"doing like decrease iteration");
                        //var count  = SourceAffinities.DecreasAllLikes();
                        //Logger.Instance.Debug($"Decreased likes in {count} records");
                        Logger.Instance.Debug($"date is db set now to {CoreSettings.Get("LastLikeDecreaseIteration")} and now it is {DateTime.Now}");
                    }
                }
                catch (System.Exception e)
                {
                    Logger.Instance.Error($"Preriodic like decrease error ! {e.ToString()}");
                }

                int sleepTime = r.Next(1000, 2000); //random number of secconds
                Thread.Sleep(sleepTime * 1000);
            }
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            if (args.Contains("q"))
            {
                NonInteractive = true;
            }

            if (args.Contains("d"))
            {
                Development = true;
            }

            Server = new SocketServer(Development ? 8766 : 8765);

            var env = ConfigurationManager.AppSettings["env"];

            Console.WriteLine("Starting server {0}", env);
            Server.Request += Server_Request;
            Server.Run();
            //also start listening to http clients
            StartWeb();
            try
            {
                CoreSettings.Set("ListLikeDecreaseIteration", DateTime.Now.ToString("yyyy - MM - dd HH: mm:ss")); //that's just to make sure we dont decrease the likes
                AffinityManager.Instance.Start();
            }
            catch (Exception e)
            {
                Logger.Instance.Error(e.ToString());
            }
            if (NonInteractive)
            {
                Thread.Sleep(Timeout.Infinite);
            }
            else
            {
                do
                {
                    Console.WriteLine("Press q to stop listening.");
                } while (Console.ReadKey().KeyChar != 'q');
            }

            Server.Request -= Server_Request;
            Server.Dispose();
        }
Ejemplo n.º 4
0
        public void TestMethod6()
        {
            // Remove test setting before test start
            CoreSettings.Clear("zumzumzum");

            // Get test setting, expect null because it doesn't exist
            var rc = CoreSettings.Get("zumzumzum");

            Assert.IsNull(rc);

            // Get test setting with default value, expect that value
            rc = CoreSettings.Get("zumzumzum", "888");
            Assert.AreEqual(rc, "888");

            // Set test setting to value "777" without allowing add new,
            // Expect 0 affected rows
            var affectedRows = CoreSettings.Set("zumzumzum", "777");

            Assert.AreEqual(affectedRows, 0);

            // Get the test setting, expect null because we didn't actually add it
            rc = CoreSettings.Get("zumzumzum");
            Assert.IsNull(rc);

            // Set the test setting, this time allow adding a new record
            // Expect affected rows to be 1 (new row added)
            affectedRows = CoreSettings.Set("zumzumzum", "777", true);
            Assert.AreEqual(affectedRows, 1);

            // Get the test setting, expect value "777" because we did add the row
            rc = CoreSettings.Get("zumzumzum");
            Assert.AreEqual(rc, "777");

            // Remove the test setting, expect affected rows to be 1 because we know
            // it exists
            affectedRows = CoreSettings.Clear("zumzumzum");
            Assert.AreEqual(affectedRows, 1);
        }