public UGSearch GetSearchResult(BasicSong track, UGType type) { // TODO multi-page support string fullUrl = $"{baseURL}{track.searchString}&type={(int)type}"; this.browser.Navigate().GoToUrl(fullUrl); var mainList = browser.FindElementsByCssSelector("article > div > div"); return(new UGSearch(mainList)); }
public List <UGTab> GetAllTabs(List <BasicSong> allTracks, UGType type) { Directory.CreateDirectory(DIR_NAME); Console.WriteLine($"Getting {allTracks.Count} tabs"); List <UGTab> tabs = new List <UGTab>(); try { foreach (BasicSong track in allTracks) { string fullTrack = $"{track.artist} - {track.title}"; Console.WriteLine($"Searching for tabs for {fullTrack}"); UGSearch searchResults = this.GetSearchResult(track, type); UGSearchResult bestCandidate = searchResults.GetBestResult(); Console.WriteLine($"Getting tab for {fullTrack}"); if (bestCandidate == null) { Console.WriteLine($"No tab found for {fullTrack}"); File.AppendAllText($"{DIR_NAME}/NOT_FOUND.txt", fullTrack + "\n"); } else { UGTab tab = this.GetTab(bestCandidate); tabs.Add(tab); File.WriteAllText($"{DIR_NAME}/{this.FileSafeFileName(tab)}", tab.tab); } } browser.Quit(); return(tabs); } catch { browser.Quit(); throw; } }