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); } } }
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}"); }
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()); }
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); }