public ActionResult VideoSearch(string hosting) { logger.Info($"Got hosting {hosting}"); IParser parser; switch (hosting) { case HostNames.Yandex: parser = new YandexParser(); break; case HostNames.Youtube: parser = new YoutubeParser(); break; default: throw new NotImplementedException(); } var results = parser.Parse(); logger.Info("Results parsed"); SaveToDatabase(results); logger.Info($"Results saved to DB, count is {results.Count}"); return(View(results)); }
public override void TimerTick() { Task.Factory.StartNew(() => { var nextHour = NextHour; var nowHour = GetNowHour(); if (nowHour.BetweenInclude(_updateHours.First(), _updateHours.Last()) && nowHour == nextHour) { YandexParser.UpdatePositions(); _nextHour = GetNextHour(nowHour); } }); }
private static void Parse() { Params.GetParams(); using (StreamWriter sw = new StreamWriter(Directory.GetCurrentDirectory() + "\\db.db", true, System.Text.Encoding.Default, 2048)) { Console.WriteLine(@"[{0}]: Начало итерации", DateTime.Now.ToString()); if (Params.Yandex == 1) { YandexParser.Parse(sw); } Console.Write("10%"); if (Params.Mail == 1) { MailParser.Parse(sw); } Console.Write("20%"); if (Params.AccuWeather == 1) { AccuParser.Parse(sw); } Console.Write("30%"); if (Params.Weather == 1) { WeatherParser.Parse(sw); } Console.Write("40%"); if (Params.GisMeteo == 1) { GismeteoParser.Parse(sw); } Console.Write("50%"); if (Params.Fobos == 1) { FobosParser.Parse(sw); } Console.Write("60%"); if (Params.Foreca == 1) { ForecaParser.Parse(sw); } Console.WriteLine("100%"); Console.WriteLine(@"[{0}]: Итерация закончена", DateTime.Now.ToString()); } }
private static void CourseLInks() { var courses = new SpecialistDataContext().Courses .Where(x => x.IsActive && x.UrlName != null && !x.IsTrack.GetValueOrDefault()) .Select(x => new { x.Course_TC, x.UrlName }).ToList().Select(x => Tuple.Create(x, "http://www.specialist.ru/course/" + x.UrlName)); var url = "https://siteexplorer.search.yahoo.com/export;_ylt=A0oG7zEOG5xOZc8AUFfbl8kF?p={0}&bwm=i&fr=sfp"; var doneUrls = Directory.GetFiles("links").Select(Path.GetFileName).ToList(); var courses2 = courses.Where(x => !doneUrls.Contains(x.Item1.UrlName)).ToList(); foreach (var course in courses2) { var fullurl = url.FormatWith(HttpUtility.UrlEncode(course.Item2)); var text = YandexParser.GetHtml(fullurl); File.WriteAllText("links/" + course.Item1.UrlName, text); } }
public override void TimerTick() { var db = YandexParser.GetYandexCompetitorDB(); if (db.Items.Count > 0 && db.Items.First().Date == DateTime.Today) { return; } Task.Factory.StartNew(() => { for (int i = 0; i < Phrases.YandexCompetitors.Count; i++) { var competitor = YandexParser.GetYandexCompetitors(i); db.Add(competitor); Thread.Sleep(60000); } db.Save(); }); }
public ActionResult Competitors(int?phraseId) { if (phraseId.HasValue) { var positions = YandexParser.GetSavedPositions().Where(x => x.PhraseId == phraseId); var model = new JsTableVM { Title = Phrases.ForCompetitors[phraseId.Value - 1], Columns = { { "Дата", "date-rus" }, { "1", null }, { "2", null }, { "3", null } }, Rows = positions.Select(x => { var sites = x.Sites.Split(','); return(_.List <object>( x.Date.ToString("dd.MM.yy HH:mm"), sites.ElementAtOrDefault(0), sites.ElementAtOrDefault(1), sites.ElementAtOrDefault(2))); }) }; return(View(ViewNames.JsTable, model)); } return(View()); }
public ActionResult SeCompetitors() { var db = YandexParser.GetYandexCompetitorDB(); var model = new JsTableVM { Columns = { { "Дата", "date-rus" }, { "Фраза", null }, { "Директ", null }, { "Яндекс", null }, { "AdWords", null }, { "Google", null } }, Title = "Конкуренты", Rows = db.Items.Select(x => _.List <object>( x.Date.ToString("dd.MM.yy"), Phrases.YandexCompetitors[x.PhraseId], x.Direct.JoinWith("<br/>"), GetList(x.YandexSearch), x.AdWords.JoinWith("<br/>"), GetList(x.GoogleSearch) )) }; return(View(ViewNames.JsTable, model)); }