示例#1
0
        //create 3 buttons which redirect to some sites
        public override async void Execute(Message message, TelegramBotClient client)
        {
            var chatId = message.Chat.Id;

            try
            {
                var inlineKeybord = new InlineKeyboardMarkup(new[]
                {
                    new[]
                    {
                        InlineKeyboardButton.WithUrl("Розклад", "http://desk.nuwm.edu.ua/cgi-bin/timetable.cgi")
                    },
                    new[]
                    {
                        InlineKeyboardButton.WithUrl("Moodle", "https://exam.nuwm.edu.ua/")
                    },
                    new[]
                    {
                        InlineKeyboardButton.WithUrl("Кросс-плат програмування", "https://iktmedia.moodlecloud.com/")
                    }
                });
                string msg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\"";
                File.AppendAllText("Message.log", $"{msg}\n");
                await client.SendTextMessageAsync(chatId, "Ресурси по воднику:\n", replyMarkup : inlineKeybord);
            }
            catch (Exception e)
            {
                string errmsg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\", error - '{e.Message}' path - '{e.StackTrace}'";
                File.AppendAllText("Error.log", $"{errmsg}\n");
                await client.SendTextMessageAsync(chatId, $"Enter Command properly '{this.Example}'");
            }
        }
        private void BotClient_OnMessage(object sender, MessageEventArgs e)
        {
            var chatId = e.Message.Chat.Id;

            if (e.Message.Text == "/start")
            {
                botClient.SendTextMessageAsync(e.Message.Chat, $"נרשמת בהצלחה לבוט!");
                botClient.SendTextMessageAsync(e.Message.Chat, $"אם ברצונך לבטל את הרישום שלח /stop");

                if (!chatIds.Contains(chatId))
                {
                    _logger.LogInformation($"Added new chat {e.Message.Chat.FirstName} {e.Message.Chat.LastName}");
                    chatIds.Add(chatId);
                    File.AppendAllText(CHATS_FILE_NAME, chatId + Environment.NewLine);
                }
            }
            else if (e.Message.Text == "/stop")
            {
                botClient.SendTextMessageAsync(e.Message.Chat, "בוטל רישומך לעדכונים מהבוט");

                if (chatIds.Contains(chatId))
                {
                    _logger.LogInformation($"Remove chat with {e.Message.Chat.FirstName} {e.Message.Chat.LastName}");
                    chatIds.Remove(chatId);
                    File.WriteAllLines(CHATS_FILE_NAME, chatIds.Select(c => c.ToString()));
                }
            }
        }
示例#3
0
        // Get all exist commands pattern
        public override async void Execute(Message message, TelegramBotClient client)
        {
            var chatId = message.Chat.Id;

            try
            {
                string answer = null;
                for (int i = 0; i < Bot.Commands.Count; i++)
                {
                    if (Bot.Commands[i].Info != null)
                    {
                        answer += $"{Bot.Commands[i].Example} - {Bot.Commands[i].Info}\n";
                    }
                    else
                    {
                        answer += $"{Bot.Commands[i].Example}\n";
                    }
                }
                if (Args.Length > 0)
                {
                    throw new Exception("Args is out");
                }
                string msg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\"";
                File.AppendAllText("Message.log", $"{msg}\n");
                await client.SendTextMessageAsync(chatId, $"There are all existing commands\n{answer}");
            }
            catch (Exception e)
            {
                string errmsg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\", error - '{e.Message}' path - '{e.StackTrace}'";
                File.AppendAllText("Error.log", $"{errmsg}\n");
                await client.SendTextMessageAsync(chatId, $"Enter Command properly '{this.Example}'");
            }
        }
示例#4
0
        public static void WriteReport(string filename, string data)
        {
            string absoluteFilename = GetAbsoluteFileName(filename);

            Directory.CreateDirectory(Path.GetDirectoryName(absoluteFilename));
            File.AppendAllText(absoluteFilename, data);
        }
示例#5
0
        public void BeginInstall()
        {
            var canvas = (Canvas)Parent;
            var grid   = (Grid)canvas.Parent;
            var window = (Window)grid.Parent;

            try {
                ProcessStartInfo psi = new();
                psi.FileName       = "cmd.exe";
                psi.Arguments      = $"/c \"Binaries\\7z\\7za.exe x -o\"{InstallPath}\\App\" Binaries\\Install\\package.7z -y && copy Uninstall.exe \"{InstallPath}\\Uninstall.exe\"\"";
                psi.CreateNoWindow = true;
                psi.WindowStyle    = ProcessWindowStyle.Hidden;

                Process p = new();
                p.EnableRaisingEvents = true;
                p.Exited   += new EventHandler(FinalizeAndLaunch);
                p.StartInfo = psi;
                p.Start();
            } catch (Exception ex) {
                canvas.Children.Clear();
                canvas.Children.Add(MainWindow.ucerror);
                ((MainWindow)window).next.Visibility = Visibility.Hidden;
                ((MainWindow)window).back.Visibility = Visibility.Hidden;

                File.AppendAllText("error.log", $"Error Date: {DateTime.UtcNow.ToLocalTime()}\nError: {ex.Message}\nStack Trace: {ex.StackTrace}\nInner Exception: {ex.InnerException}\n\n");
            }
        }
