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(); } } }
/// <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)); }
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)); }
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 }
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); } }
private void LogOutButtonClick(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e) { _logout = true; try { Close(); } finally { _logout = false; } }
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); } }
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(); } }
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; //} }
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(); } }
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(); } }
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(); }
private void BtnStop_Click(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e) { LblStatus.Text = "Stopping"; _stop = true; }
private void CloseAllButtonClick(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e) { OnCloseAllWindows(); }
private void SettingsButtonClick(object sender, ActiproSoftware.Windows.Controls.Ribbon.Controls.ExecuteRoutedEventArgs e) { OnShowSettingsDialog(); }
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(); } }
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; }