Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Job/Feeder.php
<?php

namespace XF\Job;

class
Feeder extends AbstractJob
{
    protected
$defaultData = [
       
'steps' => 0
   
];

    public function
run($maxRunTime)
    {
       
$start = microtime(true);

       
$this->data['steps']++;

       
/** @var \XF\Repository\Feed $feedRepo */
       
$feedRepo = $this->app->repository('XF:Feed');

       
/** @var \XF\Service\Feed\Feeder $feederService */
       
$feederService = $this->app->service('XF:Feed\Feeder');

       
/** @var \XF\Entity\Feed[]|\XF\Mvc\Entity\ArrayCollection $dueFeeds */
       
$dueFeeds = $feedRepo->findDueFeeds()->fetch();
        if (!
$dueFeeds->count())
        {
            return
$this->complete();
        }

        foreach (
$dueFeeds AS $feed)
        {
            if (
microtime(true) - $start >= $maxRunTime)
            {
                break;
            }

            if (!
$feed->Forum)
            {
                continue;
            }

            if (
$feederService->setupImport($feed) && $feederService->countPendingEntries())
            {
               
$feederService->importEntries();
            }
        }

        return
$this->resume();
    }

    public function
getStatusMessage()
    {
       
$actionPhrase = \XF::phrase('fetching');
       
$typePhrase = \XF::phrase('registered_feeds');
        return
sprintf('%s... %s %s', $actionPhrase, $typePhrase, str_repeat('. ', $this->data['steps']));
    }

    public function
canCancel()
    {
        return
false;
    }

    public function
canTriggerByChoice()
    {
        return
false;
    }
}