Esempio n. 1
0
        private TaskMessageCollectorCache ToCache8(Task arg2)
        {
            var arg1   = new TaskMessageCollectorCache();
            var access = BCT.Context.BulletinDb.Accesses.Find(arg2.AccessId);

            if (access != null)
            {
                arg1.AccessId    = access.Id;
                arg1.Login       = access.Login;
                arg1.Password    = access.Password;
                arg1.LastMessage = access.LastMessage;
            }
            return(arg1);
        }
Esempio n. 2
0
        static void TestCollectMessages()
        {
            var avito = new Avito();
            var task  = new TaskMessageCollectorCache
            {
                AccessId = new Guid("7D4D06F2-8C3A-4E7B-82A2-A815427BB7A2"),
                Login    = "******",
                Password = "******"
            };

            FirefoxHelper.ExecuteWithVisual(browser =>
            {
                browser.Navigate().GoToUrl("https://www.avito.ru/moskva/bytovaya_elektronika");
                var msgs = avito.CollectMessages(browser, task);
                if (msgs.Any())
                {
                    var access         = AccessHelper.GetAccess(task.AccessId);
                    access.LastMessage = msgs.Max(q => q.PublicationDate);
                    AccessHelper.Save(access);
                    MessageServiceHelper.Save(msgs);
                }
            }, null, 100);
        }
Esempio n. 3
0
        public override IEnumerable <MessageCache> CollectMessages(FirefoxDriver driver, TaskMessageCollectorCache taskModel)
        {
            var result = Enumerable.Empty <MessageCache>();

            try
            {
                if (!Auth(driver, taskModel.Login, taskModel.Password))
                {
                    return(result);
                }

                //Сбор сообщений
                var messages = new List <MessageCache>();
                driver.Navigate().GoToUrl($"http://www.avito.ru/profile/messenger");
                WaitPage(driver, 10000, $"www.avito.ru/profile/messenger");
                var pageSource = driver.PageSource;

                var commonPattern   = "class=\"messenger-channel([\\s\\S\\r\\n]*?messenger-channel-text-overflow[\\s\\S\\r\\n]*?)</div>";
                var datetimePattern = "class=\"messenger-channel-datetime\"[\\s\\S\\r\\n]*?datetime=\"(.*?)\"";
                var textPattern     = "messenger-channel-text-overflow[\\s\\S\\r\\n]*?<span>(.*?)</span>";
                var textPattern2    = "messenger-channel-text-overflow[\\s\\S\\r\\n]*?<!-- react-text: \\d+ -->(.*?)<!-";

                var matches = RegexHelper.Execute(commonPattern, pageSource);
                foreach (var match in matches)
                {
                    var messageSource = match.Value;

                    var datetimeStr = RegexHelper.GetValue(datetimePattern, messageSource);
                    var datetime    = DateTime.Parse(datetimeStr);
                    if (taskModel.LastMessage != null && datetime < taskModel.LastMessage)
                    {
                        continue;
                    }

                    var text = RegexHelper.GetValue(textPattern, messageSource);
                    if (string.IsNullOrEmpty(text))
                    {
                        text = RegexHelper.GetValue(textPattern2, messageSource);
                    }
                    if (string.IsNullOrEmpty(text))
                    {
                        text = messageSource;
                    }
                    var cache = new MessageCache();
                    cache.AccessId        = taskModel.AccessId;
                    cache.Text            = text;
                    cache.PublicationDate = datetime;

                    messages.Add(cache);
                }

                result = messages;
            }
            catch (Exception ex)
            {
            }
            return(result);
        }