Пример #1
0
        private void BtnImportProxies_Click(object sender,
                                            ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog
            {
                InitialDirectory = @"C:\",
                Title            = "Browse Text Files",
                CheckFileExists  = true,
                CheckPathExists  = true,
                DefaultExt       = "txt",
                Filter           = "Text files (*.txt)|*.txt|All files (*.*)|*.*",
                FilterIndex      = 2,
                RestoreDirectory = true,
                ReadOnlyChecked  = true,
                ShowReadOnly     = true
            };

            if (ofd.ShowDialog() == true)
            {
                var lines = File.ReadAllLines(ofd.FileName);
                foreach (var proxy in lines)
                {
                    var p = proxy.Split(':');
                    LvProxies.Items.Add(new Proxy(p[0], p[1]));
                    new MsgBox("ProxyTiger", "Imported " + lines.Length + " proxies.").ShowDialog();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Occurs when the <see cref="RoutedCommand"/> is executed.
        /// </summary>
        /// <param name="sender">The sender of the event.</param>
        /// <param name="e">A <see cref="RibbonControls.ExecuteRoutedEventArgs"/> that contains the event data.</param>
        private static void OnCustomMenuItemClicked(object sender, RibbonControls.ExecuteRoutedEventArgs e)
        {
            e.Handled = true;
            RibbonControls.Button button   = (RibbonControls.Button)sender;
            WeakReference         ownerRef = (WeakReference)button.Tag;

            MessageBox.Show(String.Format("You clicked the programmatically-added menu item for: {0}", ownerRef.Target));
        }
Пример #3
0
        private void BtnCopyProxies_Click(object sender,
                                          ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            var proxies = new List <string>();

            foreach (Proxy proxy in LvProxies.Items)
            {
                proxies.Add($"{proxy.IP}:{proxy.Port}");
            }
            Clipboard.SetText(string.Join("\n", proxies));
        }
Пример #4
0
        private void BtnCopyProxies_Click(object sender,
                                          ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            var proxies = new List <string>();              // var has an anonymous data type, makes an anonymous list here with string

            foreach (Proxy proxy in LvProxies.Items)        // Looking for Proxy variable (not object) "proxy" in LvProvies list
            {
                proxies.Add($"{proxy.IP}:{proxy.Port}");    // Copying IP addresses and ports to proxies list
            }
            Clipboard.SetText(string.Join("\n", proxies));  // string.Join method to concatenate elements with specific separator on clipboard
        }
Пример #5
0
        private void BtnRemoveDuplicates_Click(object sender,
                                               ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            var proxies = LvProxies.Items.OfType <Proxy>().ToList().GroupBy(x => x.IP + ":" + x.Port).Select(x => x.First()).ToList();

            new MsgBox("ProxyTiger", "You removed " + (LvProxies.Items.Count - proxies.Count) + " duplicates.").ShowDialog();
            LblProxyStatus.Text = $"Proxies: {proxies.Count}";;
            LvProxies.Items.Clear();
            foreach (Proxy proxy in proxies)
            {
                LvProxies.Items.Add(proxy);
            }
        }
Пример #6
0
        private void LogOutButtonClick(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            _logout = true;

            try
            {
                Close();
            }
            finally
            {
                _logout = false;
            }
        }
Пример #7
0
        private void BtnPasteProxies_Click(object sender,
                                           ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            var proxies =
                Clipboard.GetText()
                .Split('\n')
                .Select(proxy => proxy.Split(':'))
                .Select(p => new Proxy(p[0], p[1]))
                .ToList();

            foreach (var proxy in proxies)
            {
                LvProxies.Items.Add(proxy);
            }
        }
Пример #8
0
        private void BtnLoadSources_Click(object sender,
                                          ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog
            {
                Filter           = "txt files (*.txt)|*.txt|All files (*.*)|*.*",
                RestoreDirectory = true
            };

            if (ofd.ShowDialog().HasValue.Equals(true))
            {
                _sources = File.ReadAllLines(ofd.FileName);
                new MsgBox("ProxyTiger", "Imported " + _sources.Length + " sources.").ShowDialog();
            }
        }
Пример #9
0
        private void Button_Click(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            ((DependencyObject)sender).FindAncestor <ActiproSoftware.Windows.Controls.Ribbon.Controls.Menu>().
            SaftyInvoke(menu =>
            {
                menu.Parent.SaftyInvoke <PopupButton>(b => b.IsPopupOpen = false);
            });


            //popupButton.IsPopupOpen = false;

            //RibbonWindow ribbonWindow = VisualTreeHelperExtended.GetCurrentOrAncestor(this, typeof(RibbonWindow)) as RibbonWindow;
            //if (null != ribbonWindow)
            //{
            //    Ribbon button = VisualTreeHelperExtended.GetFirstDescendant(ribbonWindow, typeof(Ribbon)) as Ribbon;
            //    if (null != button)
            //        button.IsApplicationMenuOpen = true;
            //}
        }
Пример #10
0
        private void BtnExportProxies_Click(object sender,
                                            ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
        {
            var            proxies = (from Proxy proxy in LvProxies.Items select $"{proxy.IP}:{proxy.Port}").ToList();
            SaveFileDialog sfd     = new SaveFileDialog
            {
                InitialDirectory = @"C:\",
                Title            = "Save proxies",
                DefaultExt       = "txt",
                Filter           = "Text files (*.txt)|*.txt|All files (*.*)|*.*",
                FilterIndex      = 1,
                RestoreDirectory = true
            };

            if (sfd.ShowDialog() == true)
            {
                File.WriteAllLines(sfd.FileName, proxies);
                new MsgBox("ProxyTiger", "Wrote successfully " + proxies.Count + " proxies.").Show();
            }
        }
Пример #11
0
 private void BtnRemoveNotWorking_Click(object sender,
                                        ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
 {
     if (_runningJob == Job.Idle)
     {
         var proxies =
             LvProxies.Items.OfType <Proxy>().Where(proxy => proxy.Status != Proxy.StatusType.NotWorking).ToList();
         new MsgBox("ProxyTiger",
                    "You removed " + (LvProxies.Items.Count - proxies.Count) + " not working proxies.").ShowDialog();
         LvProxies.Items.Clear();
         foreach (Proxy proxy in proxies)
         {
             LvProxies.Items.Add(proxy);
         }
         LblAdditionalInfo.Text = $"Working: {proxies.Count}, Not Working: 0";
     }
     else
     {
         new MsgBox("ProxyTiger", "ProxyTiger is still running!").ShowDialog();
     }
 }
Пример #12
0
 private void BtnScrape_Click(object sender,
                              ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
 {
     LockControls(true);
     LblStatus.Text = "Scraping";
     _runningJob    = Job.Scraping;
     _tasks.Add(HideMyName()); //216 out of 785
     _tasks.Add(SamairRu());   //144 out of 600
     //_tasks.Add(ProxyDb()); //90 out of 950
     //_tasks.Add(ProxySpy()); //67 out of 300
     //_tasks.Add(ProxyListOrg()); //45 out of 140
     _tasks.Add(MorphIo()); //204 out of 2046
     //_tasks.Add(IpAddress()); //11 out of 50
     //_tasks.Add(MeilleurVpn()); //40 out of 180
     //_tasks.Add(HideMyIp()); //80 out of 445
     //_tasks.Add(SslProxies()); //52 out of 100
     //_tasks.Add(ProxyApe()); //213 out of 3100
     _tasks.Add(OrcaTech());     // 1200 out of 3000
     _tasks.Add(SslProxies24()); // we need to only scrape from the day of scrapings posts not all time
     //_tasks.Add(AliveProxy()); //23 out of 223
     _tasks.Add(UserProxy());
     foreach (var task in _tasks)
     {
         task.Start();
     }
     new Task(async() =>
     {
         await Task.WhenAll(_tasks.ToArray());
         _stop = false;
         Application.Current.Dispatcher.Invoke((Action)(() =>
         {
             LblStatus.Text = "Idle";
             _runningJob = Job.Idle;
             new MsgBox("ProxyTiger", "Scraped " + LvProxies.Items.Count + " proxies.").ShowDialog();
             UnlockControls(true);
         }));
     }).Start();
 }
Пример #13
0
 private void BtnStop_Click(object sender,
                            ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
 {
     LblStatus.Text = "Stopping";
     _stop          = true;
 }
Пример #14
0
 private void CloseAllButtonClick(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
 {
     OnCloseAllWindows();
 }
Пример #15
0
 private void SettingsButtonClick(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
 {
     OnShowSettingsDialog();
 }
Пример #16
0
 private void BtnCheck_Click(object sender,
                             ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e)
 {
     if (_runningJob == Job.Idle)       // Occurs when the application finishes processing and is about to enter the idle state
     {
         LockControls();
         LblStatus.Text      = "Scanning";
         BtnCheck.IsEnabled  = false;
         BtnScrape.IsEnabled = false;
         BtnStop.IsEnabled   = false;
         _runningJob         = Job.Checking;
         int working    = 0;
         int notWorking = 0;
         new Thread(() =>               // Multithreading, with => meaning there are no parameters, also ends with ).Start();
         {
             int threads = 0;
             foreach (Proxy proxy in LvProxies.Items)
             {
                 while (threads >= 200)
                 {
                 }
                 new Thread(() =>
                 {
                     try
                     {
                         threads++;
                         Stopwatch sw = new Stopwatch();                      // Measuring time with Stopwatch class
                         sw.Start();
                         var status = CheckProxy(proxy.IP, proxy.Port);       // Checking if proxy is working
                         sw.Stop();
                         if (status != Proxy.ProxyType.Unknown)
                         {
                             proxy.Ping  = sw.Elapsed.Milliseconds.ToString();
                             proxy.Type  = status;
                             proxy.Color = new SolidColorBrush(Colors.Green);
                             working++;
                         }
                         else
                         {
                             proxy.Color = new SolidColorBrush(Colors.Red);
                             notWorking++;
                         }
                         proxy.Status = status != Proxy.ProxyType.Unknown
                             ? Proxy.StatusType.Working
                             : Proxy.StatusType.NotWorking;
                         working++;
                     }
                     catch
                     {
                         proxy.Status = Proxy.StatusType.NotWorking;
                         notWorking++;
                     }
                     finally
                     {
                         try
                         {
                             Application.Current.Dispatcher.Invoke(
                                 (Action)
                                 (() =>
                             {
                                 LblAdditionalInfo.Text = $"Working: {working}, Not Working: {notWorking}";
                             }));
                         }
                         catch
                         {
                         }
                         threads--;
                     }
                 }).Start();
             }
         }).Start();
         var t = new Thread(() =>
         {
             while (working + notWorking != LvProxies.Items.Count)
             {
                 ;
             }
             Application.Current.Dispatcher.Invoke((Action)(() =>
             {
                 new MsgBox("ProxyTiger", "Scanning has finished").ShowDialog();
                 LblStatus.Text = "Idle";
                 UnlockControls();
             }));
             _runningJob = Job.Idle;
         });
         t.SetApartmentState(ApartmentState.STA);
         t.Start();
     }
     else
     {
         new MsgBox("ProxyTiger", "ProxyTiger is still scraping").ShowDialog();
     }
 }
Пример #17
0
 private void BtnStop_Click(object sender,
                            ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e) // Provides event arguments for an execute routed event
 {
     LblStatus.Text = "Stopping";
     _stop          = true;
 }