public void ShowTorrentSearch(DownloadSearchCriteria crit) { this.Cursor = Cursors.Wait; tabControl1.SelectedIndex = TAB_MAIN_Downloads; tabcDownloads.SelectedIndex = 1; ucTorrentSearch.PerformSearch(crit); this.Cursor = Cursors.Arrow; }
private void CommandBinding_ShowTorrentSearch(object sender, ExecutedRoutedEventArgs e) { //object obj = lbGroupsSeries.SelectedItem; object obj = e.Parameter; if (obj == null) return; try { if (obj.GetType() == typeof(AnimeEpisodeVM)) { AnimeEpisodeVM ep = (AnimeEpisodeVM)obj; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Episode, ep); ShowTorrentSearch(crit); } if (obj.GetType() == typeof(MissingEpisodeVM)) { MissingEpisodeVM rec = obj as MissingEpisodeVM; if (rec == null) return; JMMServerBinary.Contract_AnimeEpisode contract = JMMServerVM.Instance.clientBinaryHTTP.GetEpisodeByAniDBEpisodeID(rec.EpisodeID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); if (contract != null) { DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Episode, new AnimeEpisodeVM(contract)); ShowTorrentSearch(crit); } } /*if (obj.GetType() == typeof(MissingFileVM)) { MissingFileVM mis = (MissingFileVM)obj; ShowPinnedSeries(mis.AnimeSeries); }*/ if (obj.GetType() == typeof(RecommendationVM)) { RecommendationVM rec = obj as RecommendationVM; if (rec == null) return; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Series, rec.Recommended_AniDB_Anime); ShowTorrentSearch(crit); } if (obj.GetType() == typeof(AniDB_AnimeVM)) { AniDB_AnimeVM anime = (AniDB_AnimeVM)obj; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Series, anime); ShowTorrentSearch(crit); } if (obj.GetType() == typeof(AnimeSeriesVM)) { AnimeSeriesVM ser = (AnimeSeriesVM)obj; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Series, ser.AniDB_Anime); ShowTorrentSearch(crit); } if (obj.GetType() == typeof(AniDB_Anime_SimilarVM)) { AniDB_Anime_SimilarVM sim = (AniDB_Anime_SimilarVM)obj; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Series, sim.AniDB_Anime); ShowTorrentSearch(crit); } if (obj.GetType() == typeof(AniDB_Anime_RelationVM)) { AniDB_Anime_RelationVM rel = (AniDB_Anime_RelationVM)obj; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Series, rel.AniDB_Anime); ShowTorrentSearch(crit); } if (obj.GetType() == typeof(BookmarkedAnimeVM)) { BookmarkedAnimeVM ba = (BookmarkedAnimeVM)obj; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Series, ba.AniDB_Anime); ShowTorrentSearch(crit); } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
public static List<TorrentLinkVM> SearchTorrents(DownloadSearchCriteria search) { List<string> parms = search.GetParms(); List<TorrentLinkVM> links = new List<TorrentLinkVM>(); List<string> episodeGroupParms = new List<string>(); // get the sources that are in both the selected sources and the default sources // default sources have an order List<TorrentSourceVM> orderedSources = new List<TorrentSourceVM>(); // if only full torrent sites bool onlyFullSites = false; if (search.SearchType == DownloadSearchType.Series) { if (UserSettingsVM.Instance.BakaBTOnlyUseForSeriesSearches && !string.IsNullOrEmpty(UserSettingsVM.Instance.BakaBTUsername) && !string.IsNullOrEmpty(UserSettingsVM.Instance.BakaBTPassword)) { onlyFullSites = true; TorrentSourceVM src = new TorrentSourceVM(TorrentSourceType.BakaBT, true); orderedSources.Add(src); } if (UserSettingsVM.Instance.AnimeBytesOnlyUseForSeriesSearches && !string.IsNullOrEmpty(UserSettingsVM.Instance.AnimeBytesUsername) && !string.IsNullOrEmpty(UserSettingsVM.Instance.AnimeBytesPassword)) { onlyFullSites = true; TorrentSourceVM src = new TorrentSourceVM(TorrentSourceType.AnimeBytes, true); orderedSources.Add(src); } } if (!onlyFullSites) { foreach (TorrentSourceVM src in UserSettingsVM.Instance.SelectedTorrentSources) { foreach (TorrentSourceVM srcCur in UserSettingsVM.Instance.CurrentSearchTorrentSources) { if (srcCur.IsDisabled) continue; if (src.TorrentSource == srcCur.TorrentSource) orderedSources.Add(srcCur); } } // now get any sources that we missed foreach (TorrentSourceVM src in UserSettingsVM.Instance.CurrentSearchTorrentSources) { if (src.IsDisabled) continue; bool foundSource = false; foreach (TorrentSourceVM srcDone in orderedSources) { if (srcDone.TorrentSource == src.TorrentSource) foundSource = true; } if (!foundSource) orderedSources.Add(src); } } foreach (TorrentSourceVM src in orderedSources) { if (src.IsDisabled) continue; if (src.TorrentSource == TorrentSourceType.Nyaa) { TorrentsNyaa nyaa = new TorrentsNyaa(); List<TorrentLinkVM> ttLinks = null; Dictionary<string, TorrentLinkVM> dictLinks = new Dictionary<string, TorrentLinkVM>(); foreach (string grp in episodeGroupParms) { List<string> tempParms = new List<string>(); foreach (string parmTemp in parms) tempParms.Add(parmTemp); tempParms.Insert(0, grp); ttLinks = nyaa.GetTorrents(tempParms); logger.Trace("Searching for: " + search.ToString() + "(" + grp + ")"); // only use the first 10 int x = 0; foreach (TorrentLinkVM link in ttLinks) { if (x == 10) break; dictLinks[link.TorrentDownloadLink] = link; logger.Trace("Adding link: " + link.ToString()); } } logger.Trace("Searching for: " + search.ToString()); ttLinks = nyaa.GetTorrents(parms); foreach (TorrentLinkVM link in ttLinks) { dictLinks[link.TorrentDownloadLink] = link; //logger.Trace("Adding link: " + link.ToString()); } links.AddRange(dictLinks.Values); } if (src.TorrentSource == TorrentSourceType.AnimeSuki) { TorrentsAnimeSuki suki = new TorrentsAnimeSuki(); List<TorrentLinkVM> sukiLinks = suki.GetTorrents(parms); links.AddRange(sukiLinks); } if (src.TorrentSource == TorrentSourceType.BakaBT) { TorrentsBakaBT bakaBT = new TorrentsBakaBT(); List<TorrentLinkVM> bbLinks = bakaBT.GetTorrents(parms); links.AddRange(bbLinks); } if (src.TorrentSource == TorrentSourceType.AnimeBytes) { TorrentsAnimeBytes abytes = new TorrentsAnimeBytes(); List<TorrentLinkVM> abytesLinks = abytes.GetTorrents(parms); links.AddRange(abytesLinks); } if (src.TorrentSource == TorrentSourceType.TokyoToshokanAll || src.TorrentSource == TorrentSourceType.TokyoToshokanAnime) { TorrentsTokyoToshokan tt = new TorrentsTokyoToshokan(src.TorrentSource); List<TorrentLinkVM> ttLinks = null; Dictionary<string, TorrentLinkVM> dictLinks = new Dictionary<string, TorrentLinkVM>(); foreach (string grp in episodeGroupParms) { List<string> tempParms = new List<string>(); foreach (string parmTemp in parms) tempParms.Add(parmTemp); tempParms.Insert(0, grp); ttLinks = tt.GetTorrents(tempParms); logger.Trace("Searching for: " + search.ToString() + "(" + grp + ")"); // only use the first 10 int x = 0; foreach (TorrentLinkVM link in ttLinks) { if (x == 0) break; dictLinks[link.TorrentDownloadLink] = link; //logger.Trace("Adding link: " + link.ToString()); } } logger.Trace("Searching for: " + search.ToString()); ttLinks = tt.GetTorrents(parms); foreach (TorrentLinkVM link in ttLinks) { dictLinks[link.TorrentDownloadLink] = link; //logger.Trace("Adding link: " + link.ToString()); } links.AddRange(dictLinks.Values); } } return links; }
void btnSearch_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(txtSearch.Text)) return; DownloadSearchCriteria crit = new DownloadSearchCriteria(DownloadSearchType.Manual, txtSearch.Text.Trim()); PerformSearch(crit); }
public void PerformSearch(DownloadSearchCriteria crit) { this.Cursor = Cursors.Wait; TorrentSearchStatus = string.Format("Searching..."); try { CurrentSearchCriteria = crit; this.IsEnabled = false; if (crit.SearchType != DownloadSearchType.Manual) { string desc = ""; foreach (string parm in crit.GetParms()) { if (!string.IsNullOrEmpty(desc)) desc += " "; desc += parm; } txtSearch.Text = desc; } SubGroups.Clear(); TorrentLinks.Clear(); ViewTorrentLinks.Refresh(); searchWorker.RunWorkerAsync(crit); } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
public static List <TorrentLinkVM> SearchTorrents(DownloadSearchCriteria search) { List <string> parms = search.GetParms(); List <TorrentLinkVM> links = new List <TorrentLinkVM>(); List <string> episodeGroupParms = new List <string>(); // get the sources that are in both the selected sources and the default sources // default sources have an order List <TorrentSourceVM> orderedSources = new List <TorrentSourceVM>(); // if only full torrent sites bool onlyFullSites = false; if (search.SearchType == DownloadSearchType.Series) { if (UserSettingsVM.Instance.BakaBTOnlyUseForSeriesSearches && !string.IsNullOrEmpty(UserSettingsVM.Instance.BakaBTUsername) && !string.IsNullOrEmpty(UserSettingsVM.Instance.BakaBTPassword)) { onlyFullSites = true; TorrentSourceVM src = new TorrentSourceVM(TorrentSourceType.BakaBT, true); orderedSources.Add(src); } if (UserSettingsVM.Instance.AnimeBytesOnlyUseForSeriesSearches && !string.IsNullOrEmpty(UserSettingsVM.Instance.AnimeBytesUsername) && !string.IsNullOrEmpty(UserSettingsVM.Instance.AnimeBytesPassword)) { onlyFullSites = true; TorrentSourceVM src = new TorrentSourceVM(TorrentSourceType.AnimeBytes, true); orderedSources.Add(src); } } if (!onlyFullSites) { foreach (TorrentSourceVM src in UserSettingsVM.Instance.SelectedTorrentSources) { foreach (TorrentSourceVM srcCur in UserSettingsVM.Instance.CurrentSearchTorrentSources) { if (srcCur.IsDisabled) { continue; } if (src.TorrentSource == srcCur.TorrentSource) { orderedSources.Add(srcCur); } } } // now get any sources that we missed foreach (TorrentSourceVM src in UserSettingsVM.Instance.CurrentSearchTorrentSources) { if (src.IsDisabled) { continue; } bool foundSource = false; foreach (TorrentSourceVM srcDone in orderedSources) { if (srcDone.TorrentSource == src.TorrentSource) { foundSource = true; } } if (!foundSource) { orderedSources.Add(src); } } } foreach (TorrentSourceVM src in orderedSources) { if (src.IsDisabled) { continue; } if (src.TorrentSource == TorrentSourceType.Nyaa) { TorrentsNyaa nyaa = new TorrentsNyaa(); List <TorrentLinkVM> ttLinks = null; Dictionary <string, TorrentLinkVM> dictLinks = new Dictionary <string, TorrentLinkVM>(); foreach (string grp in episodeGroupParms) { List <string> tempParms = new List <string>(); foreach (string parmTemp in parms) { tempParms.Add(parmTemp); } tempParms.Insert(0, grp); ttLinks = nyaa.GetTorrents(tempParms); logger.Trace("Searching for: " + search.ToString() + "(" + grp + ")"); // only use the first 10 int x = 0; foreach (TorrentLinkVM link in ttLinks) { if (x == 10) { break; } dictLinks[link.TorrentDownloadLink] = link; logger.Trace("Adding link: " + link.ToString()); } } logger.Trace("Searching for: " + search.ToString()); ttLinks = nyaa.GetTorrents(parms); foreach (TorrentLinkVM link in ttLinks) { dictLinks[link.TorrentDownloadLink] = link; //logger.Trace("Adding link: " + link.ToString()); } links.AddRange(dictLinks.Values); } if (src.TorrentSource == TorrentSourceType.AnimeSuki) { TorrentsAnimeSuki suki = new TorrentsAnimeSuki(); List <TorrentLinkVM> sukiLinks = suki.GetTorrents(parms); links.AddRange(sukiLinks); } if (src.TorrentSource == TorrentSourceType.BakaBT) { TorrentsBakaBT bakaBT = new TorrentsBakaBT(); List <TorrentLinkVM> bbLinks = bakaBT.GetTorrents(parms); links.AddRange(bbLinks); } if (src.TorrentSource == TorrentSourceType.AnimeBytes) { TorrentsAnimeBytes abytes = new TorrentsAnimeBytes(); List <TorrentLinkVM> abytesLinks = abytes.GetTorrents(parms); links.AddRange(abytesLinks); } if (src.TorrentSource == TorrentSourceType.TokyoToshokanAll || src.TorrentSource == TorrentSourceType.TokyoToshokanAnime) { TorrentsTokyoToshokan tt = new TorrentsTokyoToshokan(src.TorrentSource); List <TorrentLinkVM> ttLinks = null; Dictionary <string, TorrentLinkVM> dictLinks = new Dictionary <string, TorrentLinkVM>(); foreach (string grp in episodeGroupParms) { List <string> tempParms = new List <string>(); foreach (string parmTemp in parms) { tempParms.Add(parmTemp); } tempParms.Insert(0, grp); ttLinks = tt.GetTorrents(tempParms); logger.Trace("Searching for: " + search.ToString() + "(" + grp + ")"); // only use the first 10 int x = 0; foreach (TorrentLinkVM link in ttLinks) { if (x == 0) { break; } dictLinks[link.TorrentDownloadLink] = link; //logger.Trace("Adding link: " + link.ToString()); } } logger.Trace("Searching for: " + search.ToString()); ttLinks = tt.GetTorrents(parms); foreach (TorrentLinkVM link in ttLinks) { dictLinks[link.TorrentDownloadLink] = link; //logger.Trace("Adding link: " + link.ToString()); } links.AddRange(dictLinks.Values); } } return(links); }