Esempio n. 1
0
        public static void Download(
            [ClArgs("url")]
            string url
            )
        {
            var factory = new RssFactory();
            var rssTask = factory.CreateFromUrl(url);
            var rss = rssTask.Result;
            Console.WriteLine("Title: {0}", rss.channel.Title);
            Console.WriteLine("Author: {0}", rss.channel.Author);

            var cast = rss.channel.Items.FirstOrDefault();
            if(cast == null)
            {
                Console.WriteLine("No file to download.");
                return;
            }

            Console.WriteLine("Downloading {0} bytes from {1}.", cast.enclosure.length, cast.enclosure.url);

            var downloader = new FileDownload(cast.enclosure.url, cast.title) { ContentLength = (int)cast.enclosure.length };
            downloader.ChunkSaved += Downloader_ChunkSaved;
            while(!downloader.Complete)
            {
                downloader.DownloadAndSaveChunk().Wait();
            }
            Console.WriteLine("Download complete.");
            downloader.GetCompleteFileStream().Wait();
            Console.WriteLine("File written.");
        }
Esempio n. 2
0
 private static void Downloader_ChunkSaved(FileDownload sender, Podcatcher.Domain.IChunk chunk)
 {
     int remaining = sender.ContentLength - sender.GetBytesSavedCount().Result;
     Console.WriteLine("Downloaded {0} bytes. {1} remaining.", chunk.Length, remaining);
 }