private ILibraryRequest CreateWebLibrary(string url, CssSelector selector) { if (string.IsNullOrWhiteSpace(url)) { throw new ArgumentNullException("url"); } return(new WebLibrary(url.Trim(), new HtmlAlbumParser(selector))); }
public HtmlAlbumParser(CssSelector cssSelector) { if (cssSelector == null) { throw new ArgumentNullException("cssSelector"); } if (string.IsNullOrWhiteSpace(cssSelector.AlbumElement)) { throw new ArgumentNullException("cssSelector.AlbumElement"); } if (string.IsNullOrWhiteSpace(cssSelector.ArtistElement)) { throw new ArgumentNullException("cssSelectorArtist"); } SelectorElement = cssSelector; }
static void Main(string[] args) { string search = string.Empty; // Адрес ресурса, к которому выполняется запрос string url = "https://www.last.fm/ru/music/{0}/+albums"; // селектор для поиска в ответе var cssSelector = new CssSelector() { ArtistElement = ".header-title a", AlbumElement = ".album-grid-item-title a" }; Console.WriteLine("Добро пожаловать на LAST.FM\n"); var controller = new LibraryController(url, cssSelector); do { try { search = GetArtistNameForSearch(); Console.WriteLine($"\nРезультат поиска \"{search}\":\n"); var results = controller.OutputResult(search); foreach (var item in results) { Console.WriteLine(item); } Console.Write("\nДля завершения работы, нажмите 0.\nДля продолжения нажмите Enter: "); } catch (Exception e) { Console.WriteLine(e.Message); } } while (IsFinish()); }
public LibraryContext(string url, CssSelector cssSelector) { State = new WebLibrary(url, new HtmlAlbumParser(cssSelector)); }
public LibraryController(string url, CssSelector selector) { var webLibrary = CreateWebLibrary(url, selector); CashLibrary = new CashXmlLibrary(webLibrary, new XmlAlbumParser(FilePathCash)); }