示例#6
0
 public IEnumerable <string> AppendFile(string path, string text)
 {
     try {
         if (!SysFile.Exists(path))
         {
             return(new List <string>());
         }
         SysFile.AppendAllText(path, text);
         return(new List <string>());
     }
     catch (Exception) {
         return(new List <string>());
     }
 }
示例#7
0
        public override void RunCommand(object sender)
        {
            var engine = (IAutomationEngineInstance)sender;
            //convert variables
            var filePath   = v_FilePath.ConvertUserVariableToString(engine);
            var outputText = v_TextToWrite.ConvertUserVariableToString(engine).Replace("[crLF]", Environment.NewLine);

            //append or overwrite as necessary
            if (v_Overwrite == "Append")
            {
                OBFile.AppendAllText(filePath, outputText);
            }
            else
            {
                OBFile.WriteAllText(filePath, outputText);
            }
        }
        public async override Task RunCommand(object sender)
        {
            var engine = (IAutomationEngineInstance)sender;
            //convert variables
            var filePath = (string)await v_FilePath.EvaluateCode(engine);

            var outputText = (string)await v_TextToWrite.EvaluateCode(engine);

            //append or overwrite as necessary
            if (v_Overwrite == "Append")
            {
                OBFile.AppendAllText(filePath, outputText);
            }
            else
            {
                OBFile.WriteAllText(filePath, outputText);
            }
        }
示例#9
0
        static void LogError(object o)
        {
            if (
                //(o is ApiRequestException apiex && apiex.Message == "Request timed out") ||
                !(o is Exception e))
            {
                return;
            }

            var msg     = "";
            var counter = 0;

            do
            {
                var indents = new String('>', counter++);
                msg += indents + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - " + e.GetType().ToString() + " " + e.Source +
                       Environment.NewLine + indents + e.Message +
                       Environment.NewLine + indents + e.StackTrace +
                       Environment.NewLine + Environment.NewLine;
                e = e.InnerException;
            } while (e != null);

            //send to renyhp
            foreach (var text in ChunksUpto(msg, 4000))
            {
                try
                {
                    Bot.SendTextMessageAsync(Settings.renyhp, text);
                }
                catch
                {
                    // ignored
                }
            }

            //log
            msg += Environment.NewLine +
                   "------------------------------------------------------------------------------------" +
                   Environment.NewLine + Environment.NewLine;
            File.AppendAllText(Settings.LogPath, msg);

            return;
        }
示例#10
0
        // Send a reply message which contain Hello!
        public override async void Execute(Message message, TelegramBotClient client)
        {
            var chatId    = message.Chat.Id;
            var messageId = message.MessageId;

            try
            {
                if (Args.Length > 0)
                {
                    throw new Exception("Args is out");
                }
                string msg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\"";
                File.AppendAllText("Message.log", $"{msg}\n");
                await client.SendTextMessageAsync(chatId, "Hello!", replyToMessageId : messageId);
            }
            catch (Exception e)
            {
                string errmsg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\", error - '{e.Message}' path - '{e.StackTrace}'";
                File.AppendAllText("Error.log", $"{errmsg}\n");
                await client.SendTextMessageAsync(chatId, $"Enter Command properly '{this.Example}'");
            }
        }
示例#11
0
        public static void Log(string logMessage)
        {
            try
            {
                lock (logMessage)
                {
                    var message = !logMessage.StartsWith(new string('-', 80))
                        ? $"{DateTime.Now:dd.MM.yyyy HH:mm:ss} {logMessage}\r\n"
                        : $"{logMessage}\r\n";

                    File.AppendAllText(FilePath, message);
                    ControlLog?.Dispatcher.Invoke(() =>
                    {
                        ((RichTextBox)ControlLog).AppendText(message);
                    });
                }
            }
            catch (Exception ex)
            {
                ErrorLog(ex);
            }
        }
示例#12
0
        static void ProgramMonitor()
        {
            var version = Program.BotVersion + " @" + Me.Username + Environment.NewLine + "GNU LilyPond " + Program.LilyVersion + Environment.NewLine;

            while (true)
            {
                if (UpdateMonitor)
                {
                    //update the monitor
                    Monitor = "Start time: " + StartTime.ToString("dd/MM/yyyy HH:mm:ss") + " UTC" + Environment.NewLine +
                              "Last message received: " + LatestMessageTime.ToString("dd/MM/yyyy HH:mm:ss") + " UTC" + Environment.NewLine +
                              "Messages received: " + MessagesReceived.ToString() + Environment.NewLine +
                              "Commands processed: " + CommandsProcessed.ToString() + Environment.NewLine +
                              "Successful compilations: " + SuccesfulCompilations.ToString();
                    Console.SetCursorPosition(0, 0);
                    Console.Clear();
                    Console.WriteLine(version + Environment.NewLine + Monitor);

                    //daily log
                    if (PreviousMessageTime.CompareTo(DateTime.UtcNow.Date.AddHours(Settings.DailyLogUtcHour)) < 0 && LatestMessageTime.Hour >= Settings.DailyLogUtcHour)
                    {
                        File.AppendAllText(
                            Settings.LogPath, DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss") + " DAILY LOG ----- " +
                            Environment.NewLine + Monitor + Environment.NewLine + "-----" + Environment.NewLine + Environment.NewLine
                            );
                        //reset
                        MessagesReceived      = 0;
                        CommandsProcessed     = 0;
                        SuccesfulCompilations = 0;
                    }

                    PreviousMessageTime = LatestMessageTime;
                    UpdateMonitor       = false;
                }
                //wait before redoing this
                Task.Delay(60000).Wait();
            }
        }
