Autor Tema: Periodico LaJornada en pdf via PHP  (Leído 7415 veces)

0 Usuarios y 1 Visitante están viendo este tema.

zapata....

  • *
  • Mensajes: 25
  • Liked: 0
  • ViVa La AnArQuIa....
Periodico LaJornada en pdf via PHP
« : noviembre 07, 2013, 03:26:35 am »
    Que onda camaradas

    el periódico LaJornada publica en ISSUU su versión impresa completa (en flash) todos los días después de las 3:30pm hora del D.F.
issuu.com/lajornadaonline

como tengo linux, programe un pequeño script para que me descargue el periódico en PDF y me lo envié a mi correo y lo pueda leer en mi celular.



un problema obvio, es que mi computadora tiene que estar prendida y conectada a la hora que esta configurado el crontab.

luego me entere que PHP tiene un simil del "crontab"

entonces me pregunte si programo todo en el php y lo subo a mi WEB, soluciono todos mis problemas  :D
el problema es que no tengo casi nada de conocimiento en php  :-[

se que googleando tarde o temprano voy terminar de hacerlo todo en php, solo tengo unas dudas.


  • ¿se puede automatizar la transferencia de imágenes de ISSUU ==> a mi WEB?
  • ¿se puede renombrar los archivos automáticamente ?
  • ¿puedo generar pdf a partir de imágenes con php automáticamente?
  • ¿puedo borrar los archivos automáticamente?
  • ¿cual es el tamaño máximo que puedo enviar por email via php?
*a automáticamente me refiero con que el servidor no ponga peros (que no necesite SSH, VPS o cosas extrañas) [que solo suba el php y listo (programando su cron)]

a continuación les dejo el código de el archivo php con el que parseo y bajo las paginas
[/list]
Código: [Seleccionar]
<?php
//script chafa para bajar el periódico LaJornada :D
//Estudiar y Aprender para el pueblo Defender .:[www.RojosBar.com]:.
//El script solo funciona después de las 16:05 hora Centro México [hora que es publicado en ISSUU]


//Aquí esta  la dirección del día de la LaJornada en ISSUU y la supuesta información del navegador :D
$ch =  curl_init();
//aquí generamos la fecha
date_default_timezone_set('America/Mexico_City');
$fecha = date("dmY");
//aquí se ingresa el día al link
curl_setopt($ch, CURLOPT_URL, "http://issuu.com/lajornadaonline/docs/diario$fecha.pdf-3");
//esto es la supuesta información  del navegador
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible;MSIE 5.01; Windows NT 5.0 )');
curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Accept-Language: es-es,en"));
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

//Se guarda la pagina

$result = curl_exec($ch);
curl_close($ch);

//parsear : aquí el script encuentra la dirección de las imágenes y la guarda como el matches1
// el script encuentra el numero de las paginas y la guarda en el matches2

preg_match_all("(<meta name=\"twitter:image\" content=\"(.*)1.jpg\">)siU" ,$result, $matches1);
preg_match_all("(\"pageCount\":(.*),)siU" ,$result, $matches2);


$tves = $matches1[1][0];
$pag = $matches2[1][0];

//bajando las paginas en JPG

//este FOR es para generar una secuencia del numero de "Paginas" del 1,2,3.... hasta el numero de pagina que se encontró en el matches2
for ($i = 1; ; $i++) {
    if ($i > $pag) {
        break;
    }
  system( "wget $tves$i.jpg ");
}

?>

aquí el código del Script Bash para hacer el PDF optimizarlo y enviarlo por mail
Código: [Seleccionar]
#!/bin/bash
#Creamos la variable fecha del día DD-MM-YY
FECHA=`date +%d-%m-%y`
#ejecutamos el php
php LaJornada.php
#Convertimos los archivos page_1.jpg a page_01.jpg (1-9)
#la modificación sirve para poder usar el comando "convert *.jpg FECHA.pdf"
mv page_1.jpg page_01.jpg
mv page_2.jpg page_02.jpg
mv page_3.jpg page_03.jpg
mv page_4.jpg page_04.jpg
mv page_5.jpg page_05.jpg
mv page_6.jpg page_06.jpg
mv page_7.jpg page_07.jpg
mv page_8.jpg page_08.jpg
mv page_9.jpg page_09.jpg
#Unimos las paginas en un PDF
clear
echo "Convirtiendo Imagenes al PDF"
convert *.jpg ljp.pdf
#Eliminamos los archivos jpg
clear
echo "Borrando imagenes"
rm *.jpg
#Reducimos la calidad del pdf para enviarlo por mail (Gmail 20MB Max. por correo)
echo "Optimizando PDF"
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=LaJornada$FECHA.pdf ljp.pdf
#Borramos el PDF original (pesado)
rm ljp.pdf
#enviamos el archivo pdf por correo (yo usare mutt y ssmtp)
#Aqui puedes ver como configurar tu propio correo http://ubuntumexico.org/node/187
#:::::::::::::AVISO EN LA PAGINA ANTERIOR EL AUTOR ESCRIBE (((((SSMPT ))))) PERO ES (((((SSMTP))))):::::::::::::
echo "Enviando correo"
echo 'Este script es potenciado vía Linux -El fracaso no es una opcion. Viene embedido en Windows.- :D' | mutt -s 'Periodico La_Jornada' -a LaJornada$FECHA.pdf -- destinatario@gmail.com
#Eliminamos el archivo pdf "optimizado" para ahorrar espacio :D
echo "Borrando archivos temporales generados"
rm LaJornada$FECHA.pdf
#clear
echo "Listo"
sleep 2
exit


https://www.youtube.com/watch?v=h82r41UOWLQ


