Пример #1
0
        public void Start()
        {
            if (_feed == null)
            {
                if (String.IsNullOrEmpty(FeedLink))
                {
                    throw new Exception("Both Feed and FeedLink cant be empty/not set");
                }
                _feed = DownloadFeed(FeedLink);
            }

            if (DownloadedLinks == null || !DownloadedLinks.Any())
            {
                DownloadedLinks = File.Exists(_downloadLinksFile) ? File.ReadAllLines(_downloadLinksFile).ToList() : new List <string>();
            }

            foreach (string linkToDownload in UrlToDownload())
            {
                try
                {
                    DownloadTorrent(TorrentApplication, linkToDownload);
                }
                catch (Exception ex)
                {
                    Logging.Log.Error(ex);
                }
            }
        }
Пример #2
0
        public async Task WriteData(string text, string url)
        {
            if (FilesCreated >= PAGES || DownloadedLinks.Values.FirstOrDefault(link =>
                                                                               String.Equals(link.Split('?')[0].Trim('/'),
                                                                                             url.Split('?')[0].Trim('/'))) != null)
            {
                return;
            }

            var name = FilesCreated + 1;

            FilesCreated++;

            var fileName = $"{DIRECTORY_NAME}\\page{name}.txt";

            using (StreamWriter writer = File.CreateText(fileName))
            {
                await writer.WriteAsync(text);
            }

            bool added = false;

            while (!added)
            {
                added = DownloadedLinks.TryAdd(name.ToString(), url);
            }

            Console.WriteLine($"page{name} - {url}");
        }
Пример #3
0
        private void WriteIndexFile()
        {
            var sb = new StringBuilder();
            var pairs
                = DownloadedLinks.OrderBy(pair => int.Parse(pair.Key));

            foreach (var pair in pairs)
            {
                sb.AppendLine(pair.Key + ": " + pair.Value);
            }

            File.WriteAllText(INDEX_FILE_NAME, sb.ToString());
        }
Пример #4
0
 public void DownloadTorrent(string programPath, string link)
 {
     Logging.Log.DebugFormat("Hitting application {0} with parameter {1}", programPath, link);
     Process.Start(programPath, link);
     DownloadedLinks.Add(link);
 }