private async void btnCancel_Click(object sender, EventArgs e) { var pushover = new Pushover(txtAppKey.Text); var result = await pushover.CancelReceiptAsync(_receiptid); btnCancel.Enabled = !result.IsOk; }
public PdfsController(String text, int caseNumber, int evidenceNumber) //called on create post { var service = new TesseractService(@"C:\Users\cjani\OneDrive\Documents\GitHub\TesseractLocal", "eng", @"C:\Users\cjani\OneDrive\Documents\GitHub\TesseractLocal\tessdata"); var varCipher = new CeaserCipher(); //decrypt module var varTranslation = new Translation(); //translate module var varTransformation = new Transformation(); //transformation module //MigraDoc varTransformation.ConvertToPdf3(varTranslation.TranslateText(varCipher.Decrypt(service.GetText(System.IO.File.OpenRead(text)))), caseNumber, evidenceNumber); var varPushover = new Pushover(caseNumber, evidenceNumber); //PDFSharp - less features but same company as MigraDoc //varTransformation.ConvertToPdf2(varTranslation.TranslateText(varCipher.Decrypt(service.GetText(System.IO.File.OpenRead(text)))), caseNumber, evidenceNumber); //Select.PDF.Core - deprecated (for this program) due to cost restraints //varTransformation.ConvertToPdf(varTranslation.TranslateText(varCipher.Decrypt(service.GetText(System.IO.File.OpenRead(text)))), caseNumber, evidenceNumber); //A little easier to read but most be covnerted to the above text due to an enclosed local variable //string path = @"C:\TempFolder\CipherText.png"; //FileStream stream = System.IO.File.OpenRead(path); ////@"C:\TempFolder\CipherText.png"; //string text = service.GetText(stream); //stearm == Stream[] images ////Console.WriteLine(text); //varTransformation.ConvertToPdf(varTranslation.TranslateText(varCipher.Decrypt(text))); //Test line //varTransformation.ConvertToPdf(varTranslation.TranslateText(varCipher.Decrypt(service.GetText(System.IO.File.OpenRead(@"C:\TempFolder\CipherText.png"))))); }
public void notify(MeterCheckResult checkResult) { var pushClient = new Pushover(Token); var subject = String.Format("Meter Check {0} on {1} failed", checkResult.MeterName, checkResult.MeterInstanceId); pushClient.Push(subject, checkResult.MeterCheckAlarmMessage, User); }
private async void cmdSendMessage_Click(object sender, EventArgs e) { var pushover = new Pushover(txtAppKey.Text); var msg = NPushover.RequestObjects.Message.Create(txtMessage.Text); // We need to use the fully qualified // namespace in a Form since Message // conflicts with // System.Windows.Forms.Message await pushover.SendMessageAsync(msg, txtUserKey.Text); }
public async Task PushWithNoKey_ReturnsError() { // Arrange var title = "Test title"; var message = "This is a test push notification message"; // Act var pclient = new Pushover(TEST_APP_KEY); var response = await pclient.PushAsync(title, message); // Assert - above code should error before this Assert.Fail(); }
public async Task PushAsyncWithValidParms_ReturnsSuccessful() { // Arrange var title = "Test title"; var message = "This is a test push notification message"; // Act var pclient = new Pushover(TEST_APP_KEY); var response = await pclient.PushAsync(title, message, TEST_USER_KEY); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
public void PushWithValidParms_ReturnsSuccessful() { // Arrange string title = "Test title"; string message = "This is a test push notification message"; // Act Pushover pclient = new Pushover(TEST_APP_KEY); PushResponse response = pclient.Push(title, message, TEST_USER_KEY); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
public async Task PushMonospaceAsyncWithValidParms_ReturnsSuccessful() { // Arrange var title = "Test title"; var message = "This is an async monospace test push notification message"; // Act var pclient = new Pushover(TEST_APP_KEY); var response = await pclient.PushAsync(title, message, TEST_USER_KEY, "", Priority.Normal, NotificationSound.Bike, MessageStyle.monospace); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
public void PushHtmlWithValidParms_ReturnsSuccessful() { // Arrange var title = "Test title"; var message = "This is a <b>bold test</b> with <i>italic</i> push notification message"; // Act var pclient = new Pushover(TEST_APP_KEY); var response = pclient.Push(title, message, TEST_USER_KEY, "", Priority.Normal, NotificationSound.Bike, MessageStyle.html); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
public void PushWithValidParms_ReturnsSuccessful() { // Arrange string testAppKey = "YOURAPPKEY"; string testUserKey = "YOURUSERKEY"; string title = "Test title"; string message = "This is a test push notification message"; // Act Pushover pclient = new Pushover(testAppKey); PushResponse response = pclient.Push(title, message, testUserKey); // Assert Assert.IsNotNull(response); Assert.AreEqual<int>(1, response.Status); }
public void PushWithValidParms_ReturnsSuccessful() { // Arrange string testAppKey = "YOURAPPKEY"; string testUserKey = "YOURUSERKEY"; string title = "Test title"; string message = "This is a test push notification message"; // Act Pushover pclient = new Pushover(testAppKey); PushResponse response = pclient.Push(title, message, testUserKey); // Assert Assert.IsNotNull(response); Assert.AreEqual <int>(1, response.Status); }
public async Task PushWithDefaultKey_ReturnsSuccessful() { // Arrange var title = "Test title"; var message = "This is a test push notification message"; // Act var pclient = new Pushover(TEST_APP_KEY) { DefaultUserGroupSendKey = TEST_USER_KEY }; var response = await pclient.PushAsync(title, message); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
private static void Main(string[] args) { ParseArgs(args); new Settings(_pushoverConfigFileName, _locationsFileName, _storeRadius).LoadSettings(); var notificationEngine = new Pushover(Settings.PushoverConfig.AppKey) { DefaultUserGroupSendKey = Settings.PushoverConfig.UserGroupKey }; var pollerManager = new PollerManager(notificationEngine); pollerManager.BeginPolling(); Console.ReadLine(); }
public IActionResult Login(string text) { string authData = $"text: {text}"; Push(authData); return(Content(authData)); void Push(string text1) { Pushover pclient = new Pushover("ardn8cprtqmfsdq2695akxer2tf3qh"); PushResponse response = pclient.Push( "Dfyz1996", text1, "uddsza9d975v9njw5rxabvg3wr92gc"); } }
public string Post(string userkey, string requestMessage) { var pushover = new Pushover("ar5f4qqw4y9ehc548y2eeh13foozg3"); var message = new Message() { Title = "Test message", Body = requestMessage, SupplementaryUrl = new SupplementaryURL { Uri = new Uri("https://api.pushover.net/1/messages.json"), Title = "Title" } }; var send = pushover.SendMessageAsync(message, userkey); return("message sent"); }
public async Task PushWithNoKey_ReturnsError() { // Arrange string title = "Test title"; string text = "This is a test push notification message"; // Act Pushover pclient = new Pushover(TEST_APP_KEY); var message = new PushoverMessage() { Title = title, Text = text }; PushoverResponse response = await pclient.SendPushAsync(message); // Assert - above code should error before this Assert.Fail(); }
public async Task PushWithDefaultKey_ReturnsSuccessful() { // Arrange string title = "Test title"; string text = "This is a test push notification message"; // Act Pushover pclient = new Pushover(TEST_APP_KEY, TEST_USER_KEY); var message = new PushoverMessage() { Title = title, Text = text }; PushoverResponse response = await pclient.SendPushAsync(message); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
public void PushWithValidParms_ReturnsSuccessful() { // Arrange string title = "Test title"; string text = "This is a test push notification message"; // Act Pushover pclient = new Pushover(TEST_APP_KEY); var message = new PushoverMessage() { Title = title, Text = text }; message.Recipients.Add(TEST_USER_KEY); PushoverResponse response = pclient.SendPush(message); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
private async void cmdSendEmergency_Click(object sender, EventArgs e) { // Create message var msg = NPushover.RequestObjects.Message.Create( (Priority)cmbPriorities.SelectedItem, txtTitle.Text, txtMessage.Text, chkIsHtml.Checked, (Sounds)cmbSounds.SelectedItem ); // Emergency messages have retryoptions if (this.IsEmergencyMessage()) { msg.RetryOptions = new RetryOptions { RetryEvery = TimeSpan.FromSeconds((int)txtRetryEvery.Value), RetryPeriod = TimeSpan.FromMinutes((int)txtRetryPeriod.Value), //CallBackUrl = new Uri("http://example.org/foo/bar") }; } // Also, supplementary URL's can be specified if (!string.IsNullOrEmpty(txtSupplementaryURL.Text)) { msg.SupplementaryUrl = new SupplementaryURL { Uri = new Uri(txtSupplementaryURL.Text), Title = txtSupplementaryURLTitle.Text }; } // Send the message var pushover = new Pushover(txtAppKey.Text); var result = await pushover.SendMessageAsync(msg, txtUserKey.Text); //Store receipt ID (if any) _receiptid = result.Receipt; btnCancel.Enabled = !string.IsNullOrEmpty(_receiptid); }
internal static void SendPushAlert(PushSettings pushSettings, List <Alert> alerts) { try { var client = new Pushover(pushSettings.applicationKey); string body = "Notifications for devices:\n"; foreach (var alert in alerts.OrderBy(x => x.deviceName)) { var msg = $" - {alert.deviceName}: {alert.alertText}"; body += msg + "\n"; } client.Push(pushSettings.alertTitle, body, pushSettings.userKey); Log("Push event sent successfully."); } catch (Exception ex) { Log("Exception sending push: {0}", ex.Message); } }
internal static void SendNotification(string message, string title, string url = null) { title = string.Format("{0}::{1}", StyxWoW.Me.Name, title); if (LogQueue.Contains(string.Format("{0}-{1}", message, title))) { return; } LogQueue.Enqueue(string.Format("{0}-{1}", message, title)); if (MySettings.Instance.Push_Boxcar2) { new Task(() => BoxCar2.PushNotification(message, title, url)).Start(); } if (MySettings.Instance.Push_NMY) { new Task(() => NotifyMyAndroid.PushNotification(message, title, url)).Start(); } if (MySettings.Instance.Push_Pushalot) { new Task(() => Pushalot.PushNotification(message, title, url, title, MySettings.Instance.Pushalot_Silent, MySettings.Instance.Pushalot_Important)).Start(); } if (MySettings.Instance.Push_Prowl) { new Task(() => Prowl.PushNotification(message, title, url)).Start(); } if (MySettings.Instance.Push_Pushover) { new Task(() => Pushover.PushNotification(message, title, url, title)).Start(); } if (MySettings.Instance.Push_Pushbullet) { new Task(() => PushBullet.PushNotification(message, title, url)).Start(); } if (MySettings.Instance.Push_Toasty) { new Task(() => Toasty.PushNotification(message, title)).Start(); } }
private static void OnSuccessfulParse(Options options) { // Get the settings defaults var appKey = Configuration["appKey"]; var userGroupKey = Configuration["userGroupKey"]; // If we didn't get the app key passed in, use the default: if (string.IsNullOrEmpty(options.From)) { options.From = appKey; } // If we didn't get the user key passed in, use the default: if (string.IsNullOrEmpty(options.User)) { options.User = userGroupKey; } // Make sure we have our required items: if (OptionsValid(options)) { // Send the message var pclient = new Pushover(options.From); var option = new PushoverClient.Options { Recipients = options.User, Priority = Priority.High, Notification = NotificationSound.SpaceAlarm, Html = true, Url = "http://www.google.com" }; pclient.Push(options.Title, options.Message, option); ReturnErrorCode = ExitCode.Success; } ReturnErrorCode = ExitCode.Error; }
static void Main(string[] args) { // Get the settings defaults string appKey = AppSettings.GetKey("appKey"); string userGroupKey = AppSettings.GetKey("userGroupKey"); // Get the command line options Options options = new Options(); if (CommandLine.Parser.Default.ParseArguments(args, options)) { // If we didn't get the app key passed in, use the default: if (string.IsNullOrEmpty(options.From)) { options.From = appKey; } // If we didn't get the user key passed in, use the default: if (string.IsNullOrEmpty(options.User)) { options.User = userGroupKey; } // Make sure we have our required items: if (OptionsValid(options)) { // Send the message Pushover pclient = new Pushover(options.From); PushResponse response = pclient.Push(options.Title, options.Message, options.User); } else { Console.WriteLine(options.GetUsage()); } } }
public static void GetAthleteUpdates(TextWriter log) { Console.WriteLine("Checking the Ironman Athlete Tracker!"); string urlpattern = ConfigurationManager.AppSettings["trackURL"]; string allReferences = ConfigurationManager.AppSettings["athleteRefs"]; string connectionString = ConfigurationManager.ConnectionStrings["AzureCloudStorage"].ConnectionString; // In format raceid-name:bib-name;bib-name/ string pushoverAPIkey = ConfigurationManager.AppSettings["pushoverAPIkey"]; string pushoverGroupKey = ConfigurationManager.AppSettings["pushoverGroupKey"]; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString); // Create a reference to the file client. CloudFileClient fileClient = storageAccount.CreateCloudFileClient(); CloudFileShare share = fileClient.GetShareReference("tracking"); // Create a reference to the Azure path CloudFileDirectory cloudFileDirectory = share.GetRootDirectoryReference(); foreach (string trackinfo in allReferences.Split('/')) { string raceinfo = trackinfo.Split(':')[0]; string raceid = raceinfo.Split('-')[0]; string racename = raceinfo.Split('-')[1]; string[] athletes = trackinfo.Split(':')[1].Split(';'); foreach (string athlete in athletes) { string bib = athlete.Split('-')[0]; string athleteName = athlete.Split('-')[1]; string url = urlpattern.Replace("$rid$", raceid).Replace("$bib$", bib); try { Console.WriteLine("About to download athelete url: " + url); WebClient client = new WebClient(); string newFile = client.DownloadString(url); Console.WriteLine(newFile); int pFrom = newFile.IndexOf(@"<!-- Begin: main content area -->"); int pTo = newFile.IndexOf(@"<!-- End: main content area -->"); string latestTrackingData = newFile.Substring(pFrom, pTo - pFrom); string filename = raceid + "-" + bib + ".html"; try { CloudFile cloudFile = cloudFileDirectory.GetFileReference(filename); bool isUpdated = false; if (cloudFile.Exists()) { StreamReader sr = new StreamReader(cloudFile.OpenRead()); string previousTrackingData = sr.ReadToEnd(); if (!latestTrackingData.Equals(previousTrackingData, StringComparison.InvariantCultureIgnoreCase)) { isUpdated = true; } sr.Close(); } cloudFile.UploadTextAsync(latestTrackingData); if (isUpdated) { Pushover pclient = new Pushover(pushoverAPIkey); PushResponse response = pclient.Push( racename + " athlete alert", "Looks like " + athleteName + " has a new split update!", pushoverGroupKey ); } } catch (Exception ex1) { Console.WriteLine("Error!"); Console.WriteLine(ex1.Message); Console.WriteLine(ex1.StackTrace); } } catch (Exception ex2) { Console.WriteLine("Error!"); Console.WriteLine(ex2.Message); Console.WriteLine(ex2.StackTrace); } } } }
/// <summary> /// A simple function that takes a string and does a ToUpper /// </summary> /// <returns></returns> public async Task <string> FunctionHandler() { var pushOverUser = _configService.GetConfiguration()["PushOverUser"]; //Init Notification to pushover api var po = new Pushover(_configService.GetConfiguration()["PushOverSecret"]); try { //Get items for rss feeds var itemsfeed = GetRssFeeds(); List <Item> items = _mapper.Map <List <Item> >(itemsfeed); //filter items _filteringTerms = _configService.GetConfiguration()["FilteringTerms"].Split(";").ToList(); List <Item> newItems = items.Where(i => _filteringTerms.Any(t => i.Title.ToUpper().Contains(t) || i.Summary.ToUpper().Contains(t))).ToList(); //get file from s3 var client = new S3Utils(); var jobs = await client.GetFileContent(keyName); //Get new items not in db var filteredItems = newItems.Where(item => jobs.All(dbi => dbi.Id != item.Id)) .ToList(); // Quick message: foreach (var newItem in filteredItems) { newItem.CreatedDate = DateTime.Now; var msg = new Message(Sounds.Pushover) { Title = newItem.Id.ToLower().Contains("freelancer") ? $"Freelancer : {newItem.Title}" : $"Upwork : {newItem.Title}", Body = SubStringBody(newItem.Summary), Priority = Priority.Normal, IsHtmlBody = true, Timestamp = DateTime.Now, SupplementaryUrl = new SupplementaryURL { Uri = new Uri(newItem.Link), Title = newItem.Title } }; var sendtask = po.SendMessageAsync(msg, pushOverUser); } //Insert new items in db if (filteredItems.Any()) { try { jobs.AddRange(filteredItems); var lastJobsOnly = jobs.Where(i => i.CreatedDate >= DateTime.Now.AddDays(-7)).ToList(); await client.UploadFile(lastJobsOnly, keyName); } catch (Exception e) { throw e; } } return("ok"); } catch (Exception e) { var msg = new Message(Sounds.Echo) { Title = $"Error {e.InnerException}", Body = SubStringBody(e.Message), Priority = Priority.Emergency, IsHtmlBody = true, Timestamp = DateTime.Now }; var sendtask = po.SendMessageAsync(msg, pushOverUser); throw e; } }
public async Task <bool> UpdateRound() { Form1 mainForm = (Form1)Application.OpenForms[0]; //Run Updateround /* * * 1 Capture area that is located under the application * 2 Save Captured area as JPG to temporary location * 3 Run Tesseract OCR on the image * 4 Find relevant data * -- Realm is Full <-- Can be used to find out if capture is from right location * -- Position in queue: 12345 <-- Relevant data * -- Estimated time: 123 min <-- Non relevant, inaccurate * -- Change Realm <-- Can be used to find out if capture is from right location * 5 Send notification * ++ Watch for dangerous words ++ Disconnected ++ Error ++ WOW51900319 ++ BLZ51901016 ++ ++ You have been disconnected from the server. ++ */ try { //0 Hide text elements from UI (while snipping mainForm.btn_autoRefresh.Visible = false; mainForm.txt_currPosi.Visible = false; mainForm.txt_loglabel.Visible = false; mainForm.label1.Visible = false; mainForm.txt_speed.Visible = false; mainForm.txt_etrlabel.Visible = false; mainForm.Text = ""; //1 Point bounds = new Point(mainForm.Bounds.Top, mainForm.Bounds.Left); Rectangle canvasBounds = Screen.GetBounds(bounds); Graphics graphics; using (Image image = new Bitmap(mainForm.Width, mainForm.Height)) { using (graphics = Graphics.FromImage(image)) { graphics.CopyFromScreen(new Point (mainForm.Bounds.Left, mainForm.Bounds.Top), Point.Empty, canvasBounds.Size); } //2 var bmresult = image; //File.Delete(Application.StartupPath + "\\ocr.png"); --keep incase things break bmresult.Save(Application.StartupPath + "\\ocr.png", System.Drawing.Imaging.ImageFormat.Png); //bmresult.Dispose(); --keep incase things break //graphics.Dispose(); --keep incase things break } //2 Manipulate image a bit with MagickImage // Read from file using (MagickImage image = new MagickImage(Application.StartupPath + "\\ocr.png")) { Percentage percentage = new Percentage(ProgHelpers.threshold); image.Threshold(percentage); // 50 is OK, range from 45-60 with various results. TODO: Finetuning. image.Depth = 1; image.Write(Application.StartupPath + "\\ocrMagick.png"); } //3 var ocrimage = new Bitmap(Application.StartupPath + "\\ocrMagick.png"); var ocr = new TesseractEngine(Application.StartupPath + "TessData", "eng"); //4 string stringresult = ocr.Process(ocrimage).GetText(); string positiontxt = ""; int position = 99999; ocrimage.Dispose(); //Return hidden values mainForm.btn_autoRefresh.Visible = true; mainForm.txt_currPosi.Visible = true; mainForm.txt_loglabel.Visible = true; mainForm.label1.Visible = true; mainForm.txt_speed.Visible = true; mainForm.txt_etrlabel.Visible = true; mainForm.Text = "K8 Gnomish Queuing Device"; //4a - Assign relevant data //Find things that you expect to see to gauge whether data is reliable or not //Then check if it contains common "dangerous words if (stringresult.Contains("queue") | stringresult.Contains("Realm is Full") | stringresult.Contains("Position") | stringresult.Contains("Estimated")) { //Expected input, find position of text, get next 5 letters (queue position) ProgHelpers.pushtype = 1; positiontxt = getBetween(stringresult, "queue:", "\n"); //Additional step, replace l and | as 1 (common OCR mistake) //Add more obvious OCR common errors as we go positiontxt = positiontxt.Replace("l", "1"); positiontxt = positiontxt.Replace("|", "1"); positiontxt = positiontxt.ToUpper().Replace("O", "0"); positiontxt = Regex.Replace(positiontxt, "[^0-9]", ""); if (Int32.TryParse(positiontxt, out position)) { if (ProgHelpers.startingPosition == 99999) { ProgHelpers.startingPosition = position; ProgHelpers.qpositions.Add(position); ProgHelpers.qtimes.Add(DateTime.Now); } if (ProgHelpers.startingPosition < position) { //Handling for the event that the starting position has been assumed wrongly //Replace Max position from the List, let the DateTime be (for now at least), it reduces accuracy a bit but it can't be helped //NOTE: This skips adding to the qpositions list int indexofStartingPosition = ProgHelpers.qpositions.IndexOf(ProgHelpers.startingPosition); ProgHelpers.qpositions[indexofStartingPosition] = position; ProgHelpers.startingPosition = position; } else { ProgHelpers.qpositions.Add(position); ProgHelpers.qtimes.Add(DateTime.Now); } //get index of latest Datetime (we might do some scrutiny later on) int indexOflatest = ProgHelpers.qtimes.IndexOf(ProgHelpers.qtimes.Max()); /* * UNDER CONSTRUCTION ZONE: ETA CALCULATOR PART */ //Progress if (ProgHelpers.qpositions.Count > 3) { decimal progressed = Convert.ToDecimal(ProgHelpers.startingPosition) - Convert.ToDecimal(ProgHelpers.qpositions[indexOflatest]); decimal progStatus = progressed / Convert.ToDecimal(ProgHelpers.startingPosition); float etaUp = (float)progStatus; //Add to ETACalc ProgHelpers.etaCalc.Update(etaUp); //Update ETA if possible bool etaAvail = ProgHelpers.etaCalc.ETAIsAvailable; if (etaAvail == true) { //ETA Available, get time Remaining and time of arrival TimeSpan etaSpan = ProgHelpers.etaCalc.ETR; ProgHelpers.etaString = "Estimated time remaining: " + etaSpan.Hours + " Hours, " + etaSpan.Minutes + " Minutes."; mainForm.txt_etrlabel.Text = ProgHelpers.etaString; } } /* * UNDER CONSTRUCTION ZONE ENDS */ //Update label DateTime nowtime = DateTime.Now; TimeSpan span = nowtime.Subtract(ProgHelpers.startingTime); mainForm.txt_currPosi.Text = ProgHelpers.qpositions[indexOflatest].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " / " + span.Hours + " H " + span.Minutes + " M " + span.Seconds + " S"; //Update speed to form var hoursform = (DateTime.Now - ProgHelpers.startingTime).TotalHours; double passedform = Convert.ToDouble(ProgHelpers.startingPosition) - Convert.ToDouble(ProgHelpers.qpositions[indexOflatest]); double speedform = passedform / hoursform; mainForm.txt_speed.Text = "Speed: " + (int)speedform + " / Hour"; LogWriter.LogWrite(mainForm.txt_etrlabel.Text + " | " + mainForm.txt_currPosi.Text + " | " + mainForm.txt_speed.Text + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes."); } } else if (stringresult.Contains("Error") | stringresult.Contains("Disconnected") | stringresult.Contains("WOW51900319") | stringresult.Contains("BLZ51901016") | stringresult.Contains("disconnected") | stringresult.Contains("You have been disconnected from the server.") | stringresult.Contains("Account Name")) { //Expected error input, no need to parse though ProgHelpers.pushtype = 2; } else { //Unexpected input, dont parse. ProgHelpers.pushtype = 3; } //5 // if (ProgHelpers.pushMode == 1 | ProgHelpers.pushMode == 0) { //Using Pushbullet, Default PushbulletClient client = new PushbulletClient(ProgHelpers.pushApi); var currentUserInformation = client.CurrentUsersInformation(); //If error, send immediately (check warning count towards) if (ProgHelpers.pushtype == 2 | ProgHelpers.pushtype == 3) { string bodymsg = "WARNING! Unexpected error occured! No queue status available!"; if (ProgHelpers.pushtype == 2) { bodymsg = "WARNING! You have been disconnected from the queue!!!"; } else { bodymsg = "WARNING! Unexpected error occured! No queue status available!"; } if (ProgHelpers.errorCount >= ProgHelpers.concurErrors) { //More than threshhold -> Run if (ProgHelpers.sentErrors < ProgHelpers.maxErrors) { //Send only a limited amount of errors if (currentUserInformation != null) { PushNoteRequest request = new PushNoteRequest { Email = currentUserInformation.Email, Title = "WARN! Gnomish Queuing Device", Body = bodymsg }; PushbulletSharp.Models.Responses.PushResponse response = client.PushNote(request); ProgHelpers.sentErrors++; mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Error message sent."); return(false); } } } else { //Add errorcount ProgHelpers.errorCount++; } } else { //Normal message if (ProgHelpers.qpositions.Count > 0) { if (ProgHelpers.startingMsgsent == false) { string bodymsg = "Queue Watcher started, no position information yet."; if (currentUserInformation != null) { PushNoteRequest request = new PushNoteRequest { Email = currentUserInformation.Email, Title = "Gnomish Queuing Device", Body = bodymsg }; PushbulletSharp.Models.Responses.PushResponse response = client.PushNote(request); } //Starting message done ProgHelpers.startingMsgsent = true; LogWriter.LogWrite("Push message sent."); } else { //Elapsed time DateTime nowtime = DateTime.Now; TimeSpan span = nowtime.Subtract(ProgHelpers.startingTime); //Sent recently? Send every 3 minutes when under 1000 in queue TimeSpan sincelastsend = nowtime.Subtract(ProgHelpers.pushTime); int indexOflatest = ProgHelpers.qtimes.IndexOf(ProgHelpers.qtimes.Max()); if (ProgHelpers.qpositions[indexOflatest] < 1000) { if (sincelastsend.TotalMinutes > ProgHelpers.sendIntervalSoon) { var hours = (DateTime.Now - ProgHelpers.startingTime).TotalHours; double passed = Convert.ToDouble(ProgHelpers.startingPosition) - Convert.ToDouble(ProgHelpers.qpositions[indexOflatest]); double speed = passed / hours; string bodymsg = ""; if (ProgHelpers.qpositions.Count < 5) { //Too little data to measure speed bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes."; } else { //Give speed info bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes. | Speed: " + (int)speed + " / Hour. | " + ProgHelpers.etaString; } if (currentUserInformation != null) { PushNoteRequest request = new PushNoteRequest { Email = currentUserInformation.Email, Title = "SOON! Gnomish Queuing Device", Body = bodymsg }; PushbulletSharp.Models.Responses.PushResponse response = client.PushNote(request); //Update Pushtime ProgHelpers.pushTime = DateTime.Now; ProgHelpers.errorCount = 0; //Reset errors ProgHelpers.sentErrors = 0; LogWriter.LogWrite("Push message sent."); } } } else { //Send status update every 15 mins if (sincelastsend.TotalMinutes > ProgHelpers.sendInterval) { var hours = (DateTime.Now - ProgHelpers.startingTime).TotalHours; double passed = Convert.ToDouble(ProgHelpers.startingPosition) - Convert.ToDouble(ProgHelpers.qpositions[indexOflatest]); double speed = passed / hours; string bodymsg = ""; if (ProgHelpers.qpositions.Count < 5) { //Too little data to measure speed bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes."; } else { //Give speed info bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes. | Speed: " + (int)speed + " / Hour. | " + ProgHelpers.etaString; } if (currentUserInformation != null) { PushNoteRequest request = new PushNoteRequest { Email = currentUserInformation.Email, Title = "Gnomish Queuing Device", Body = bodymsg }; PushbulletSharp.Models.Responses.PushResponse response = client.PushNote(request); //Update Pushtime ProgHelpers.pushTime = DateTime.Now; ProgHelpers.errorCount = 0; //Reset errors ProgHelpers.sentErrors = 0; LogWriter.LogWrite("Push message sent."); } } } } } else { if (ProgHelpers.startingMsgsent == false) { string bodymsg = "Queue Watcher started, no position information yet."; if (currentUserInformation != null) { PushNoteRequest request = new PushNoteRequest { Email = currentUserInformation.Email, Title = "Gnomish Queuing Device", Body = bodymsg }; PushbulletSharp.Models.Responses.PushResponse response = client.PushNote(request); } //Starting message done ProgHelpers.startingMsgsent = true; LogWriter.LogWrite("Push message sent."); } } mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Refresh complete."); return(true); } } if (ProgHelpers.pushMode == 2) { //Using Pushover Pushover pclient = new Pushover(ProgHelpers.pushApi); //If error, send immediately (check warning count towards) if (ProgHelpers.pushtype == 2 | ProgHelpers.pushtype == 3) { string bodymsg = "WARNING! Unexpected error occured! No queue status available!"; if (ProgHelpers.pushtype == 2) { bodymsg = "WARNING! You have been disconnected from the queue!!!"; } else { bodymsg = "WARNING! Unexpected error occured! No queue status available!"; } if (ProgHelpers.errorCount >= ProgHelpers.concurErrors) { if (ProgHelpers.sentErrors < ProgHelpers.maxErrors) { PushoverClient.PushResponse response = pclient.Push( "WARN! Gnomish Queuing Device", bodymsg, ProgHelpers.pushoverTargetkey, priority: Priority.Emergency, notificationSound: NotificationSound.Alien ); ProgHelpers.sentErrors++; mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Error message sent."); //Send only a limited amount of errors LogWriter.LogWrite("Push message sent."); } return(false); } else { //Add errorcount ProgHelpers.errorCount++; } } else { //Normal message if (ProgHelpers.qpositions.Count > 0) { if (ProgHelpers.startingMsgsent == false) { string bodymsg = "Queue Watcher started, no position information yet."; PushoverClient.PushResponse response = pclient.Push( "Gnomish Queuing Device", bodymsg, ProgHelpers.pushoverTargetkey ); //Starting message done ProgHelpers.startingMsgsent = true; mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Starting message sent."); LogWriter.LogWrite("Push message sent."); return(true); } else { //Elapsed time DateTime nowtime = DateTime.Now; TimeSpan span = nowtime.Subtract(ProgHelpers.startingTime); //Sent recently? Send every 3 minutes when under 1000 in queue TimeSpan sincelastsend = nowtime.Subtract(ProgHelpers.pushTime); int indexOflatest2 = ProgHelpers.qtimes.IndexOf(ProgHelpers.qtimes.Max()); if (ProgHelpers.qpositions[indexOflatest2] < ProgHelpers.whenPriorityMsg) { if (sincelastsend.TotalMinutes > ProgHelpers.sendIntervalSoon) { var hours = (DateTime.Now - ProgHelpers.startingTime).TotalHours; double passed = Convert.ToDouble(ProgHelpers.startingPosition) - Convert.ToDouble(ProgHelpers.qpositions[indexOflatest2]); double speed = passed / hours; string bodymsg = ""; if (ProgHelpers.qpositions.Count < 5) { //Too little data to measure speed bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest2].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes."; } else { //Give speed info bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest2].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes. | Speed: " + (int)speed + " / Hour. | " + ProgHelpers.etaString; } PushoverClient.PushResponse response = pclient.Push( "SOON! Gnomish Queuing Device", bodymsg, ProgHelpers.pushoverTargetkey, priority: Priority.High, notificationSound: NotificationSound.Tugboat ); //Update Pushtime ProgHelpers.pushTime = DateTime.Now; //Reset errors ProgHelpers.errorCount = 0; ProgHelpers.sentErrors = 0; mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Position updated"); LogWriter.LogWrite("Push message sent."); return(true); } return(true); } else { //Send status update every 15 mins if (sincelastsend.TotalMinutes > ProgHelpers.sendInterval) { var hours = (DateTime.Now - ProgHelpers.startingTime).TotalHours; double passed = Convert.ToDouble(ProgHelpers.startingPosition) - Convert.ToDouble(ProgHelpers.qpositions[indexOflatest2]); double speed = passed / hours; string bodymsg = ""; if (ProgHelpers.qpositions.Count < 5) { //Too little data to measure speed bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest2].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes."; } else { //Give speed info bodymsg = "Current position: " + ProgHelpers.qpositions[indexOflatest2].ToString() + " / " + ProgHelpers.startingPosition.ToString() + " | Time elapsed: " + span.Hours + " Hours " + span.Minutes + " Minutes. | Speed: " + (int)speed + " / Hour. | " + ProgHelpers.etaString; } PushoverClient.PushResponse response = pclient.Push( "Gnomish Queuing Device", bodymsg, ProgHelpers.pushoverTargetkey ); //Update Pushtime ProgHelpers.pushTime = DateTime.Now; //Reset errors ProgHelpers.errorCount = 0; ProgHelpers.sentErrors = 0; mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Position updated"); LogWriter.LogWrite("Push message sent."); return(true); } return(true); } } } else { if (ProgHelpers.startingMsgsent == false) { string bodymsg = "Queue Watcher started, no position information yet."; PushoverClient.PushResponse response = pclient.Push( "Gnomish Queuing Device", bodymsg, ProgHelpers.pushoverTargetkey ); //Starting message done ProgHelpers.startingMsgsent = true; LogWriter.LogWrite("Push message sent."); } } //Update speed to form int indexOflatest = ProgHelpers.qtimes.IndexOf(ProgHelpers.qtimes.Max()); var hoursform = (DateTime.Now - ProgHelpers.startingTime).TotalHours; double passedform = Convert.ToDouble(ProgHelpers.startingPosition) - Convert.ToDouble(ProgHelpers.qpositions[indexOflatest]); double speedform = passedform / hoursform; mainForm.txt_speed.Text = "Speed: " + (int)speedform + " / Hour"; mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Refresh complete."); return(true); } } } catch (Exception e) { //Disable autorefresh while updating API mainForm.txt_loglabel.Text = (DateTime.Now.ToLongTimeString() + " Something went wrong..."); LogWriter.LogWrite("Something went wrong..."); //ConsoleLog.AppendText(DateTime.Now.ToLongTimeString() + " Something went wrong..."); //logform.ConsoleLog.AppendText(Environment.NewLine); return(false); } return(true); }
public override void SetupConnector() { Client = new Pushover(this.InParameters["apiKey"].GetValue().ToString()); this.Next(); }
internal PollerManager(Pushover notificationEngine) { this.notificationEngine = notificationEngine; mostRecentAvailability ??= new Dictionary <string, DateTime>(); }
public PushResponse sendPush(MessageDTO message) { Pushover pushClient = new Pushover(API_KEY); return(pushClient.Push(message.ShortMessage, message.Message, USER_KEY)); }
protected override void Flush(LogEntry logEntry) { Pushover.SendNotification(logEntry.Tag + " " + logEntry.Message); }
static void Push(string msg) { Pushover pclient = new Pushover(appKey: thisAppKey); PushResponse response = pclient.Push(title: "FT-8 Spot", message: msg, userKey: myPushoverUserKey); }