Exemplo n.º 1
0
 private void Log(LoadedArticle article)
 {
     this.Dispatcher.Invoke(() =>
     {
         tbLog.AppendText(String.Format("{0}: {1}", article.PublishDate, article.Title));
         tbLog.AppendText("\r\n");
         tbLog.ScrollToEnd();
     });
 }
Exemplo n.º 2
0
        public void Save(LoadedArticle article)
        {
            var folderPath = PreparePath(article.PublishDate);
            var fileName   = GetFileName(article);
            var fullPath   = Path.Combine(folderPath, fileName);

            var s = new XmlSerializer(typeof(LoadedArticle));

            using (var stream = File.OpenWrite(fullPath))
            {
                s.Serialize(stream, article);
            }
        }
Exemplo n.º 3
0
        public void TestMethod1()
        {
            var fds     = new FinamDataSaver(@"C:\");
            var article = new LoadedArticle()
            {
                Author      = "Автор",
                Company     = "Компания",
                PublishDate = DateTime.Now,
                Title       = "Заголовок",
                Content     = "Содержание страницы!"
            };

            fds.Save(article);
        }
Exemplo n.º 4
0
        private string GetFileName(LoadedArticle article)
        {
            byte[] hash;
            using (MD5 md5 = MD5.Create())
            {
                hash = md5.ComputeHash(Encoding.UTF8.GetBytes(article.Content));
            }

            var sb = new StringBuilder();

            for (int i = 0; i < hash.Length; i++)
            {
                sb.Append(hash[i].ToString("x2"));
            }

            return(sb + ".xml");
        }
Exemplo n.º 5
0
        private async void LoadArticleContent(LoadedArticle item)
        {
            grLoading.Visibility = Visibility.Visible;
            grMain.IsEnabled     = false;

            SelectedArticle = item;
            SetDirection(Trend.Unknown);
            SetWeight(int.MinValue);
            rtbArticleContent.Document = RichTextBoxHelper.LoadText(item.Content);
            var needFindMatch = cbCheckAutomatically.IsChecked.HasValue && cbCheckAutomatically.IsChecked.Value;

            Pattern pattern = null;

            if (needFindMatch)
            {
                ctrAnimation.AnimationText = "Searching for patterns ...";
                await Task.Run(() =>
                {
                    pattern = FindMatch();
                });
            }

            if (pattern != null)
            {
                HighlightMatch(pattern.Regex, pattern.Trend);
                tbRegexPattern.Text = pattern.RawRegexText;
                SetDirection(pattern.Trend);
                SetWeight(pattern.Weight);
            }

            if (cbFindMarket.IsChecked.Value)
            {
                HighlightMatch(new Regex(BeforeOpeningPatternsKeeper.Market), Colors.Blue, true);
            }

            if (cbFindExpect.IsChecked.Value)
            {
                HighlightMatch(new Regex(BeforeOpeningPatternsKeeper.Expect), Colors.DarkOrange, true);
            }

            grLoading.Visibility = Visibility.Hidden;
            grMain.IsEnabled     = true;
        }
Exemplo n.º 6
0
        public LoadedArticle LoadArticle(ArticleListItem listItem, DateTime day)
        {
            var url = FinamUrl + listItem.Url;

            var loadedArticle = new LoadedArticle
            {
                Author  = listItem.Author,
                Company = listItem.Company,
                Url     = url
            };

            var wc = new WebClient {
                Encoding = Encoding.GetEncoding("windows-1251")
            };
            var pageContent = wc.DownloadString(url);

            var extractedInfo = new ArticleInfoExtractor(pageContent).Extract();

            loadedArticle.Title       = extractedInfo.Title;
            loadedArticle.Content     = extractedInfo.Content;
            loadedArticle.PublishDate = extractedInfo.PublishedDate ?? day;

            return(loadedArticle);
        }