Disculpen por los comentarios excesivos en el código, pero como no se programar me gusta "Decir en los comentarios" lo que trato de hacer para que los que saben programar me ayuden, y para los que no sabemos codigo es bueno saber mas o menos lo que hace un script :D






Al pueblo de México:
A los pueblos y gobiernos del mundo:

Hermanos:
Nosotros nacimos de la noche. En ella vivimos. Moriremos en ella. Pero la luz será mañana para los más, para todos aquellos que hoy lloran la noche, para quienes se niega el día,para quienes es regalo la muerte, para quienes..

zapata....

  • *
  • Mensajes: 25
  • Liked: 0
  • ViVa La AnArQuIa....
Re:Periodico LaJornada en pdf via PHP
« Respuesta #1 : abril 22, 2014, 06:27:33 pm »
que onda camaradas creo que a "naiden" le interesa este script, pero por si algun despistado como yo le interesa les dejo mi avance,

en esta version la salida es un PDF

aun no puedo hacer " que el FPDF automaticamente reconosca los numeros de paginas" asi que solo funciona con las paginas previamente indicadas.


ojala ustedes me puedan ayudar :D 

saludos

les dejo el link de prueba (tarda varios segundos para procesar general el pdf tengan paciencia)

[/color]

aqui el Codigo del php

Código: [Seleccionar]
<?php

require('/home/rojosbar/public_html/AL/fpdf.php');


//script chafa para bajar el periódico LaJornada :D
//Estudiar y Aprender para el pueblo Defender .:[www.RojosBar.com]:.
//El script solo funciona después de las 16:05 hora Centro México [hora que es publicado en ISSUU]


//Aquí esta  la dirección del día de la LaJornada en ISSUU y la supuesta información del navegador :D
$ch =  curl_init();
//aquí generamos la fecha
date_default_timezone_set('America/Mexico_City');
$fecha = date("dmY");
//aquí se ingresa el día al link
curl_setopt($ch, CURLOPT_URL, "http://issuu.com/lajornadaonline/docs/diario$fecha.pdf-3");
//curl_setopt($ch, CURLOPT_URL, "http://issuu.com/lajornadaonline/docs/diario16042014.pdf-3");
//esto es la supuesta información  del navegador
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible;MSIE 5.01; Windows NT 5.0 )');
curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Accept-Language: es-es,en"));
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

//Se guarda la pagina

$result = curl_exec($ch);
curl_close($ch);

//parsear : aquí el script encuentra la dirección de las imágenes y la guarda como el matches1
// el script encuentra el numero de las paginas y la guarda en el matches2

preg_match_all("(<meta name=\"twitter:image\" content=\"(.*)1.jpg\">)siU" ,$result, $matches1);
preg_match_all("(\"pageCount\":(.*),)siU" ,$result, $matches2);


$tves = $matches1[1][0];
$pag = $matches2[1][0];

//bajando las paginas en JPG

//este FOR es para generar una secuencia del numero de "Paginas" del 1,2,3.... hasta el numero de pagina que se encontró en el matches2
for ($i = 1; ; $i++) {
    if ($i > $pag) {
        break;
    }
  system( "wget $tves$i.jpg ");

}
 system("mv page_1.jpg page_01.jpg");
 system("mv page_2.jpg page_02.jpg");
 system("mv page_3.jpg page_03.jpg");
 system("mv page_4.jpg page_04.jpg");
 system("mv page_5.jpg page_05.jpg");
 system("mv page_6.jpg page_06.jpg");
 system("mv page_7.jpg page_07.jpg");
 system("mv page_8.jpg page_08.jpg");
 system("mv page_9.jpg page_09.jpg");

$pdf=new FPDF(P,mm,array(400,300));

$pdf->Image('page_01.jpg', 'JPG' );
$pdf->Image('page_02.jpg', 'JPG' );
$pdf->Image('page_03.jpg', 'JPG' );
$pdf->Image('page_04.jpg', 'JPG' );
$pdf->Image('page_05.jpg', 'JPG' );
$pdf->Image('page_06.jpg', 'JPG' );
$pdf->Image('page_07.jpg', 'JPG' );
$pdf->Image('page_08.jpg', 'JPG' );
$pdf->Image('page_09.jpg', 'JPG' );
$pdf->Image('page_10.jpg', 'JPG' );
$pdf->Image('page_11.jpg', 'JPG' );
$pdf->Image('page_12.jpg', 'JPG' );
$pdf->Image('page_13.jpg', 'JPG' );
$pdf->Image('page_14.jpg', 'JPG' );
$pdf->Image('page_15.jpg', 'JPG' );
$pdf->Image('page_16.jpg', 'JPG' );
$pdf->Image('page_17.jpg', 'JPG' );
$pdf->Image('page_18.jpg', 'JPG' );
$pdf->Image('page_19.jpg', 'JPG' );
$pdf->Image('page_20.jpg', 'JPG' );
$pdf->Output();

//el siguiente codigo es por si se quiere optimizar el pdf para ello se tiene que cambiar
//$pdf->Output();
//por
//$pdf->Output("hoy.pdf");
//y descomentar el siguiente comando
//  system("gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=Hoy_optimizado.pdf Hoy.pdf");
  system("rm page_*");
//  system("rm Hoy.pdf");
 
// comando para enviar al correo el pdf

 
 
?>




Al pueblo de México:
A los pueblos y gobiernos del mundo:

Hermanos:
Nosotros nacimos de la noche. En ella vivimos. Moriremos en ella. Pero la luz será mañana para los más, para todos aquellos que hoy lloran la noche, para quienes se niega el día,para quienes es regalo la muerte, para quienes..