Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        public static Insta OpenDirect(this Insta insta)
        {
            var driver = insta.Driver;

            driver.OpenUrl("https://www.instagram.com/direct/inbox/", "direct/inbox");

            return(insta);
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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;
            }
        }
Ejemplo n.º 8
0
        /// <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;
        }