diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /bin/wiki/ImportarImagenPrensa.php |
first commit
Diffstat (limited to 'bin/wiki/ImportarImagenPrensa.php')
-rw-r--r-- | bin/wiki/ImportarImagenPrensa.php | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/bin/wiki/ImportarImagenPrensa.php b/bin/wiki/ImportarImagenPrensa.php new file mode 100644 index 00000000..91a247e4 --- /dev/null +++ b/bin/wiki/ImportarImagenPrensa.php @@ -0,0 +1,119 @@ +<?php +# ---- +# Copyright (C) 2013-2020 - Reevo Project (http://reevo.org) +# License: Affero GPL version 3 - http://www.gnu.org/licenses/agpl.html +# ES: Este script importa las imagenes de los objetos de prensa +# ---- + +// ini_set( 'post_max_size', '50M' ); +// ini_set( 'upload_max_filesize', '50M' ); +// error_reporting(0); +// Load all the stuff +require_once( __DIR__ . '/vendor/autoload.php' ); +require_once( __DIR__ .'/../../etc/global_config.php' ); + +// Log in to a wiki +$api = new \Mediawiki\Api\MediawikiApi( $wgServer .'/api.php' ); +$api->login( new \Mediawiki\Api\ApiUser( $REEVO_WIKI_API_USER, $REEVO_WIKI_API_PASS ) ); +$services = new \Mediawiki\Api\MediawikiFactory( $api ); + +// Obtengo el nombre de la página como parámetro + +function ImportarImagenPrensa($pagetitle, $services) { + global $REEVO_URL; + $page = $services->newPageGetter()->getFromTitle( $pagetitle ); + $pagecontent = $page->getRevisions()->getLatest(); + if (!$pagecontent) { + echo "No existe una página con el nombre '$pagetitle'\n"; + return; + } + + + $pagecontent = $page->getRevisions()->getLatest()->getContent()->getData(); + + // armo un array con las propiedades de SMW + $rows = explode("|", $pagecontent); + foreach($rows as $row => $data) + { + $row_data = explode('=', $data); + $page_properties[$row_data[0]] = $row_data[1]; + } + + if (array_key_exists('prensa:imagen', $page_properties)) { + echo "La página '$pagetitle' ya tiene una imagen\n"; + return; + } + + if (array_key_exists('prensa:elggid', $page_properties)) { + $elggidtmp = $page_properties['prensa:elggid']; + $elggid = preg_replace( "/\r|\n/", "", $elggidtmp ); + // echo $url; + } else { + echo "La página '$pagetitle' no tiene definida la propiedad 'prensa:elggid'\n"; + return; + } + + // Definimos el nombre del archivo de la imagen + $pagename = str_replace( ":", "-", $pagetitle); + $snapshot_name = $pagename . '.jpg'; + $snaphot_pagecontent = 'Imagen importada desde sitio anterior para [['. $pagetitle .']]'; + $snaphot_desc = 'Imagen importada desde sitio anterior para [['. $pagetitle .']]'; + $fileUploader = $services->newFileUploader(); + $fileUploader->setChunkSize( 256 * 10 ); + exec("cp /srv/reevo-web/files/red/recext/{$elggid}/`ls /srv/reevo-web/files/red/recext/{$elggid}/` /tmp/imagen && convert /tmp/imagen /tmp/imagen.jpg"); + $fileUploader->upload( $snapshot_name, '/tmp/imagen.jpg', $snaphot_pagecontent, $snaphot_desc ); + + // Crea nueva o actualiza existente + $linkContent = str_replace('}}','|prensa:imagen='. $snapshot_name . '}}', $pagecontent); + + $newContent = new \Mediawiki\DataModel\Content( $linkContent ); + $title = new \Mediawiki\DataModel\Title( $pagetitle ); + $identifier = new \Mediawiki\DataModel\PageIdentifier( $title ); + $revision = new \Mediawiki\DataModel\Revision( $newContent, $identifier ); + $services->newRevisionSaver()->save( $revision ); + $link = urlencode("http://{$REEVO_URL}/Archivo:{$snapshot_name}"); + echo "Importe la imagen para '{$pagetitle}' y se subio a: '{$link}'\n\n"; +} + + +if ($argv[1]) { + ImportarImagenPrensa($argv[1],$services); +} else { + echo "Al no indicar una página, voy a generar los snapshots de todas las pagínas que usen Plantilla:Prensa \n"; + + // Obtengo todas las paginas con Plantilla:Prensa + $pageListGetter = $services->newPageListGetter(); + $examplePages = $pageListGetter->getPageListFromPageTransclusions( 'Template:Prensa' ); + $array = accessProtected($examplePages,'pages'); + foreach ( $array as $exPage ) { + $pagename = $exPage->getTitle()->getText(); + echo "$pagename \n"; + ImportarImagenPrensa($pagename, $services); + } +} + + + + +function accessProtected($obj, $prop) { + $reflection = new ReflectionClass($obj); + $property = $reflection->getProperty($prop); + $property->setAccessible(true); + return $property->getValue($obj); +} + + + + + +// print_r($examplePages); + +// $myArray = json_decode(json_encode($examplePages), true); +// print_r($examplePages->getPageList()); + + + + + + +?> |