/// <summary> /// Fetch the epub file for the given book and write it to the standard RoseGarden/Downloads folder. /// If desired, fetch the image file and also write it to the standard RoseGarden/Downloads folder. /// Also write the catalog entry as a single-entry OPDS catalog file. /// </summary> private void FetchBook(XmlElement entry) { var pathEpub = ComputeEpubPathFromEntryTitle(entry); var pathImage = Path.ChangeExtension(pathEpub, "jpg"); var pathOpds = Path.ChangeExtension(pathEpub, "opds"); var obsolete = false; if (File.Exists(pathOpds)) { obsolete = IsExistingDownloadObsolete(entry, pathOpds); } if (!File.Exists(pathEpub) || !File.Exists(pathOpds) || obsolete) { _opdsClient.DownloadBook(entry, "epub", _feedTitle, pathEpub); if (_options.DownloadImage) { _opdsClient.DownloadImage(entry, pathImage); } _opdsClient.WriteCatalogEntryFile(_rootCatalog, entry, pathOpds); } else { Console.WriteLine("INFO: skipping download of \"{0}\" because we apparently already have it.", Path.GetFileName(pathEpub)); } }
public int DownloadBook(XmlElement bookEntry, string type) { string path; if (String.IsNullOrEmpty(_options.OutputFile)) { path = Path.Combine(OpdsClient.DownloadFolder, Program.SanitizeNameForFileSystem(_options.BookTitle) + "." + type); } else { path = _options.OutputFile; if (type == "pdf") { path = Path.ChangeExtension(path, type); } } return(_opdsClient.DownloadBook(bookEntry, type, _feedTitle, path)); }