public override void Start() { var fileContent = ""; using (var sr = new StreamReader(Settings.Path)) { fileContent = sr.ReadToEnd(); } var matches = _reg.Matches(fileContent); if (matches.Count == 0) { return; } _total = _total + matches.Count; ImapEvent?.Invoke(this, $"A: {_activatedCount}, P: {_processedCount}, T: {_total}"); foreach (Match match in matches) { var url = match.Value; var parsedUrl = new ParsedUrl { Url = url, Status = StatusType.Pending }; Interlocked.Increment(ref _processedCount); parsedUrl.AddLog(LoggerTypes.Success, $"Added url {url}"); ParsedUrls.Add(parsedUrl); OnParsedLinkEvent(this, parsedUrl); ActivateQueue.AddToQueue(parsedUrl, Callback); } ImapEvent?.Invoke(this, $"A: {_activatedCount}, P: {_processedCount}, T: {_total}"); }
private async void Callback(ParsedUrl parsedUrl) { if (!parsedUrl.Verified) { ActivateQueue.AddToQueue(parsedUrl, Callback); ProxyHandlerSingleton.Instance.IncreaseFailCounter(parsedUrl.Proxy); } else if (_worker.Client.IsConnected && _worker.Client.IsAuthenticated) { try { try { await _worker.Client.Inbox.OpenAsync(FolderAccess.ReadWrite); } catch (Exception e) { parsedUrl.AddLog(LoggerTypes.Exception, $"Marked Uid {parsedUrl.Uid} as seen", e); } Interlocked.Increment(ref _activatedCount); await _worker.Client.Inbox.AddFlagsAsync(parsedUrl.Uid, MessageFlags.Seen, true); parsedUrl.AddLog(LoggerTypes.Debug, $"Marked Uid {parsedUrl.Uid} as seen"); parsedUrl.Proxy = null; } catch (Exception e) { parsedUrl.AddLog(LoggerTypes.Exception, $"Marked Uid {parsedUrl.Uid} as seen", e); } } }
private void Callback(ParsedUrl parsedUrl) { if (!parsedUrl.Verified) { ActivateQueue.AddToQueue(parsedUrl, Callback); ProxyHandlerSingleton.Instance.IncreaseFailCounter(parsedUrl.Proxy); } else { Interlocked.Increment(ref _activatedCount); parsedUrl.AddLog(LoggerTypes.Debug, $"{parsedUrl.Url} was verified"); } }
private void WorkerOnParsedLinkEvent(object sender, ParsedUrlEventArgs parsedUrlEventArgs) { var parsedUrl = new ParsedUrl { Url = parsedUrlEventArgs.ParsedUrl, Uid = parsedUrlEventArgs.UniqueId, Status = StatusType.Pending }; parsedUrl.AddLog(LoggerTypes.Success, $"URL TO: {parsedUrlEventArgs.To}, FROM: {parsedUrlEventArgs.From}"); ParsedUrls.Add(parsedUrl); OnParsedLinkEvent(this, parsedUrl); ActivateQueue.AddToQueue(parsedUrl, Callback); }
private async void Callback(ParsedUrl parsedUrl) { if (!parsedUrl.Verified) { ActivateQueue.AddToQueue(parsedUrl, Callback); ProxyHandlerSingleton.Instance.IncreaseFailCounter(parsedUrl.Proxy); } else { var wasOpen = true; try { try { if (!_worker.Client.IsConnected) { await _worker.Client.ConnectAsync(_worker.EmailUrlParserConfiguration.GetUri()) .ConfigureAwait(false); } if (!_worker.Client.IsAuthenticated) { await _worker.Client.AuthenticateAsync(_worker.EmailUrlParserConfiguration.GetCredential()); } if (!_worker.Client.Inbox.IsOpen) { wasOpen = false; await _worker.Client.Inbox.OpenAsync(FolderAccess.ReadWrite); } } catch (Exception e) { parsedUrl.AddLog(LoggerTypes.Exception, $"Failed to activate {parsedUrl.Uid}", e); } Interlocked.Increment(ref _activatedCount); await _worker.Client.Inbox.AddFlagsAsync((UniqueId)parsedUrl.Uid, MessageFlags.Seen, true); parsedUrl.AddLog(LoggerTypes.Debug, $"Marked Uid {parsedUrl.Uid} as seen"); parsedUrl.Proxy = null; } catch (Exception e) { parsedUrl.AddLog(LoggerTypes.Exception, $"Failed to activate {parsedUrl.Uid}", e); } } }