Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HtmlAgilityPack.HtmlDocument newdoc = new HtmlAgilityPack.HtmlDocument();
- newdoc.LoadHtml(html);
- GeckoElementCollection links = wb.Document.GetElementsByTagName("a");
- foreach (GeckoHtmlElement itm in links)
- {
- string dLink = itm.GetAttribute("href");
- if (!string.IsNullOrEmpty(dLink))
- {
- if (dLink.Contains("&method=download"))
- {
- Console.WriteLine(dLink);
- itm.Click();
- LauncherDialog.Download += LauncherDialog_Download;
- }
- }
- private void LauncherDialog_Download(object sender, LauncherDialogEvent e)
- {
- nsILocalFile objTarget = Xpcom.CreateInstance<nsILocalFile>("@mozilla.org/file/local;1");
- using (nsAString tmp = new nsAString(@Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "temp.tmp"))
- {
- objTarget.InitWithPath(tmp);
- }
- //Save file dialog
- Stream myStream;
- SaveFileDialog saveFileDialog1 = new SaveFileDialog();
- saveFileDialog1.Filter = "All files (*.*)|*.*";
- saveFileDialog1.FilterIndex = 2;
- saveFileDialog1.RestoreDirectory = true;
- saveFileDialog1.FileName = e.Filename;
- if (saveFileDialog1.ShowDialog() == DialogResult.OK)
- {
- if ((myStream = saveFileDialog1.OpenFile()) != null)
- {
- nsIURI source = IOService.CreateNsIUri(e.Url);
- nsIURI dest = IOService.CreateNsIUri(new Uri(@saveFileDialog1.FileName).AbsoluteUri);
- nsAStringBase t = (nsAStringBase)new nsAString(System.IO.Path.GetFileName(@saveFileDialog1.FileName));
- nsIWebBrowserPersist persist = Xpcom.CreateInstance<nsIWebBrowserPersist>("@mozilla.org/embedding/browser/nsWebBrowserPersist;1");
- nsITransfer nst = Xpcom.CreateInstance<nsITransfer>("@mozilla.org/transfer;1");
- nst.Init(source, dest, t, e.Mime, 0, null, persist, false);
- if (nst != null)
- {
- persist.SetPersistFlagsAttribute(2 | 32 | 16384);
- persist.SetProgressListenerAttribute((nsIWebProgressListener)nst);
- persist.SaveURI(source, null, null, (uint)Gecko.nsIHttpChannelConsts.REFERRER_POLICY_NO_REFERRER, null, null, (nsISupports)dest, null);
- }
- myStream.Close();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement