Advertisement
Guest User

Untitled

a guest
Feb 6th, 2017
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. HtmlAgilityPack.HtmlDocument newdoc = new HtmlAgilityPack.HtmlDocument();
  2. newdoc.LoadHtml(html);
  3. GeckoElementCollection links = wb.Document.GetElementsByTagName("a");
  4. foreach (GeckoHtmlElement itm in links)
  5. {
  6. string dLink = itm.GetAttribute("href");
  7. if (!string.IsNullOrEmpty(dLink))
  8. {
  9. if (dLink.Contains("&method=download"))
  10. {
  11. Console.WriteLine(dLink);
  12. itm.Click();
  13. LauncherDialog.Download += LauncherDialog_Download;
  14. }
  15. }
  16.  
  17.  
  18. private void LauncherDialog_Download(object sender, LauncherDialogEvent e)
  19. {
  20. nsILocalFile objTarget = Xpcom.CreateInstance<nsILocalFile>("@mozilla.org/file/local;1");
  21.  
  22. using (nsAString tmp = new nsAString(@Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "temp.tmp"))
  23. {
  24. objTarget.InitWithPath(tmp);
  25. }
  26.  
  27. //Save file dialog
  28. Stream myStream;
  29. SaveFileDialog saveFileDialog1 = new SaveFileDialog();
  30.  
  31. saveFileDialog1.Filter = "All files (*.*)|*.*";
  32. saveFileDialog1.FilterIndex = 2;
  33. saveFileDialog1.RestoreDirectory = true;
  34. saveFileDialog1.FileName = e.Filename;
  35.  
  36. if (saveFileDialog1.ShowDialog() == DialogResult.OK)
  37. {
  38. if ((myStream = saveFileDialog1.OpenFile()) != null)
  39. {
  40. nsIURI source = IOService.CreateNsIUri(e.Url);
  41. nsIURI dest = IOService.CreateNsIUri(new Uri(@saveFileDialog1.FileName).AbsoluteUri);
  42. nsAStringBase t = (nsAStringBase)new nsAString(System.IO.Path.GetFileName(@saveFileDialog1.FileName));
  43.  
  44. nsIWebBrowserPersist persist = Xpcom.CreateInstance<nsIWebBrowserPersist>("@mozilla.org/embedding/browser/nsWebBrowserPersist;1");
  45.  
  46. nsITransfer nst = Xpcom.CreateInstance<nsITransfer>("@mozilla.org/transfer;1");
  47. nst.Init(source, dest, t, e.Mime, 0, null, persist, false);
  48.  
  49. if (nst != null)
  50. {
  51. persist.SetPersistFlagsAttribute(2 | 32 | 16384);
  52. persist.SetProgressListenerAttribute((nsIWebProgressListener)nst);
  53. persist.SaveURI(source, null, null, (uint)Gecko.nsIHttpChannelConsts.REFERRER_POLICY_NO_REFERRER, null, null, (nsISupports)dest, null);
  54. }
  55.  
  56. myStream.Close();
  57. }
  58. }
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement