private async void SearchBtn_Click(object sender, RoutedEventArgs e) { var searchContent = SearchTextBox.Text; if (string.IsNullOrWhiteSpace(searchContent)) { return; } var result = AnalyzeUrl(searchContent); if (string.IsNullOrWhiteSpace(result.Item2))//输入了无效的url { ShowNoticeFlyout("输入了无效的url"); return; } SearchProgress(); try { switch (result.Item1) { case UrlType.Bv: var video1 = await BiliVideoHelper.GetVideoMasterAsync(result.Item2, Settings.SESSDATA); SearchPage.Current.HandleMaster <BiliVideoMasterResultPage, BiliVideoMaster>(video1); Reset(); break; case UrlType.Av: var video2 = await BiliVideoHelper.GetVideoMasterAsync(long.Parse(result.Item2), Settings.SESSDATA); SearchPage.Current.HandleMaster <BiliVideoMasterResultPage, BiliVideoMaster>(video2); Reset(); break; case UrlType.Ep: var bangumi1 = await BiliBangumiHelper.GetBangumiMasterAsync(long.Parse(result.Item2), Settings.SESSDATA, null); SearchPage.Current.HandleMaster <BiliBangumiMasterResultPage, BiliBangumiMaster>(bangumi1); Reset(); break; case UrlType.Ss: var bangumi2 = await BiliBangumiHelper.GetBangumiMasterAsync(long.Parse(result.Item2), Settings.SESSDATA); SearchPage.Current.HandleMaster <BiliBangumiMasterResultPage, BiliBangumiMaster>(bangumi2); Reset(); break; case UrlType.Mc: var manga = await BiliMangaHelper.GetMangaMasterAsync(long.Parse(result.Item2), Settings.SESSDATA); SearchPage.Current.HandleMaster <BiliMangaMasterResultPage, BiliMangaMaster>(manga); Reset(); break; case UrlType.Error: Reset(); break; default: Reset(); break; } } catch (Exception ex) { Reset(); if (ex is VideoNotFoundException or ArgumentException or UnauthorizedAccessException or ParsingVideoException) { ShowNoticeFlyout(ex.Message); }
public async void searchBtn_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(searchTextbox.Text)) { return; } var sESSDATA = ApplicationData.Current.LocalSettings.Values["biliUserSESSDATA"] as string; searchBtn.IsEnabled = false; searchProgressRing.IsActive = true; searchProgressRing.Visibility = Visibility.Visible; (string, long, UrlType, int)info = (null, 0, 0, 0); try { info = await AnalyzeVideoUrlAsync(searchTextbox.Text, sESSDATA); //分析输入的url,提取bv或者av,是否指定分p } catch (NullReferenceException) { Reset(); var dialog = new ExceptionDialog("未找到视频", XamlRoot); await dialog.ShowAsync(); return; } catch (Exception ex) { Reset(); var dialog = new ExceptionDialog(ex.Message, XamlRoot); await dialog.ShowAsync(); return; } if (info.Item3 == UrlType.BangumiEP)//下载ep番剧 { var bangumi = await BiliVideoHelper.GetBangumiInfoAsync(info.Item4, 0, sESSDATA); var dialog = await BangumiDialog.CreateAsync(bangumi, XamlRoot); Reset(); var result = await dialog.ShowAsync(); if (result == ContentDialogResult.Secondary) { return; } } else if (info.Item3 == UrlType.BangumiSS)//下载ss番剧 { var bangumi = await BiliVideoHelper.GetBangumiInfoAsync(info.Item4, 1, sESSDATA); var dialog = await BangumiDialog.CreateAsync(bangumi, XamlRoot); Reset(); var result = await dialog.ShowAsync(); if (result == ContentDialogResult.Secondary) { return; } } //else if (info.Item3 == UrlType.SingelVideo) //指定了分p的时候,废弃这种用法 //{ // var dialog = await SingleVideoDialog.CreateAsync // (await BiliVideoHelper.GetSingleVideoInfoAsync(info.Item1, info.Item2, 64, sESSDATA)); // Reset(); // var result = await dialog.ShowAsync(); // if (result == ContentDialogResult.Secondary) return; //} else if (info.Item3 == UrlType.MasteredVideo) //下载普通视频集合 { var master = await BiliVideoHelper.GetVideoMasterInfoAsync(info.Item1, sESSDATA); var dialog = await MasteredVideoDialog.CreateAsync(master, XamlRoot); Reset(); var result = await dialog.ShowAsync(); if (result == ContentDialogResult.Secondary) { return; } } else if (info.Item3 == UrlType.MangaMC) //下载漫画 { if (Settings.DownloadPath == null) //检查下载目录是否为空 { Reset(); var dialog = new ErrorDialog("未设置下载储存文件夹,请前往设置以更改", XamlRoot) { PrimaryButtonText = "前往设置" }; var result = await dialog.ShowAsync(); if (result == ContentDialogResult.Secondary) { return; } else { MainPage.ContentFrame.Navigate(typeof(SettingPage)); MainPage.NavView.SelectedItem = MainPage.NavView.SettingsItem; return; } } try { await StorageFolder.GetFolderFromPathAsync(Settings.DownloadPath); } catch (FileNotFoundException) { Reset(); var dialog = new ExceptionDialog("找不到指定下载目录:" + Settings.DownloadPath, XamlRoot); await dialog.ShowAsync(); return; } var master = await BiliMangaHelper.GetBiliMangaMasterAsync(info.Item4, sESSDATA); Reset(); var mangaFrame = new Frame(); var mangaWindow = new Window { ExtendsContentIntoTitleBar = true, Content = mangaFrame }; mangaWindowDic.Add(master, mangaWindow); mangaFrame.Navigate(typeof(MangaDownloadPage), master); mangaWindow.Activate(); } else { Reset(); var dialog = new ContentDialog() { Content = "解析失败,没有找到合适的下载方法" }; await dialog.ShowAsync(); } }