public function actionRecent() { $startAll = microtime(true); $discusComponent = Yii::app()->disqusComments; /** @var EDisqusComments $discusComponent */ $lastUpdate = DisqusComments::getLastUpdateTime(); $interval = DisqusInterval::getIntervalBySeconds(time() - $lastUpdate); $urls = $discusComponent->loadRecentThreads($interval); echo "searching for updates by last {$interval} \n"; if (!empty($urls)) { foreach ($urls as $url) { $start = microtime(true); $commentsPage = DisqusComments::findByUrl($url, true, 'syncComments'); /* 'true' is for create if not exist */ $commentsFromApi = $discusComponent->loadCommentsByUrl($commentsPage->page_url); if (is_array($commentsFromApi) && !empty($commentsFromApi)) { $comments = EDisqusComments::formatComments($commentsFromApi); $commentsHierarchy = EDisqusComments::sortCommentsByHierarchy($comments); $commentsPage->comments_block = json_encode($commentsHierarchy); $commentsPage->update_time = time(); $commentsPage->save(); } echo 'generated for ' . $commentsPage->page_url . ' in '; echo microtime(true) - $start . " seconds. \n"; } $finishAll = microtime(true); \Yii::app()->setGlobalState('DisqusComments', $finishAll); echo 'generated ALL in '; echo $finishAll - $startAll . " seconds. \n"; } else { echo "nothing to update \n"; } }
public function actionFromCSV($filePath) { $startAll = microtime(true); $pageUrlArray = UrlMap::getUrlArrayFromMap($filePath); foreach ($pageUrlArray as $url) { $disqusComments = DisqusComments::findByUrl($url, true, 'updateUrls'); $disqusComments->save(); } echo 'updated ALL in '; echo microtime(true) - $startAll . " seconds. \n"; }
public function run() { if (Yii::app()->request->isAjaxRequest) { if (isset($_POST['page_url'])) { $url = $_POST['page_url']; $disqusComponent = Yii::app()->disqusComments; /** @var EDisqusComments $disqusComponent */ $duration = $disqusComponent->queryCacheDuration; $dependency = new \CGlobalStateCacheDependency('DisqusComments'); $comments = DisqusComments::model()->cache($duration, $dependency)->findByAttributes(array('page_url' => $url)); if (!isset($comments)) { DisqusComments::saveNewUrl($url); } echo EDisqusComments::createCommentsJSON($comments->comments_block); } } }
public function run() { $disqusComponent = Yii::app()->disqusComments; /** @var EDisqusComments $disqusComponent */ $commentsBlock = $disqusComponent->getCache('commentBlock_' . md5($this->pageUrl)); if ($commentsBlock === false) { $duration = $disqusComponent->queryCacheDuration; $dependency = new \CGlobalStateCacheDependency('DisqusComments'); $disqusComments = DisqusComments::model()->cache($duration, $dependency)->findByAttributes(array('page_url' => $this->pageUrl)); if (isset($disqusComments)) { $comments = json_decode($disqusComments->comments_block); $commentsBlock = EDisqusComments::createCommentsHTML($comments); } else { $commentsBlock = ''; if ($disqusComponent->autoUpdateMap && !empty($this->pageUrl)) { DisqusComments::saveNewUrl($this->pageUrl); } } $disqusComponent->setCache('commentBlock_' . md5($this->pageUrl), $commentsBlock); } $this->render('disqusCommentsWidget', array('commentsBlock' => $commentsBlock, 'apiKey' => $disqusComponent->apiKey, 'shortName' => $disqusComponent->shortName)); }