Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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;
            }
        }