/** * Checks whether the given source is fresh, meaning it doesn't need revisiting right now. * * @param SourceInterface $source * * @return bool */ protected function isFresh(SourceInterface $source) { $lastVisitDate = $source->getDatetimeLastVisited(); // no previous visit date, consider it stale if (null === $lastVisitDate) { return false; } $revisitDate = clone $lastVisitDate; $revisitDate->modify(sprintf('+%d hours', $source->getScraper()->getRevisitFrequency())); return $revisitDate > new \DateTime(); }