public function addVideo($articleId, $url)
 {
     wfProfileIn(__METHOD__);
     if (empty($articleId)) {
         wfProfileOut(__METHOD__);
         return wfMsg('related-videos-error-no-article-id');
     }
     /*
     		$targetTitle = F::build('Title', array($articleId), 'newFromId');
     		if (!$targetTitle->exists()) {
     			wfProfileOut( __METHOD__ );
     			return wfMsg('related-videos-error-unknown', 876462);
     		}
     
     		// check permission
     		$permErrors = $targetTitle->getUserPermissionsErrors( 'edit', F::app()->wg->user );
     		if ($permErrors) {
     			wfProfileOut( __METHOD__ );
     			return wfMsg('related-videos-error-permission-article');
     		}*/
     $videoService = F::build('VideoService');
     $retval = $videoService->addVideo($url);
     if (!is_array($retval)) {
         wfProfileOut(__METHOD__);
         return $retval;
     }
     list($videoTitle, $videoPageId, $videoProvider) = $retval;
     // add to article's whitelist
     //$rvn = F::build( 'RelatedVideosNamespaceData', array( $targetTitle ), 'newFromTargetTitle' );
     $rvn = RelatedVideosNamespaceData::newFromGeneralMessage();
     if (empty($rvn)) {
         $rvn = RelatedVideosNamespaceData::createGlobalList();
     }
     $entry = $rvn->createEntry($videoTitle->getText(), $videoProvider == self::V_WIKIAVIDEO);
     $retval = $rvn->addToList(RelatedVideosNamespaceData::WHITELIST_MARKER, array($entry), $articleId);
     if (is_array($rvn->entries)) {
         $entry = end($rvn->entries);
     }
     if (is_object($retval)) {
         if ($retval->ok) {
             $data = $entry;
             $data['articleId'] = $videoPageId;
             $data['title'] = $videoTitle->getText();
             $data['external'] = $videoProvider == self::V_WIKIAVIDEO;
             wfProfileOut(__METHOD__);
             return $data;
         } else {
         }
     }
     wfProfileOut(__METHOD__);
     return $retval;
 }
	$wiki = WikiFactory::getWikiById( $wgCityId );
	if ( !empty($wiki) && $wiki->city_public == 1 ) {
		$dbname = $wiki->city_dbname;

		echo " ($dbname): \n";

		$total = 0;
		$add = 0;
		$dup = 0;

		$user = User::newFromName('WikiaBot');
		$markers = array( RelatedVideosNamespaceData::WHITELIST_MARKER, RelatedVideosNamespaceData::BLACKLIST_MARKER );

		echo "GlobalList: \n";
		$globalList = RelatedVideosNamespaceData::newFromGeneralMessage();

		// get all global videos
		$globalVideos = array();
		if ( empty($globalList) ) {
			$globalList = RelatedVideosNamespaceData::createGlobalList();
		} else {
			$globalData = $globalList->getData();

			foreach( $markers as $marker ) {
				foreach( $globalData['lists'][$marker] as $video ) {
					$globalVideos[] = $video['title'];
				}
				echo "\tTotal $marker videos: ".count($globalData['lists'][$marker])."\n";
			}
		}
 public function getRVforArticleId($articleId)
 {
     $title = Title::newFromID($articleId);
     $videos = array();
     $oLocalLists = RelatedVideosNamespaceData::newFromTargetTitle($title);
     $oEmbededVideosLists = RelatedVideosEmbededData::newFromTitle($title);
     $oGlobalLists = RelatedVideosNamespaceData::newFromGeneralMessage();
     $blacklist = array();
     foreach (array($oGlobalLists, $oEmbededVideosLists, $oLocalLists) as $oLists) {
         if (!empty($oLists) && $oLists->exists()) {
             $data = $oLists->getData();
             if (isset($data['lists']) && isset($data['lists']['WHITELIST'])) {
                 foreach ($data['lists']['WHITELIST'] as $page) {
                     $videoData = $this->getRelatedVideoData($page);
                     if (isset($videoData['uniqueId'])) {
                         $videos[$videoData['uniqueId']] = $videoData;
                     }
                 }
                 foreach ($data['lists']['BLACKLIST'] as $page) {
                     $videoData = $this->getRelatedVideoData($page);
                     if (isset($videoData['uniqueId'])) {
                         $blacklist[$videoData['uniqueId']] = $videoData;
                     }
                 }
             }
         }
     }
     foreach ($blacklist as $key => $blElement) {
         unset($videos[$key]);
     }
     //uasort( $videos, array( $this, 'sortByDate') );
     //return array_reverse( $videos, true );
     // some magic to preserve keys (shuffle does not preserve them)
     $keys = array_keys($videos);
     shuffle($keys);
     return array_merge(array_flip($keys), $videos);
 }
Exemple #4
0
while ($row = $db->fetchObject($result)) {
    printText("Local Video: ");
    addVideo($videoList, $row->name);
    $total++;
}
// get related videos - RelatedVideos Articles
$result = $db->select(array('page'), array('page_title'), array('page_namespace' => NS_RELATED_VIDEOS), __METHOD__);
while ($row = $db->fetchObject($result)) {
    printText("RelatedVideos Article: {$row->page_title}\n");
    $title = Title::newFromText($row->page_title, NS_RELATED_VIDEOS);
    $relatedVideosNSData = RelatedVideosNamespaceData::newFromTitle($title);
    $data = $relatedVideosNSData->getData();
    foreach ($data['lists']['WHITELIST'] as $v) {
        printText('NS' . NS_RELATED_VIDEOS . ": ");
        addVideo($videoList, $v['title']);
        $total++;
    }
}
// get related videos - Global list
$relatedVideosNSData = RelatedVideosNamespaceData::newFromGeneralMessage();
printText("MediaWiki:RelatedVideosGlobalList\n");
if (!empty($relatedVideosNSData)) {
    $data = $relatedVideosNSData->getData();
    foreach ($data['lists']['WHITELIST'] as $v) {
        printText("GlobalList: ");
        addVideo($videoList, $v['title']);
        $total++;
    }
}
echo "Wiki {$wgCityId}: TOTAL: {$total}, ADDED: {$added}, DUPLICATE: {$duplicate}, DUPLICATE IN DB: {$dupInDb}, INVALID: {$invalid}\n";
echo "Total removed deleted videos: {$removed}\n";