示例#13
0
        private void Button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == null || textBox1.Text == "")
            {
                File.WriteAllText(vars.settingsName, "120000");
            }
            else
            {
                if (comboBox1.Text == "Minutes")
                {
                    int timetowait = Convert.ToInt32(textBox1.Text) * 60000;
                    File.WriteAllText(vars.settingsName, timetowait.ToString());
                }
                else if (comboBox1.Text == "Seconds")
                {
                    int timetowait = Convert.ToInt32(textBox1.Text) * 1000;
                    File.WriteAllText(vars.settingsName, timetowait.ToString());
                }
            }

            File.AppendAllText(vars.settingsName, Environment.NewLine + "false");

            if (checkBox2.Checked)
            {
                File.AppendAllText(vars.settingsName, Environment.NewLine + vars.Level.SELE.ToString());
            }
            else
            {
                File.AppendAllText(vars.settingsName, Environment.NewLine + vars.Level.RAND.ToString());
            }
            savesettings();

            Directory.CreateDirectory(vars.imagesDir);
            Directory.CreateDirectory(vars.urlDir);

            Close();
        }
示例#14
0
 public static void LogException(Exception ex)
 {
     File.AppendAllText(ExceptionsLogPath, $"{ex}{Environment.NewLine}");
 }
示例#15
0
 public static void LogException(Exception ex, string prefix = "")
 {
     File.AppendAllText(ExceptionsLogPath, $"{prefix}{ex}{Environment.NewLine}");
 }
示例#16
0
 /// <summary>
 ///     Tries to save the string representation of an object (ToString)
 ///     to a given text-file.
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="fileName"></param>
 public static void ToTextFile(this object obj, string fileName)
 {
     File.AppendAllText(fileName, obj.ToString());
 }
 public void Run(Document doc)
 {
     LogTrace("Run called with {0}", doc.DisplayName);
     File.AppendAllText("output.txt", "Document name: " + doc.DisplayName);
 }
示例#18
0
        /// <summary>
        /// if use /presence [subject] create list with buttons
        /// or use /presence create text with results
        /// </summary>
        public override async void Execute(Message message, TelegramBotClient client)
        {
            var inlineKeybord = new InlineKeyboardMarkup(new[]
            {
                new[]
                {
                    InlineKeyboardButton.WithCallbackData("Присутній", "Присутній"),
                    InlineKeyboardButton.WithCallbackData("Н/Б", "Н/Б")
                }
            });
            var chatId = message.Chat.Id;

            if (group.Presence != null & group.Presence.Count != 11 & group.Presence.Count < 11)
            {
                group.Presence.Clear();

                try
                {
                    if (Args.Length > 2)
                    {
                        throw new Exception("Args out");
                    }
                    subject = Args[0];
                    await client.SendTextMessageAsync(chatId, $"{Args[0]}\n");

                    foreach (var classmate in group.Group)
                    {
                        await client.SendTextMessageAsync(chatId, $"{classmate}", replyMarkup : inlineKeybord);
                    }
                    string msg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\"";
                    File.AppendAllText("Message.log", $"{msg}\n");
                }
                catch (Exception e)
                {
                    string errmsg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\", error - '{e.Message}' path - '{e.StackTrace}'";
                    File.AppendAllText("Error.log", $"{errmsg}\n");
                    await client.SendTextMessageAsync(chatId, $"Enter Command properly '{this.Example}'");
                }
            }
            else
            {
                string s = null;
                s += $"{subject} - {DateTime.Now.ToShortDateString()}\n";
                for (int i = 0; i < group.Presence.Count; i++)
                {
                    s += $"{group.Group[i]} - {group.Presence[i]}\n";
                }
                try
                {
                    if (Args.Length > 2)
                    {
                        throw new Exception("Args out");
                    }
                    else if (group.Presence.Count < 11)
                    {
                        new Exception("Fill all column");
                    }
                    string msg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\"";
                    File.AppendAllText("Message.log", $"{msg}\n");
                    await client.SendTextMessageAsync(chatId, s);
                }
                catch (Exception e)
                {
                    string errmsg = $"{DateTime.Now}: initials - '{message.Chat.FirstName} {message.Chat.LastName} @{message.Chat.Username}', chatId - '{message.Chat.Id}', message - \"{message.Text}\", error - '{e.Message}' path - '{e.StackTrace}'";
                    File.AppendAllText("Error.log", $"{errmsg}\n");
                    await client.SendTextMessageAsync(chatId, $"Something going wrong");
                }
            }
        }