public override IEnumerable <object> Invoke(object argument, Context context)
        {
            var metadataBuilder = new StringBuilder();

            metadataBuilder.AppendLine("=====================");
            foreach (var entry in context.Metadata)
            {
                metadataBuilder.AppendFormat("{0}:{1}\n", entry.Key, entry.Value);
            }

            var path = comicPath.DownloadPathFor(context.ComicId, context.ComicId + ".txt");

            file.AppendAllText(path, metadataBuilder.ToString());

            return(null);
        }
Esempio n. 2
0
        private string[] Download(IEnumerable <Uri> links, Context context)
        {
            var downloadedFiles = new List <string>();

            foreach (var link in links)
            {
                var downloadPath = comicPath.DownloadPathFor(context.ComicId, link);

                ReportStripDownloading(link, downloadPath, context);
                if (
                    file.Exists(comicPath.DownloadPathForPreviousIndex(context.ComicId, link)) ||
                    file.Exists(downloadPath)
                    )
                {
                    ReportStripAlreadyDownloaded(link, context);
                    continue;
                }

                try
                {
                    downloader.Download(link, downloadPath);
                }
                catch (WebException ex)
                {
                    Warn(context, ex.Message);
                    continue;
                }

                downloadedFiles.Add(downloadPath);
                ReportStripDownloaded(link, context);

                EmbedMetadataIfEnabled(downloadPath, context);

                Sleep(context);
            }

            return(downloadedFiles.ToArray());
        }