summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarImagenPrensa.php
diff options
context:
space:
mode:
authorYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
committerYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
commitfc7369835258467bf97eb64f184b93691f9a9fd5 (patch)
treedaabd60089d2dd76d9f5fb416b005fbe159c799d /bin/wiki/ImportarImagenPrensa.php
first commit
Diffstat (limited to 'bin/wiki/ImportarImagenPrensa.php')
-rw-r--r--bin/wiki/ImportarImagenPrensa.php119
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());
+
+
+
+
+
+
+?>