Exemple #1
0
 public function procede()
 {
     if (!$this->oRequest->existParam('key')) {
         throw new Error('Vous devez renseigner la clé.', 3003);
     }
     if ($this->oRequest->getParam('key', 'string') != Config::get('ingestkey')) {
         throw new Error('La clé est invalide.', 3003);
     }
     //Ajoute du titre
     $this->oView->addData('titre', 'Analyse des flux RSS');
     //On récupère les éléments pour les statistiques
     $iNbReleases = Release::getCount();
     $iNbTorrents = Torrent::getCount();
     $iStartTime = time();
     //Traitement des Trackers
     $aTrackers = Tracker::getTrackers();
     //Ajout des flux
     $aRssList = Rss::getFlux();
     foreach ($aRssList as $oRss) {
         $aTrackers[$oRss->getTrackerId()]->addFlux($oRss);
     }
     //Parsage des flux
     $aResults = array();
     foreach ($aTrackers as $oTracker) {
         $aResults = array_merge($aResults, $oTracker->parseRss());
     }
     //Traitement des résultats
     $oTable = new TableGenerator();
     $oTable->setId(md5('Ingest'));
     $oTable->addColumn('Tags');
     $oTable->addColumn('Tracker');
     $oTable->addColumn('Release');
     foreach ($aResults as $oResult) {
         if (is_string($oResult)) {
             Logger::log('ingest', $oResult);
             $this->oView->addAlert($oResult, 'danger');
         } else {
             $oResult->store();
             $sTags = '';
             foreach ($oResult->getTags() as $oTag) {
                 $oTagView = new View('label');
                 $oTagView->addData('type', 'info');
                 $oTagView->addData('text', $oTag->getName());
                 $oTagView->create();
                 $sTags .= $oTagView->getCode() . ' ';
             }
             $oTable->addLine(array($sTags, $aTrackers[$oResult->getTracker()]->getName(), $oResult->getReleaseName()));
         }
     }
     //Statistiques
     $iNewReleases = Release::getCount() - $iNbReleases;
     $iNewTorrents = Torrent::getCount() - $iNbTorrents;
     Stats::storeIngestStats($iNewReleases, $iNewTorrents, date("Y-m-j G:i:s", $iStartTime));
     //Enregistrement de la dernière date de vérification
     Rss::updateLastCheck(date("Y-m-j G:i:s", $iStartTime));
     Logger::log('ingest', $iNewReleases . ' nouvelles releases et ' . $iNewTorrents . ' nouveaux torrents.');
     $oTable->setBottom($iNewReleases . ' nouvelles releases et ' . $iNewTorrents . ' nouveaux torrents.');
     $oTable->create();
     $this->oView->addData('content', $oTable->getCode());
     $this->oView->Create();
 }
Exemple #2
0
 private function createView()
 {
     $this->oView->addData('titre', Language::translate('RSS_ADMIN_TABLE_TITLE'));
     $oTable = new TableGenerator();
     $oTable->setId(md5('rss'));
     $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_TRACKER'));
     $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_URL'));
     $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_ENCODE'));
     $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_DATE'));
     $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_MASK'));
     $oTable->addColumn('');
     $aRss = Rss::getFlux();
     $aTrackers = Tracker::getTrackersSelect();
     $aCategories = Categorie::getCategoriesSelect();
     foreach ($aRss as $oRss) {
         $oTable->addLine(array($aTrackers[$oRss->getTrackerId()], $this->createUrlPopup($oRss), $oRss->getEncoding(), $oRss->isForcedate() ? Language::translate('RSS_ADMIN_TABLE_SERVER') : Language::translate('RSS_ADMIN_TABLE_RSS'), $this->createMaskPopup($oRss), $this->createEditPopup($oRss, $aTrackers, $aCategories)));
     }
     $oTable->setBottom($this->createAddPopup($aTrackers, $aCategories));
     $oTable->create();
     $this->oView->addData('content', $oTable->getCode());
     $this->oView->create();
 }