コード例 #1
0
        private void uiDownloadButton_Click(object sender, EventArgs e)
        {
            if (!OsirtHelper.IsOnFacebook(DownloadUrl))
            {
                MessageBox.Show("The download URL does not appear to be a Facebook video URL.", "Invalid Facebook Video URL", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            uiDownloadProgressBar.Visible = true;
            uiCancelButton.Enabled        = false;
            string videoUrl = DownloadUrl;
            string url;

            try
            {
                using (WebClient wc = new WebClient())
                {
                    wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36");

                    //get page source from the url entered
                    string source = wc.DownloadString(videoUrl);
                    //simply parse the page source looking for simple tokens.
                    int hdLoc  = source.IndexOf("hd_src:");
                    int sdLoc  = source.IndexOf(",sd_src:");
                    int length = sdLoc - hdLoc;
                    url = source.Substring(hdLoc, length);
                    //find everything between quotes, in this case the Url
                    url = Regex.Match(url, "\"([^\"]*)\"").ToString().Replace("\"", "");
                }

                using (WebClient downloader = new WebClient())
                {
                    //need to rethink the video file in cache, could have multiple videos saving there
                    //need video recovery

                    string facebookVideoLocation = Path.Combine(Constants.VideoCacheLocation, "temp_facebook_vid.mp4");

                    downloader.DownloadFileAsync(new Uri(url), facebookVideoLocation);
                    downloader.DownloadProgressChanged += Downloader_DownloadProgressChanged;
                    downloader.DownloadFileCompleted   += Downloader_DownloadFileCompleted;
                }
            }
            catch
            {
                MessageBox.Show("Unable to download this video. Make sure a valid video URL is entered.", "Error downloading video", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #2
0
ファイル: MenuHandler.cs プロジェクト: olivierh59500/OSIRTv2
        void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
        {
            //Removing existing menu item
            model.Clear();

            if (!string.IsNullOrEmpty(parameters.UnfilteredLinkUrl))
            {
                model.AddItem((CefMenuCommand)26501, "Open link in new tab");
                model.AddSeparator();
            }
            if (parameters.TypeFlags.HasFlag(ContextMenuType.Media) && parameters.HasImageContents)
            {
                if (!UI.BrowserPanel.IsUsingTor)
                {
                    if (OsirtHelper.HasJpegExtension(parameters.SourceUrl))
                    {
                        model.AddItem((CefMenuCommand)ViewImageExifData, "View image EXIF data");
                    }
                    model.AddItem((CefMenuCommand)MenuSaveImage, "Save image");
                }
                model.AddItem((CefMenuCommand)CopyImgLocation, "Copy image location to clipboard");
                model.AddItem((CefMenuCommand)ReverseImageSearch, "Reverse image search using TinEye");
                model.AddSeparator();
                //
            }
            if (OsirtHelper.IsOnYouTube(browserControl.Address))
            {
                model.AddItem((CefMenuCommand)SaveYouTubeVideo, "Extract YouTube video");
            }
            if (OsirtHelper.IsOnFacebook(browserControl.Address))
            {
                model.AddItem((CefMenuCommand)ViewFacebookId, "Show Facebook profile ID");
            }
            if (OsirtHelper.IsOnTwitter(browserControl.Address))
            {
                model.AddItem((CefMenuCommand)ViewTwitterId, "Show Twitter profile ID");
            }

            model.AddItem((CefMenuCommand)ViewSource, "View page source");
            model.AddItem((CefMenuCommand)ExtractAllLinks, "Extract all links on page");
            model.AddItem((CefMenuCommand)Bookmark, "Add page to bookmarks");
        }
コード例 #3
0
        void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
        {
            //Removing existing menu item
            //model.Clear();

            if (parameters.TypeFlags.HasFlag(ContextMenuType.Selection))
            {
                model.AddItem((CefMenuCommand)SearchSelectedText, "Search selected text using Google");
                model.AddItem((CefMenuCommand)SaveText, "Save selected text");
                model.AddSeparator();
            }

            if (!string.IsNullOrEmpty(parameters.UnfilteredLinkUrl))
            {
                model.AddItem((CefMenuCommand)26501, "Open link in new tab");
                model.AddSeparator();
            }
            if (parameters.TypeFlags.HasFlag(ContextMenuType.Media) && parameters.HasImageContents)
            {
                if (!RuntimeSettings.IsUsingTor)
                {
                    if (OsirtHelper.HasJpegExtension(parameters.SourceUrl))
                    {
                        model.AddItem((CefMenuCommand)ViewImageExifData, "View image EXIF data");
                    }
                    model.AddItem((CefMenuCommand)MenuSaveImage, "Save image");
                }
                model.AddItem((CefMenuCommand)CopyImgLocation, "Copy image location to clipboard");

                var sub = model.AddSubMenu((CefMenuCommand)ReverseImgSearchSubMenu, "Reverse image search tools");
                sub.AddItem((CefMenuCommand)ReverseImageSearchTineye, "Reverse image search using TinEye");
                //sub.AddItem((CefMenuCommand)ReverseImageSearchYandex, "Reverse image search using Yandex");
                sub.AddItem((CefMenuCommand)ReverseImageSearchGoogle, "Reverse image search using Google");
                model.AddSeparator();
                //
            }
            if (OsirtHelper.IsOnYouTube(browserControl.Address))
            {
                model.AddItem((CefMenuCommand)SaveYouTubeVideo, "Extract YouTube video");
            }
            if (OsirtHelper.IsOnFacebook(browserControl.Address))
            {
                model.AddItem((CefMenuCommand)ViewFacebookId, "Show Facebook profile ID");
            }
            if (OsirtHelper.IsOnTwitter(browserControl.Address))
            {
                model.AddItem((CefMenuCommand)ViewTwitterId, "Show Twitter profile ID");
            }

            model.AddItem((CefMenuCommand)ViewSource, "View page source");
            model.AddItem((CefMenuCommand)ExtractAllLinks, "Extract all links on page");
            model.AddItem((CefMenuCommand)Bookmark, "Add page to bookmarks");


            model.Remove(CefMenuCommand.ViewSource);
            model.Remove(CefMenuCommand.Print);
            model.Remove(CefMenuCommand.Undo);
            model.Remove(CefMenuCommand.Redo);
            model.Remove(CefMenuCommand.Forward);
            model.Remove(CefMenuCommand.Back);
        }