public function __construct() { $this->URLs = array(); $this->currentStep = 0; $queue = SocialQueue::get()->filter('Active', 1)->last(); if ($queue && $queue->exists()) { $this->URLs = isset($queue->URLs) ? json_decode($queue->URLs, true) : array(); $this->totalSteps = count($this->URLs); // stop any further urls being added to this queue $queue->Active = 0; $queue->write(); } }
public function setup() { $this->currentStep = 0; $allUrls = array(); $queues = SocialQueue::get()->filter('Active', 1); foreach ($queues as $queue) { // stop any further urls being added to this queue $queue->Active = 0; $queue->write(); // reload to be sure $queue = SocialQueue::get()->byID($queue->ID); $urls = isset($queue->URLs) ? json_decode($queue->URLs, true) : array(); if (!$urls) { $urls = array(); } $allUrls += $urls; } array_walk($allUrls, function (&$value) { $value = rtrim($value, '/'); }); $this->URLs = $allUrls; $this->totalSteps = count($this->URLs); }
public static function queueURL($url) { // are we locking down the domain $checkDomain = Config::inst()->get('SocialProofSettings', 'check_domain'); if ($checkDomain) { $match = strstr($url, $checkDomain); if ($match === false) { return; } } $queuedUrls = array(); // get the latest queue and add the URL to the queue $queue = SocialQueue::get()->filter('Active', 1)->last(); if ($queue && $queue->exists()) { $queuedUrls = (array) json_decode($queue->URLs, true); } $queuedUrls = (array) $queuedUrls; $queuedUrls[] = $url; if (!$queue || !$queue->exists()) { $queue = new SocialQueue(); } $queue->URLs = json_encode($queuedUrls, true); $queue->write(); }
public function testTwitterServiceAPI() { $request = $this->get('api/countsfor/service/twitter?urls=' . $this->testURL); $this->assertEquals($request->getStatusCode(), 200); $body = $request->getBody(); $socialQueue = SocialQueue::get()->first(); $this->assertEquals($socialQueue->Active, 1); $jsonArray = json_decode($body, true); $results = $jsonArray['results']; $www = $results[$this->testURL]; $this->assertEquals(count($www, true), 3); $facebook = $www['Twitter'][0]; $this->assertEquals($facebook['statuses_count'], 50); // confirm the URL has been requeued $socialQueue = SocialQueue::get()->first(); $this->assertEquals($socialQueue->Active, 1); $urls = json_decode($socialQueue->URLs, true); $this->assertEquals($urls[0], $this->testURL); }
public function testSocialQueue() { $socialQueue = SocialQueue::get()->filter('Active', 1)->last(); $this->assertEquals($socialQueue->URLs, json_encode(array($this->testURL), true)); $this->assertEquals($socialQueue->Active, 1); }