/// <summary> /// Send message to a profile. If message contains any breaklines, bot will use SHIFT+ENTER in order to /// send only one message /// </summary> /// <param name="profile"></param> /// <param name="message"></param> /// <returns></returns> public static async Task <Insta> SendMessage(this Insta insta, string profile, string message) { var driver = insta.Driver; driver.OpenUrl("https://www.instagram.com/direct/new/", "direct"); driver.Exec(() => driver.FindElement(By.Name("queryBox"), 60).SendKeys(profile), () => driver.FindElements(By.CssSelector("div[role='dialog'] div[role='button']"), 60).ElementAtOrDefault(0) != null); driver.FindElements(By.CssSelector("div[role='dialog'] div[role='button']"), 60).ElementAtOrDefault(0).Click(); driver.FindElement(By.XPath("//div[contains(text(),'Next')]"), 60).Click(); foreach (var msg in message.Split("\r\n").Where(x => !string.IsNullOrWhiteSpace(x))) { driver.FindElement(By.TagName("textarea"), 60).SendKeys(msg); await Executor.Exec(() => { Actions a = new Actions(driver); // Press SHIFT-CTRL a.KeyDown(Keys.Shift) .SendKeys(Keys.Enter) .KeyUp(Keys.Shift) .Build() .Perform(); }); } driver.FindElement(By.TagName("textarea")).SendKeys(Keys.Enter); return(insta); }
public static Insta OpenDirect(this Insta insta) { var driver = insta.Driver; driver.OpenUrl("https://www.instagram.com/direct/inbox/", "direct/inbox"); return(insta); }
public static void Main(string[] args) { var sw = new Stopwatch(); //users = new UserRepository().GetLoginsNoPost(1, 200000); ServiceHost host = new ServiceHost(typeof(WCF.GetPosts)); host.Open(); Console.WriteLine("Service Hosted Sucessfully"); //Console.Read(); var irek = new Insta("pavelpetrov141", "петр777"); irek.StartInstaAsync().GetAwaiter().GetResult(); //irek.GetPosts(""); instants.Add(irek); #region LoopBenchmarcks //sw.Start(); // 22.5 ms //Parallel.ForEach(users, i => //{ // Console.WriteLine(i.Login); //}); // 15.8 ms //foreach (var i in users) //{ // Console.WriteLine(i.Login); //} //14.3 ms //for(var j = 0; j<users.Count; j++) //{ // Console.WriteLine(users[j].Login); //} //15.3 ms //var j = 0; //while (j < users.Count-1) //{ // j++; // Console.WriteLine(users[j].Login); //} //sw.Stop(); #endregion Console.WriteLine(sw.ElapsedMilliseconds); Console.ReadLine(); }
private async void Insta_Tapped(object sender, EventArgs e) { await Insta.ScaleTo(.95); InstaLoading.IsVisible = true; InstaText.IsVisible = false; await Insta.ScaleTo(1); InstaLoading.IsVisible = false; InstaText.IsVisible = true; }
/// <summary> /// Log in user /// </summary> /// <param name="insta"></param> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static Insta LogIn(this Insta insta, string username, string password) { var driver = insta.Driver; driver.OpenUrl("https://www.instagram.com", "instagram", checkPopup: false); driver.FindElement(By.Name("username"), 60)?.SendKeys(username); driver.FindElement(By.Name("password"), 60).SendKeys(password); driver.FindElement(By.CssSelector("button[type=\"submit\"]"), 60).Click(); driver.FindElement(By.CssSelector("img[alt='Instagram']"), 60); driver.OpenUrl("https://www.instagram.com", "instagram"); return(insta); }
private async Task <Insta> GetInstaAsync() { try { using (HttpClient client = new HttpClient()) { Insta insta = new Insta(); var response = await client.GetStringAsync("https://api.instagram.com/v1/tags/techtatva16/media/recent?access_token=630237785.f53975e.8dcfa635acf14fcbb99681c60519d04c&count=9"); insta = JsonConvert.DeserializeObject <Insta>(response); return(insta); } } catch (Exception ex) { return(null); } }
private async void GetInstaAsync() { if (IsInternet()) { try { using (HttpClient client = new HttpClient()) { Insta insta = new Insta(); var response = await client.GetStringAsync("https://api.instagram.com/v1/tags/techtatva16/media/recent?access_token=630237785.f53975e.8dcfa635acf14fcbb99681c60519d04c"); insta = JsonConvert.DeserializeObject <Insta>(response); instagram = insta; foreach (Datum d in insta.data) { BitmapImage b = new BitmapImage(); b.CreateOptions = BitmapCreateOptions.IgnoreImageCache; b.UriSource = new Uri(d.images.thumbnail.url); bmi9.Add(b); bmi25.Add(b); } } } catch (Exception ex) { } } else { MainPage.Instance.ShowPopup(); PRing.Visibility = Visibility.Collapsed; } }
/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> /// <param name="sender"> /// The source of the event; typically <see cref="NavigationHelper"/> /// </param> /// <param name="e">Event data that provides both the navigation parameter passed to /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and /// a dictionary of state preserved by this page during an earlier /// session. The state will be null the first time a page is visited.</param> private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) { PPanel.Visibility = Visibility.Visible; DatabaseHelperClass db = new DatabaseHelperClass(); List <BitmapImage> bmi = new List <BitmapImage>(); List <Results> results = new List <Results>(); BitmapImage bit = new BitmapImage(); bit.CreateOptions = BitmapCreateOptions.IgnoreImageCache; bit.UriSource = new Uri("ms-appx:///Assets/back.jpg"); for (int i = 0; i < 9; i++) { bmi.Add(bit); } //Checking Network bool isConnected = NetworkInterface.GetIsNetworkAvailable(); if (isConnected) { // Do Nothing } else { ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile(); NetworkConnectivityLevel connection = InternetConnectionProfile.GetNetworkConnectivityLevel(); if (connection == NetworkConnectivityLevel.None || connection == NetworkConnectivityLevel.LocalAccess) { isConnected = false; } } var roamingSettings = ApplicationData.Current.RoamingSettings; //Nettwork availability checked if (roamingSettings.Values["First"].ToString() == "0") { if (!isConnected) { if ((db.ReadEvents() as List <EventClass>).Count == 0) { ShowPopupAsync(); } else { HidePopupAsync(); } } else { //Checking Database if ((db.ReadEvents() as List <EventClass>).Count == 0) { //Start Of EventsAPI call db.DeleteAllEvents(); List <EventClass> listevents = new List <EventClass>(); listevents = await GetEventsAPIAsync(); db.Insert(listevents); //End of Events API Call } else { RefInBack = true; } //Start Of Insta API Call insta = await GetInstaAsync(); bmi.Clear(); foreach (Datum d in insta.data) { BitmapImage b = new BitmapImage(); b.CreateOptions = BitmapCreateOptions.IgnoreImageCache; b.UriSource = new Uri(d.images.thumbnail.url); bmi.Add(b); } //End Of Insta API call and formatting results = await GetResultsAsync(); //Results API Call roamingSettings.Values["First"] = "1"; } } else { insta = await GetInstaAsync(); bmi.Clear(); foreach (Datum d in insta.data) { BitmapImage b = new BitmapImage(); b.CreateOptions = BitmapCreateOptions.IgnoreImageCache; b.UriSource = new Uri(d.images.thumbnail.url); bmi.Add(b); } results = await GetResultsAsync(); } List <EventClass> l = new List <EventClass>(); l = db.ReadEvents(); List <EventClass> Day1_Events = new List <EventClass>(); List <EventClass> Day2_Events = new List <EventClass>(); List <EventClass> Day3_Events = new List <EventClass>(); List <EventClass> Day4_Events = new List <EventClass>(); Day1_Events = (l.Where(p => p.Day == "1").ToList()).OrderBy(eve => eve.Name).ToList(); Day2_Events = (l.Where(p => p.Day == "2").ToList()).OrderBy(eve => eve.Name).ToList(); Day3_Events = (l.Where(p => p.Day == "3").ToList()).OrderBy(eve => eve.Name).ToList(); Day4_Events = (l.Where(p => p.Day == "4").ToList()).OrderBy(eve => eve.Name).ToList(); List <Day> list = new List <Day>(); Day day1 = new Day(); day1.Events = Day1_Events; day1.day = "day 1"; Day day2 = new Day(); day2.Events = Day2_Events; day2.day = "day 2"; Day day3 = new Day(); day3.Events = Day3_Events; day3.day = "day 3"; Day day4 = new Day(); day4.Events = Day4_Events; day4.day = "day 4"; list.Add(day1); list.Add(day2); list.Add(day3); list.Add(day4); this.defaultViewModel["Days"] = list; this.defaultViewModel["Insta"] = bmi; this.defaultViewModel["Results"] = results; PPanel.Visibility = Visibility.Collapsed; }