private static void Main(string[] args) { Console.WriteLine("XenfbotDN (C) XAYRGA 2020"); // Param check if (args.Length > 0) { var ptg = "xenfbot@preboot"; Console.WriteLine("parameter check....."); } Localization.init(); /// Load Config File Helpers.writeOut(tag, "Initializing configuration."); Config.init("config.ini"); /// Load telegram API Telegram.SetAPIKey(Config.getValue("TGAPIKey")); { var tries = 0; var me = Telegram.getMe(); // Synchronous call for result. while (me == null) { tries++; Thread.Sleep(1200); Helpers.warn("Failed. Trying again"); me = Telegram.getMe(); if (tries > 3) { Helpers.warn("Invalid telegram API key or cannot connect to tgapi."); Environment.Exit(-1); } } botUsername = me.username; // set bot username botName = me.first_name; // set bot name Console.WriteLine($"Hello, I'm {botName} under the handle {botUsername}"); } /// Load SQL var initValue = SQL.Init(Config.getValue("MySQLHost"), Config.getValue("MySQLUser"), Config.getValue("MySQLPassword"), Config.getValue("MySQLDatabase")); Console.WriteLine(Config.getValue("MySQLHost"), Config.getValue("MySQLUser"), Config.getValue("MySQLPassword"), Config.getValue("MySQLDatabase")); Helpers.writeOut(tag, "Testing MySQL Interface"); { var ok = SQL.Query("SHOW FUNCTION STATUS"); var tries = 0; while (ok == null) { tries++; ok = SQL.Query("SHOW FUNCTION STATUS"); if (tries > 3) { Helpers.warn("Cannot connect to MySQL server."); Console.WriteLine(SQL.getLastError()); Environment.Exit(-1); } Thread.Sleep(1200); } } Console.WriteLine("OK!"); /// Setup Lua State LuaState = new Lua(); LuaState.LoadCLRPackage(); // Initialize CLR for lua state File.Setup(LuaState); LuaString.Setup(LuaState); LuaState.DoString("dofile('xen/preinit.lua')"); LuaState.DoString("import('XenfbotDN','XenfbotDN')"); // Import xenfbot namespace LuaState.DoString("print(Telegram)"); LuaState.DoString("print(GroupConfiguration)"); LuaState.DoString("dofile('xen/init.lua')"); //LuaState.DoString("dofile('xen/hooktest.lua')"); callHook = (LuaFunction)LuaState["modhook.Call"]; botRoot.Enter(); }
static void Main(string[] args) { Console.WriteLine("XenfbotDN (C) XAYRGA 2020"); if (args.Length > 0) { var ptg = "xenfbot@preboot"; Console.WriteLine("parameter check....."); if (args[0] == "-mklang") { Helpers.writeOut(ptg, "localizaton mode"); Helpers.writeOut(ptg, "Initialize localization engine."); Localization.init(); Helpers.writeOut(ptg, "Developer/mklanguage.cs"); Developer.mklanguage.start(); return; // close } else if (args[0] == "-importql") { Helpers.writeOut(ptg, "localizaton mode"); Helpers.writeOut(ptg, "Initialize localization engine."); Localization.init(); Helpers.writeOut(ptg, "Developer/importql.cs"); Developer.importql.start(); return; // close } } Helpers.writeOut(tag, "Initializing configuration."); // Test Load configuration. Config.init("config.ini"); // Load languages Helpers.writeOut(tag, "Starting localization engine"); Localization.init(); // Test Telegram API Helpers.writeOut(tag, "Initializing Telegram API"); Telegram.SetAPIKey(Config.getValue("TGAPIKey")); { var tries = 0; var me = Telegram.getMe().Result; // Synchronous call for result. while (me == null) { tries++; Thread.Sleep(1200); Helpers.warn("Failed. Trying again"); me = Telegram.getMe().Result; if (tries > 3) { Helpers.warn("Invalid telegram API key or cannot connect to tgapi."); Environment.Exit(-1); } } botUsername = me.username; botName = me.first_name; } var initValue = SQL.Init(Config.getValue("MySQLHost"), Config.getValue("MySQLUser"), Config.getValue("MySQLPassword"), Config.getValue("MySQLDatabase")); Console.WriteLine(Config.getValue("MySQLHost"), Config.getValue("MySQLUser"), Config.getValue("MySQLPassword"), Config.getValue("MySQLDatabase")); Helpers.writeOut(tag, "Testing MySQL Interface"); { var ok = SQL.Query("SELECT * FROM xenf_activations LIMIT 1"); var tries = 0; while (ok == null) { tries++; Thread.Sleep(1200); ok = SQL.Query("SELECT * FROM xenf_activations LIMIT 1"); if (tries > 3) { Helpers.warn("Cannot connect to MySQL server."); Console.WriteLine(SQL.getLastError()); Environment.Exit(-1); } } } Helpers.writeOut(tag, "Loading commands..."); CommandSystem.loadCommands(); Helpers.writeOut(tag, "Successfully initialized interfaces."); while (true) { processUpdates(); Thread.Sleep(1000); } }