示例#1
0
        private void OnHandlerStart()
        {
            foreach (var job in _jobs.GetConsumingEnumerable(CancellationToken.None))
            {
                if (job.StartsWith("http://www") || job.StartsWith("https://www"))
                {
                    _logger.LogInformation("Processing job: " + job);
                    Shotter shotter = new Shotter(_windowSize);

                    ScreenShotSaver ssSaver = new ScreenShotSaver(_dbConfig[0], _dbConfig[1], _dbConfig[2]);

                    try
                    {
                        ScreenShotData ssData = new ScreenShotData
                        {
                            Url          = job,
                            Date         = DateTime.UtcNow,
                            ContentImage = shotter.TakeScreenshot(job)
                        };
                        ssSaver.Create(ssData);
                        _logger.LogInformation("Successfully imported job: " + job);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex.Message);
                    }
                    finally
                    {
                        shotter.Dispose();
                    }
                }
            }
        }
示例#2
0
        private void OnHandlerStart()
        {
            foreach (var rJob in _jobs.GetConsumingEnumerable(CancellationToken.None))
            {
                _logger.LogInformation("Processing job: " + rJob.job);

                ScreenShotSaver ssSaver = new ScreenShotSaver(_dbConfig[0], _dbConfig[1], _dbConfig[2]);
                IOUtil          ioUtil  = new IOUtil();

                try
                {
                    List <ScreenShotData> result;

                    if (rJob.type == 1)
                    {
                        result = ssSaver.GetByUrl(rJob.job);
                    }
                    else
                    {
                        string   minDateStr = rJob.job.Substring(0, rJob.job.IndexOf('-', 10));
                        string   maxDateStr = rJob.job.Substring(minDateStr.Length + 1);
                        DateTime minDate    = DateTime.ParseExact(minDateStr, "yyyy-MM-dd HH:mm", null);
                        DateTime maxDate    = DateTime.ParseExact(maxDateStr, "yyyy-MM-dd HH:mm", null);

                        result = ssSaver.GetByDateInterval(minDate, maxDate);
                    }

                    if (result.Count > 0)
                    {
                        string  outputFolder = ioUtil.CleanInputAndCreteDirectory(_imagesDirectory, rJob.job);
                        Shotter shotter      = new Shotter();
                        foreach (var item in result)
                        {
                            shotter.SaveAsFile(outputFolder + "/" + item.Id.ToString() + ".png", item.ContentImage);
                        }
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex.Message);
                }
            }
        }