示例#1
0
function esVideoAudioAnon($enlace)
{
    if (!preg_match('@^https?://(([^/^\\.]+\\.)+?[^/^\\.]+?)(/.*)?$@i', $enlace)) {
        return false;
    } elseif (stringContains($enlace, array(' ', '<', '>'))) {
        return false;
    } elseif (stringContains($enlace, array('.mp4', '.mp3', '.wmv', '.avi', '.f4v', '.flv', '.mov', '.3gp', '.3g2', '.aac', '.m4a', '.ogv', '.ogg'))) {
        return true;
    }
    return false;
}
示例#2
0
 function calcula()
 {
     /*
     "clip":{"url":"mp4:/_archivos/videos/web/4334/4334.mp4"}
     "netConnectionUrl":"rtmp://alacarta.aragontelevision.es/vod"
     "playlist":[{"url":"mp4:/_archivos/videos/web/4334/4334.mp4"}]
     
     http://alacarta.aragontelevision.es/_archivos/videos/web/4334/4334.mp4
     */
     $imagen = 'http://www.' . DOMINIO . '/canales/aragontv.png';
     $obtenido = array('enlaces' => array());
     //un solo video
     if (enString($this->web_descargada, 'flowplayer(')) {
         dbug('simple');
         $titulo = entre1y2($this->web_descargada, '<div class="apartado"><h2>', '</h2>');
         $titulo = limpiaTitulo($titulo);
         if (stringContains($titulo, array('</', 'Server:'))) {
             dbug('titulo fallido, usando <title>');
             $titulo = entre1y2($this->web_descargada, '<title>', '</');
             $titulo = limpiaTitulo($titulo);
         }
         dbug('titulo=' . $titulo);
         $obtenido['enlaces'][] = $this->SacarVideo($this->web_descargada, $titulo);
     } elseif (enString($this->web_descargada, 'list-not-even')) {
         dbug('multi');
         $p = strpos($this->web_descargada, '<div class="apartado">');
         $titulo = entre1y2_a($this->web_descargada, $p, '<h2>', '</h2>');
         //en la pagina principal y otras el titulo estará mal, por lo que poner uno genérico
         if (enString($titulo, '<')) {
             $titulo = 'Aragon TV';
         }
         $titulo = limpiaTitulo($titulo);
         dbug('titulo=' . $titulo);
         $videos = substr_count($this->web_descargada, '<span>Ver video</span>');
         dbug('total videos=' . $videos);
         $last = 0;
         for ($i = 0; $i < $videos; $i++) {
             $last = strposF($this->web_descargada, '<div id="idv', $last);
             $url = 'http://alacarta.aragontelevision.es/ajax/ajax.php?id=' . entre1y2_a($this->web_descargada, $last, '_', '"');
             //encontrar ya el titulo del vídeo
             $f = strpos($this->web_descargada, 'fecha', $last);
             $parte = substr($this->web_descargada, $last, $f - $last);
             $p = strrpos($parte, '<a');
             $nombre = entre1y2_a($parte, $p, 'title="', '"');
             $extracto = CargaWebCurl($url);
             $obtenido['enlaces'][] = $this->SacarVideoPorId($extracto, $nombre);
         }
     }
     $obtenido['titulo'] = $titulo;
     $obtenido['imagen'] = $imagen;
     finalCadena($obtenido, false);
 }
示例#3
0
 function calcula()
 {
     /*
     $proxy = '189.174.63.36:8080';
     
     $ch=curl_init();
     curl_setopt($ch,CURLOPT_URL,'http://tvnpod.tvolucion.com/indom/delivery/6dd74f0d-18d9-412a-bd59-5071182ffdbd/indom-c120.mp4_970k.mp4');
     curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
     curl_setopt($ch,CURLOPT_PROXY,$proxy);
     curl_setopt($ch,CURLOPT_HEADER,1);
     curl_setopt($ch,CURLOPT_RANGE,'1-200');
     
     $t=curl_exec($ch);
     if(curl_errno($ch))dbug('Curl error: '.curl_error($ch));
     
     curl_close($ch);
     dbug_($t);
     exit;
     */
     if (enString($this->web, '//m.')) {
         $this->web = str_replace('//m.', '//www.', $this->web);
         dbug('Movil -> escritorio');
         $this->web_descargada = CargaWebCurl($this->web, '', 0, '', array('Referer: ' . $this->web));
         if (!enString($this->web_descargada, '<html')) {
             $this->web_descargada = CargaWebCurl($this->web);
         }
     }
     //usarse a sí mismo como réferer
     if (!enString($this->web_descargada, '<html')) {
         $this->web_descargada = CargaWebCurl($this->web, '', 0, '', array('Referer: ' . $this->web));
     }
     if (!enString($this->web_descargada, '<html')) {
         $this->web_descargada = CargaWebCurl($this->web);
     }
     //dbug_($this->web_descargada);
     $obtenido = array('enlaces' => array());
     //para televisa.com/novelas
     if (stringContains($this->web_descargada, array('showVideo(', 'data-idvideo="', 'embed.php?id='))) {
         if (enString($this->web_descargada, 'showVideo(')) {
             dbug('-1-');
             preg_match('@showVideo\\(([0-9]+)\\)@', $this->web_descargada, $match);
         } elseif (enString($this->web_descargada, 'data-id="')) {
             dbug('-2-');
             preg_match('@data-id="([0-9]+)"@', $this->web_descargada, $match);
         } elseif (enString($this->web_descargada, 'data-idvideo="')) {
             dbug('-2.5-');
             preg_match('@data-idvideo="([0-9]+)"@', $this->web_descargada, $match);
         } elseif (enString($this->web_descargada, 'embed.php?id=')) {
             dbug('-3-');
             preg_match('@embed.php\\?id=([0-9]+)@', $this->web_descargada, $match);
         }
         if (isset($match[1])) {
             $idVideo = $match[1];
             dbug($idVideo);
             // $this->web='http://amp.televisa.com/embed/embed.php?id='.$idVideo.'&w=620&h=345';
             $this->web = 'http://tvolucion.esmas.com/embed/embed.php?id=' . $idVideo . '&w=620&h=345';
             $this->web_descargada = CargaWebCurl($this->web, '', 0, '', array('Referer: ' . $this->web));
             if (enString($this->web_descargada, 'ya no se encuentra disponible')) {
                 setErrorWebIntera('Éste vídeo ya no se encuentra disponible.');
                 return;
             }
             //dbug_($this->web_descargada);
         }
     }
     if (enString($this->web_descargada, 'params_dvr.json')) {
         if (!isset($idVideo)) {
             preg_match('#/([0-9]+?)/params_dvr.json#', $this->web_descargada, $matches);
             $idVideo = $matches[1];
         }
         $hostname = 'tvolucion.esmas.com';
         $json = "http://{$hostname}/tvenvivofiles/{$idVideo}/params_dvr.json";
         $json = CargaWebCurl($json);
         $json = utf8_encode($json);
         $json = json_decode($json, true);
         dbug_r($json);
         $titulo = $json['channel']['item']['title'];
         $imagen = $json['channel']['item']['media-group']['media-thumbnail']['@attributes']['url'];
         foreach ($json['channel']['item']['media-group']['media-content'] as &$elem) {
             if (enString($elem['@attributes']['url'], '.f4m')) {
                 $obtenido['enlaces'][] = array('url' => $elem['@attributes']['url'], 'nombre_archivo' => generaNombreWindowsValido($titulo), 'tipo' => 'f4m');
             } elseif (enString($elem['@attributes']['url'], '.m3u8')) {
                 $obtenido['enlaces'][] = array('url' => $elem['@attributes']['url'], 'tipo' => 'm3u8');
             }
         }
         $obtenido['alerta_especifica'] = 'Es necesario usar un proxy de México. El programa F4M-Downloader permite indicar un proxy.';
     } else {
         //http://c.brightcove.com/services/messagebroker/amf?playerKey=AQ~~,AAAAEUA28vk~,ZZqXLYtFw-ADB2SpeHfBR3cyrCkvIrAe
         if (enString($this->web_descargada, 'playerKey:"')) {
             $playerKey = entre1y2($this->web_descargada, 'playerKey:"', '"');
         } elseif (enString($this->web_descargada, '<param name="playerKey"')) {
             $playerKey = entre1y2($this->web_descargada, '<param name="playerKey" value="', '"');
         }
         if (!isset($playerKey)) {
             setErrorWebIntera('No se ha encontrado ningún vídeo.');
             return;
         }
         dbug('playerKey -> ' . $playerKey);
         $messagebroker = 'http://c.brightcove.com/services/messagebroker/amf?playerKey=' . $playerKey;
         if (enString($this->web_descargada, 'playerID:"')) {
             $experienceID = entre1y2($this->web_descargada, 'playerID:"', '"');
         } elseif (enString($this->web_descargada, '<param name="playerID"')) {
             $experienceID = entre1y2($this->web_descargada, '<param name="playerID" value="', '"');
         }
         if (!isset($experienceID)) {
             setErrorWebIntera('No se ha encontrado ningún vídeo.');
             return;
         }
         dbug('experienceID -> ' . $experienceID);
         if (enString($this->web_descargada, 'videoId:"')) {
             $contentId = entre1y2($this->web_descargada, 'videoId:"', '"');
         } elseif (enString($this->web_descargada, '<param name="videoId"')) {
             $contentId = entre1y2($this->web_descargada, '<param name="videoId" value="', '"');
         }
         if (!isset($contentId)) {
             setErrorWebIntera('No se ha encontrado ningún vídeo.');
             return;
         }
         dbug('contentId -> ' . $contentId);
         include 'brightcove-funciones.php';
         //$aa = 'AAMAAAABAEZjb20uYnJpZ2h0Y292ZS5leHBlcmllbmNlLkV4cGVyaWVuY2VSdW50aW1lRmFjYWRlLmdldERhdGFGb3JFeHBlcmllbmNlAAIvMQAAAe8KAAAAAgIAKDcyOTBiYTVlOTQzZGM0MmI3ZDY4NmE1NjJmOTZkNWI0MGI0ZjE3OTIRCmNjY29tLmJyaWdodGNvdmUuZXhwZXJpZW5jZS5WaWV3ZXJFeHBlcmllbmNlUmVxdWVzdBlleHBlcmllbmNlSWQhY29udGVudE92ZXJyaWRlcxFUVExUb2tlbhlkZWxpdmVyeVR5cGUTcGxheWVyS2V5B1VSTAVCYrdWAacgAAkDAQqBA1Njb20uYnJpZ2h0Y292ZS5leHBlcmllbmNlLkNvbnRlbnRPdmVycmlkZRtjb250ZW50UmVmSWRzDXRhcmdldBVmZWF0dXJlZElkE2NvbnRlbnRJZBdjb250ZW50VHlwZRtmZWF0dXJlZFJlZklkFWNvbnRlbnRJZHMZY29udGVudFJlZklkAQYXdmlkZW9QbGF5ZXIFf////+AAAAAFQoo2IT7sSAAEAAEBAQYBBX/////gAAAABmVBUX5+LEFBQUFFVUEyOHZrfixaWnFYTFl0RnctQURCMlNwZUhmQlIzY3lyQ2t2SXJBZQaBGWh0dHA6Ly9ub3RpY2llcm9zLnRlbGV2aXNhLmNvbS9wcm9ncmFtYXMtbm90aWNpZXJvLWNvbi1qb2FxdWluLWxvcGV6LWRvcmlnYS8=';
         //dbug_r(brightcove_decode(base64_decode($aa)));
         $a_encodear = array('target' => 'com.brightcove.experience.ExperienceRuntimeFacade.getDataForExperience', 'response' => '/1', 'data' => array('0' => '7290ba5e943dc42b7d686a562f96d5b40b4f1792', '1' => new SabreAMF_AMF3_Wrapper(new SabreAMF_TypedObject('com.brightcove.experience.ViewerExperienceRequest', array('TTLToken' => null, 'deliveryType' => NAN, 'URL' => $this->web, 'experienceId' => $experienceID, 'playerKey' => $playerKey, 'contentOverrides' => array(new SabreAMF_TypedObject('com.brightcove.experience.ContentOverride', array('contentRefId' => null, 'contentIds' => null, 'featuredRefId' => null, 'contentRefIds' => null, 'contentType' => 0, 'target' => 'videoPlayer', 'featuredId' => NAN, 'contentId' => $contentId))))))));
         // FALLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
         $post = brightcove_encode($a_encodear);
         dbug(base64_encode($post));
         //dbug_r(brightcove_decode($post));
         //dbug_r(brightcove_decode(base64_decode('AAMAAAABAEZjb20uYnJpZ2h0Y292ZS5leHBlcmllbmNlLkV4cGVyaWVuY2VSdW50aW1lRmFjYWRlLmdldERhdGFGb3JFeHBlcmllbmNlAAIvMQAAAhYKAAAAAgIAKDcyOTBiYTVlOTQzZGM0MmI3ZDY4NmE1NjJmOTZkNWI0MGI0ZjE3OTIRCmNjY29tLmJyaWdodGNvdmUuZXhwZXJpZW5jZS5WaWV3ZXJFeHBlcmllbmNlUmVxdWVzdBlkZWxpdmVyeVR5cGUHVVJMGWV4cGVyaWVuY2VJZCFjb250ZW50T3ZlcnJpZGVzE3BsYXllcktleRFUVExUb2tlbgV/////4AAAAAaBZ2h0dHA6Ly90dm9sdWNpb24uZXNtYXMuY29tL3RlbGVub3ZlbGFzL2RyYW1hL2xhLXJvc2EtZGUtZ3VhZGFsdXBlLzIzNjM0OS9yb3NhLWd1YWRhbHVwZS1wZXF1ZW5hLWdyYW4taGlzdG9yaWEtYW1vci8FQmK3VgGnIAAJAwEKgQNTY29tLmJyaWdodGNvdmUuZXhwZXJpZW5jZS5Db250ZW50T3ZlcnJpZGUNdGFyZ2V0FWZlYXR1cmVkSWQTY29udGVudElkG2ZlYXR1cmVkUmVmSWQVY29udGVudElkcxljb250ZW50UmVmSWQbY29udGVudFJlZklkcxdjb250ZW50VHlwZQYXdmlkZW9QbGF5ZXIFf////+AAAAAFQoNbrQiDiAABAQEBBAAGZUFRfn4sQUFBQUVVQTI4dmt+LFpacVhMWXRGdy1BREIyU3BlSGZCUjNjeXJDa3ZJckFlBgE=')));
         dbug('a descargar: ' . $messagebroker);
         $t = brightcove_curl_web($messagebroker, $post);
         $res_decoded = brightcove_decode($t);
         dbug_r($res_decoded);
         $titulo1 = $res_decoded['data']->getAMFData();
         $titulo2 = $titulo1['programmedContent']['videoPlayer']->getAMFData();
         dbug_r($titulo2);
         $titulo3 = $titulo2['mediaDTO']->getAMFData();
         $titulo = $titulo3['displayName'];
         //scar todas las URL
         //preg_match_all('@http(s)?://[a-z0-9A-Z.?/%_=~-]+@i', $t, $match);
         preg_match_all('@http(s)?://[a-z0-9A-Z./%_-]+@i', $t, $match);
         //buscar qué URLs son las pics y los vídeos para usarlas
         dbug_r($match[0]);
         $imagen = $match[0][1];
         $urls_total = count($match[0]);
         for ($i = 0; $i < $urls_total; $i++) {
             if (esVideoAudioAnon($match[0][$i])) {
                 $obtenido['enlaces'][] = array('url' => strtr($match[0][$i], array('http://tvnhds.tvolucion.com/z/' => 'http://tvnpod.tvolucion.com/')), 'tipo' => 'http');
             }
         }
     }
     $obtenido['titulo'] = $titulo;
     $obtenido['imagen'] = $imagen;
     finalCadena($obtenido, false);
 }
示例#4
0
 function calcula()
 {
     //dbug_($this->web_descargada);
     $obtenido = array('enlaces' => array());
     if (!enString($this->web_descargada, 'catalog.video.msn.com/image.aspx')) {
         dbug('modo nuevo');
         // No soportado
         // http://m.telemundo.com/video.php?show=elsenordeloscieloscapitulosecreto&id=najcVXTKRqnrWKiVUmcE&key=video
         // http://m.telemundo.com/video.php?show=lavozkids&id=oWvtdFNRlmwOemyqHpCF&key=video
         //setErrorWebIntera('No se encuentra ningún vídeo o no está soportado');
         // http://now.telemundo.com/caso-cerrado/full-episodes/abuso-polic%C3%ADaco/322424899858
         // http://player.theplatform.com/p/HNK2IC/telemundo_vod_noauth/embed/select/uLCEWFk911nP?autoPlay=true&mbr=true&FWsiteSection=tm_tveverywhere_vod_hub#playerurl=http%3A//now.telemundo.com/caso-cerrado/full-episodes/abuso-polic%25C3%25ADaco/322424899858
         // https://player.theplatform.com/p/HNK2IC/telemundo_vod_noauth/embed/select/uLCEWFk911nP?autoPlay=false
         // https://link.theplatform.com/s/HNK2IC/uLCEWFk911nP?mbr=true&policy=2713557&player=Telemundo VOD No Auth Player (pub7)&manifest=f4m&format=SMIL&Tracking=true&Embedded=true&formats=F4M,MPEG4
         // No va
         // https://link.theplatform.com/s/HNK2IC/uLCEWFk911nP?mbr=true&policy=2713557&player=Telemundo VOD No Auth Player (pub7)
         // Parece que se puede arreglar así:
         /*
         		http://www.telemundo.com/shows/2014/11/20/maestros-armados-por-defensa-y-gemelas-con-el-mismo-marido-caso-cerrado-video
         		
         		"clip_image":"http:\/\/www.telemundo.com\/sites\/nbcutelemundo\/files\/images\/mpx\/2014\/11\/21\/141120_2829830_Maestros_armados_por_defensa_y_gemelas_con_e_0.jpg"
         		"clip_title":"Maestros armados por defensa y gemelas con el mismo marido. Caso Cerrado (VIDEO)"
         		"clip_descr":"Marlene es profesora, y quiere ir a dar clase con una pistola para poder defenderse en caso de una asesino en serie. Y, Karla y Tania tienen el mismo marido y reclaman la herencia que les dej\u00f3 su padre.\u00a0"
         		
         		iframe
         		//player.theplatform.com/p/0L7ZPC/ztJiSNFd5ggr/embed/select/iWUW_xbJZGrj?siteSectionId=telemundo_video_hub_vod&amp;autoPlay=true
         		//theplatform.com/p/0L7ZPC/ztJiSNFd5ggr/embed/select/iWUW_xbJZGrj?siteSectionId=telemundo_shows_vod&amp;autoPlay=true
         http://proxymexico.com
         		http://link.theplatform.com/s/0L7ZPC/iWUW_xbJZGrj?mbr=true&player=P7%20VOD%20Player&policy=40180
         		
         		http://link.theplatform.com/s/0L7ZPC/EuIyUv4n0nlm?mbr=true&player=P7%20VOD%20Player&policy=40180&switch=progressive&formats=mpeg4&format=SMIL&embedded=true&tracking=true
         */
         if (enString($this->web, '//now.')) {
             // now.telemundo.com
             $desde = 1;
             // "episode_thumbnail":{"url":"http:\/\/tve_static-telemundo.nbcuni.com\/prod\/image\/478\/1007\/141117_2828781_Andrea_del_Junco_anvver_1_560x315_362507843555.jpg"
             // "synopsis":"Scarlet Gruber es Andrea del Junco, una joven seria, reservada y competente que anhela ser como su madre."
             $p = strpos($this->web_descargada, '//player.');
             $imagen = entre1y2_a($this->web_descargada, $p, 'src="', '"');
             dbug_($imagen);
             $titulo = entre1y2($this->web_descargada, '<meta property="og:title" content="', '"');
             $player = 'http:' . desde1a2($this->web_descargada, $p, '"');
             dbug_($player);
         } else {
             $desde = 2;
             $imagen = entre1y2($this->web_descargada, '"clip_image":"', '"');
             $imagen = json_decode('"' . $imagen . '"');
             dbug_($imagen);
             $titulo = entre1y2($this->web_descargada, '"clip_title":"', '"');
             $titulo = json_decode('"' . $titulo . '"');
             dbug_($titulo);
             // buscar si es una parte.
             if (enString($this->web_descargada, '<li class="player--nav-item-active">')) {
                 $titulo .= ', parte ' . trim(strip_tags(entre1y2($this->web_descargada, '<li class="player--nav-item-active">', '</li')));
             }
             $descripcion = entre1y2($this->web_descargada, '"clip_descr":"', '"');
             $descripcion = json_decode('"' . $descripcion . '"');
             dbug_($descripcion);
             $iframe = entre1y2($this->web_descargada, '<iframe', '<');
             dbug_($iframe);
             $player = 'http://' . desde1a2($iframe, 'player.', '"');
             dbug_($player);
             $obtenido['descripcion'] = $descripcion;
         }
         $obtenido['titulo'] = $titulo;
         $obtenido['imagen'] = $imagen;
         $ret = CargaWebCurl($player);
         $releaseUrl = entre1y2($ret, 'releaseUrl="', '"');
         dbug_($releaseUrl);
         $releaseUrl .= '&switch=progressive&formats=mpeg4&format=SMIL&embedded=true&tracking=true';
         dbug_($releaseUrl);
         $ret = CargaWebCurlProxy($releaseUrl, 'MX');
         dbug_($ret);
         if (preg_match_all('@"(https?://[^"]+\\.(?:mp4|flv).+?)".+?bitrate="(.+?)"@i', $ret, $matches)) {
             dbug_r($matches);
             $links = array_unique($matches[1]);
             $calidades = array_unique($matches[2]);
             dbug_r($links);
             for ($i = 0, $i_t = count($links); $i < $i_t; $i++) {
                 $obtenido['enlaces'][] = array('url' => $desde === 1 ? $this->quitar_akami_telemundo($links[$i]) : $links[$i], 'url_txt' => 'Descargar en calidad ' . intval($calidades[$i] / 1024), 'tipo' => 'http');
             }
         } else {
             dbug('Adivinar urls a partir de la imagen');
             dbug_($imagen);
             $posibles_calidades = array('4000', '2500', '1800', '1696', '1296', '1200', '896', '700', '696', '496', '400', '306', '240', '200');
             if (preg_match('#anvver#', $imagen, $matches) || preg_match('#[0-9]+x[0-9]+#', $imagen, $matches)) {
                 dbug_r($matches);
                 $supuesta_url_base = entre1y2($imagen, 0, $matches[0]);
                 $supuesta_url_base = str_replace('/image/', '/video/', $supuesta_url_base);
                 for ($i = 0, $i_t = count($posibles_calidades); $i < $i_t; $i++) {
                     $obtenido['enlaces'][] = array('url' => $supuesta_url_base . $posibles_calidades[$i] . '.mp4', 'url_txt' => 'Descargar en calidad ' . $posibles_calidades[$i], 'tipo' => 'http');
                 }
                 $obtenido['alerta_especifica'] = 'No se ha podido encontrar ningún enlace para el vídeo pero alguno de los siguientes podría funcionar.';
             }
         }
     } else {
         dbug('modo antiguo');
         $imagen = 'http://img3.catalog.video.msn.com/image.aspx' . entre1y2($this->web_descargada, 'catalog.video.msn.com/image.aspx', '"');
         dbug_($imagen);
         $uuid = entre1y2($imagen, 'uuid=', '&');
         dbug_($uuid);
         $imagen = 'http://img3.catalog.video.msn.com/image.aspx?uuid=' . $uuid . '&w=500&h=250&so=4';
         dbug_($imagen);
         $url = "http://hub.video.msn.com/services/videodata/?callback=JsonpCb0&ids={$uuid}&detailed=true&responseEncoding=json&v=2";
         $ret = CargaWebCurl($url);
         $ret = substr($ret, 9, -1);
         $ret = str_replace("'", '"', $ret);
         $ret = preg_replace('/(\\w+):/i', '"\\1":', $ret);
         $ret = preg_replace_callback('/\\\\x.{2}/i', function ($a) {
             return chr('0' . substr($a[0], 1));
         }, $ret);
         dbug_($ret);
         $ret = json_decode($ret, true);
         dbug(json_last_error());
         dbug_r($ret);
         $titulo = $ret['videos'][0]['title'];
         $calidades = array('105' => '1080p', '104' => '720p', '103' => '480p', '102' => '360p', '101' => '240p', '1005' => '1080p', '1004' => '720p', '1003' => '480p', '1002' => '360p', '1001' => '240p');
         foreach ($ret['videos'][0]['files'] as &$elem) {
             $ret['videos'][0]['files'][$elem['formatCode']] =& $elem;
         }
         foreach ($calidades as $i => $calidad) {
             if (isset($ret['videos'][0]['files'][$i])) {
                 $elem =& $ret['videos'][0]['files'][$i];
                 if (!stringContains($elem['url'], array('.mp4', '.flv'))) {
                     continue;
                 }
                 foreach ($obtenido['enlaces'] as &$enl) {
                     if (substr($enl['url'], 20) === substr($elem['url'], 20)) {
                         continue 2;
                     }
                 }
                 $obtenido['enlaces'][] = array('url' => $elem['url'], 'url_txt' => 'Descargar en ' . $calidad, 'tipo' => 'http');
             }
         }
         $obtenido['titulo'] = $titulo;
         $obtenido['imagen'] = $imagen;
     }
     finalCadena($obtenido, false);
 }
示例#5
0
function listFolderFiles($dir)
{
    $ffs = scandir($dir);
    global $main_dir, $content;
    foreach ($ffs as $ff) {
        if ($ff != '.' && $ff != '..') {
            /////////////////////////
            // files to skip
            if ($ff === "assets.js" || $ff === "css") {
                // do nothing
            } else {
                if (endsWith($dir, DS . 'spine')) {
                    if (endsWith($ff, '.png')) {
                        $basic = beforeComma($ff);
                        $content .= "ContentManager.add_spine('" . $basic . "');\n";
                    }
                } else {
                    if (stringContains($dir, 'sounds' . DS . 'effects')) {
                        if (endsWith($ff, '.webm')) {
                            $basic = beforeComma($ff);
                            $content .= "ContentManager.add_sound('" . $basic . "',['" . create_url($dir) . $basic . ".webm','" . create_url($dir) . $basic . ".mp3']);\n";
                        }
                    } else {
                        if (stringContains($dir, 'sounds' . DS . 'music')) {
                            if (endsWith($ff, '.webm')) {
                                $basic = beforeComma($ff);
                                $content .= "ContentManager.add_audio('" . $basic . "',['" . create_url($dir) . $basic . ".webm','" . create_url($dir) . $basic . ".mp3']);\n";
                            }
                        } else {
                            if (endsWith($dir, DS . 'fonts')) {
                                if (endsWith($ff, '.ttf')) {
                                    $basic = beforeComma($ff);
                                    $content .= "ContentManager.add_font('" . $basic . "','" . create_url($dir) . $ff . "',{ xhrType: PIXI.loaders.Resource.XHR_RESPONSE_TYPE.DOCUMENT});\n";
                                } else {
                                    if (endsWith($ff, '.fnt')) {
                                        $basic = beforeComma($ff);
                                        $content .= "ContentManager.add_bitmap_font('" . $basic . "','" . create_url($dir) . $ff . "');\n";
                                    }
                                }
                            } else {
                                if (stringContains($dir, 'assets' . DS . 'images' . DS . "atlases")) {
                                    if (endsWith($ff, '.png')) {
                                        $basic = beforeComma($ff);
                                        $content .= "ContentManager.add_atlas('" . $basic . "');\n";
                                    }
                                } else {
                                    if (endsWith($dir, DS . 'localization')) {
                                        if (endsWith($ff, '.txt')) {
                                            $basic = beforeComma($ff);
                                            $content .= "ContentManager.add_file('" . $basic . "','" . create_url($dir) . $ff . "');\n";
                                        }
                                    } else {
                                        if (stringContains($dir, 'assets' . DS . 'images')) {
                                            if (endsWith($ff, '.png')) {
                                                $basic = beforeComma($ff);
                                                $url = create_url($dir);
                                                $url = str_replace('assets/images', '', $url);
                                                $url = ltrim($url, '/');
                                                $content .= "ContentManager.add_image('" . $basic . "','" . $url . $ff . "');\n";
                                            }
                                        } else {
                                            if (endsWith($ff, '.json')) {
                                                // looking for json files
                                                $basic = beforeComma($ff);
                                                $content .= "ContentManager.add_file('" . $basic . "','" . create_url($dir) . $ff . "');\n";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            ///////////////////////////////
            if (is_dir($dir . DS . $ff)) {
                $content .= "\n";
                listFolderFiles($dir . DS . $ff);
            }
        }
    }
}
示例#6
0
function listFolderFiles($dir)
{
    $ffs = scandir($dir);
    global $main_dir, $content;
    foreach ($ffs as $ff) {
        if ($ff != '.' && $ff != '..') {
            /////////////////////////
            // files to skip
            if ($ff === "assets.js" || $ff === "css") {
                // do nothing
            } else {
                if (endsWith($dir, DS . 'spine')) {
                    if (endsWith($ff, '.png')) {
                        $basic = beforeComma($ff);
                        $content .= "ContentManager.add_spine('" . $basic . "');\n";
                    }
                } else {
                    if (stringContains($dir, 'sounds' . DS . 'effects')) {
                        if (endsWith($ff, '.mp3')) {
                            $basic = beforeComma($ff);
                            $data = file_get_contents($dir . DS . $ff);
                            $base64 = "data:audio/mp3;base64," . base64_encode($data);
                            $content .= "ContentManager.add_sound('" . $basic . "','" . $base64 . "');\n";
                        }
                    } else {
                        if (stringContains($dir, 'sounds' . DS . 'music')) {
                            if (endsWith($ff, '.mp3')) {
                                $basic = beforeComma($ff);
                                $data = file_get_contents($dir . DS . $ff);
                                $base64 = "data:audio/mp3;base64," . base64_encode($data);
                                $content .= "ContentManager.add_audio('" . $basic . "','" . $base64 . "');\n";
                            }
                        } else {
                            if (endsWith($dir, DS . 'fonts')) {
                                if (endsWith($ff, '.ttf')) {
                                    $basic = beforeComma($ff);
                                    $content .= "ContentManager.add_font('" . $basic . "','" . create_url($dir) . $ff . "');\n";
                                }
                            } else {
                                if (stringContains($dir, 'assets' . DS . 'images' . DS . "atlases")) {
                                    if (endsWith($ff, '.png')) {
                                        $basic = beforeComma($ff);
                                        $content .= "ContentManager.add_atlas('" . $basic . "');\n";
                                    }
                                } else {
                                    if (endsWith($dir, DS . 'localization')) {
                                        if (endsWith($ff, '.txt')) {
                                            $basic = beforeComma($ff);
                                            $content .= "ContentManager.add_file('" . $basic . "','" . create_url($dir) . $ff . "');\n";
                                        }
                                    } else {
                                        if (stringContains($dir, 'assets' . DS . 'images')) {
                                            if (endsWith($ff, '.png')) {
                                                $basic = beforeComma($ff);
                                                $url = create_url($dir);
                                                $url = str_replace('assets/images', '', $url);
                                                $url = ltrim($url, '/');
                                                $content .= "ContentManager.add_image('" . $basic . "','" . $url . $ff . "');\n";
                                            }
                                        } else {
                                            if (endsWith($ff, '.json')) {
                                                // looking for json files
                                                $basic = beforeComma($ff);
                                                $content .= "ContentManager.add_file('" . $basic . "','" . create_url($dir) . $ff . "');\n";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            ///////////////////////////////
            if (is_dir($dir . DS . $ff)) {
                $content .= "\n";
                listFolderFiles($dir . DS . $ff);
            }
        }
    }
}
 function processrequestAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $session = SessionWrapper::getInstance();
     $this->_translate = Zend_Registry::get("translate");
     $config = Zend_Registry::get("config");
     $formvalues = $this->_getAllParams();
     // debugMessage($formvalues); // exit();
     $formvalues['id'] = $id = decode($formvalues['id']);
     $profilefolder = $formvalues['userid'];
     $ledger = new Ledger();
     if (!isArrayKeyAnEmptyString('id', $formvalues)) {
         $ledger->populate($id);
         $formvalues['lastupdatedby'] = $session->getVar('userid');
     } else {
         $formvalues['createdby'] = $session->getVar('userid');
     }
     if (stringContains('>', $formvalues['filename'])) {
         $formvalues['filename'] = '';
     }
     $ledger->processPost($formvalues);
     /* debugMessage($ledger->toArray());
     		debugMessage('errors are '.$ledger->getErrorStackAsString()); exit(); */
     if ($ledger->hasError()) {
         $session->setVar(ERROR_MESSAGE, $ledger->getErrorStackAsString());
     } else {
         try {
             $ledger->save();
             // debugMessage($ledger->toArray());
             $session->setVar(SUCCESS_MESSAGE, $this->_getParam('successmessage'));
         } catch (Exception $e) {
             $session->setVar(ERROR_MESSAGE, $e->getMessage());
             // debugMessage('save error '.$e->getMessage());
         }
     }
 }
 function checkloginAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $session = SessionWrapper::getInstance();
     $formvalues = $this->_getAllParams();
     // debugMessage($formvalues);
     # check that an email has been provided
     if (isEmptyString(trim($this->_getParam("email")))) {
         $session->setVar(ERROR_MESSAGE, $this->_translate->translate("profile_email_error"));
         $session->setVar(FORM_VALUES, $this->_getAllParams());
         // return to the home page
         $this->_helper->redirector->gotoUrl(decode($this->_getParam(URL_FAILURE)));
     }
     if (isEmptyString(trim($this->_getParam("password")))) {
         $session->setVar(ERROR_MESSAGE, $this->_translate->translate("profile_password_error"));
         $session->setVar(FORM_VALUES, $this->_getAllParams());
         // return to the home page
         $this->_helper->redirector->gotoUrl(decode($this->_getParam(URL_FAILURE)));
     }
     # check which field user is using to login. default is username
     $credcolumn = "username";
     $login = (string) trim($this->_getParam("email"));
     // $password = encode(sha1(trim($this->_getParam("password"))));
     # check if credcolumn is emai
     $validator = new Zend_Validate_EmailAddress();
     if ($validator->isValid($login)) {
         $usertable = new UserAccount();
         if ($usertable->findByEmail($login)) {
             $credcolumn = 'email';
         }
     }
     if (stringContains('!@#', $login)) {
         $credcolumn = 'trx';
         $loginarray = explode('.', $login);
         // debugMessage($loginarray);
         $id = $loginarray[0];
     }
     // debugMessage($credcolumn); exit;
     $browser = new Browser();
     $audit_values = $browser_session = array("browserdetails" => $browser->getBrowserDetailsForAudit(), "browser" => $browser->getBrowser(), "version" => $browser->getVersion(), "useragent" => $browser->getUserAgent(), "os" => $browser->getPlatform(), "ismobile" => $browser->isMobile() ? '1' : 0, "ipaddress" => $browser->getIPAddress());
     // debugMessage($audit_values);
     if ($credcolumn == 'email' || $credcolumn == 'username') {
         $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Registry::get("dbAdapter"));
         // define the table, fields and additional rules to use for authentication
         $authAdapter->setTableName('useraccount');
         $authAdapter->setIdentityColumn($credcolumn);
         $authAdapter->setCredentialColumn('password');
         $authAdapter->setCredentialTreatment("sha1(?) AND status = '1' ");
         // set the credentials from the login form
         $authAdapter->setIdentity($login);
         $authAdapter->setCredential($this->_getParam("password"));
         // new class to audit the type of Browser and OS that the visitor is using
         if (!$authAdapter->authenticate()->isValid()) {
             // debugMessage('invalid'); exit;
             // add failed login to audit trail
             $audit_values['module'] = 1;
             $audit_values['usecase'] = '1.1';
             $audit_values['transactiontype'] = USER_LOGIN;
             $audit_values['status'] = "N";
             $audit_values['transactiondetails'] = "Login for user with id '" . $this->_getParam("email") . "' failed. Invalid username or password";
             // exit();
             $this->notify(new sfEvent($this, USER_LOGIN, $audit_values));
             // return to the home page
             if (!isArrayKeyAnEmptyString(URL_FAILURE, $formvalues)) {
                 $session->setVar(ERROR_MESSAGE, "Invalid Email or Username or Password. <br />Please Try Again.");
                 $this->_helper->redirector->gotoUrl(decode($this->_getParam(URL_FAILURE)));
             } else {
                 $session->setVar(ERROR_MESSAGE, "Invalid Email or Username or Password. <br />Please Try Again.");
                 $this->_helper->redirector->gotoSimple('login', "user");
             }
             return false;
         }
         // user is logged in sucessfully so add information to the session
         $user = $authAdapter->getResultRowObject();
         $useraccount = new UserAccount();
         $useraccount->populate($user->id);
     }
     // exit;
     # trx login
     if ($credcolumn == 'trx') {
         $useraccount = new UserAccount();
         $useraccount->populate($id);
         // debugMessage($result); exit();
         if (isEmptyString($useraccount->getID())) {
             // return to the home page
             if (!isArrayKeyAnEmptyString(URL_FAILURE, $formvalues)) {
                 $session->setVar(ERROR_MESSAGE, "Invalid Email or Username or Password. <br />Please Try Again.");
                 $this->_helper->redirector->gotoUrl(decode($this->_getParam(URL_FAILURE)));
             } else {
                 $session->setVar(ERROR_MESSAGE, "Invalid Email or Username or Password. <br />Please Try Again.");
                 $this->_helper->redirector->gotoSimple('login', "user");
             }
             return false;
         }
     }
     // debugMessage($useraccount->toArray()); exit();
     $session->setVar("userid", $useraccount->getID());
     $session->setVar("username", $useraccount->getUserName());
     $session->setVar("type", $useraccount->getType());
     $session->setVar("companyid", $useraccount->getCompanyID());
     $session->setVar("istimesheetuser", $useraccount->getIsTimesheetUser());
     $session->setVar("browseraudit", $browser_session);
     $session->setVar("user", json_encode($useraccount->toArray()));
     $session->setVar("company", json_encode($useraccount->getCompany()->toArray()));
     // clear user specific cache, before it is used again
     $this->clearUserCache();
     // Add successful login event to the audit trail
     $audit_values['module'] = 1;
     $audit_values['usecase'] = '1.1';
     $audit_values['transactiontype'] = USER_LOGIN;
     $audit_values['status'] = "Y";
     $audit_values['userid'] = $useraccount->getID();
     $audit_values['transactiondetails'] = "Login for user with id '" . $this->_getParam("email") . "' successful";
     // $this->notify(new sfEvent($this, USER_LOGIN, $audit_values));
     if (isEmptyString($this->_getParam("redirecturl"))) {
         # forward to the dashboard
         $this->_helper->redirector->gotoSimple("index", "dashboard");
     } else {
         # redirect to the page the user was coming from
         if (!isEmptyString($this->_getParam(SUCCESS_MESSAGE))) {
             $successmessage = decode($this->_getParam(SUCCESS_MESSAGE));
             $session->setVar(SUCCESS_MESSAGE, $successmessage);
         }
         $this->_helper->redirector->gotoUrl(decode($this->_getParam("redirecturl")));
     }
 }
示例#9
0
 function encuentraAssetEnContenido($web_descargada)
 {
     $asset = "Por rellenar";
     dbug('asset, prueba 0: ' . $asset);
     if (stringContains($asset, array('"', '{', '}', '<', '>', ' ')) && enString($web_descargada, "assetID=")) {
         $asset = entre1y2($web_descargada, 'assetID=', '_');
     }
     dbug('asset, prueba 1: ' . $asset);
     if (stringContains($asset, array('"', '{', '}', '<', '>', ' '))) {
         $asset = substr($asset, 1);
         dbug('asset, prueba 2: ' . $asset);
     }
     if (stringContains($asset, array('"', '{', '}', '<', '>', ' '))) {
         if (enString($web_descargada, 'lass="imgT"') && enString($web_descargada, 'href="')) {
             $p = strpos($web_descargada, 'lass="imgT"');
             $asset = entre1y2_a($web_descargada, $p, 'href="', '"');
             dbug('extraer asset de url: ' . $asset);
             if (enString($asset, '.shtml')) {
                 if (!enString($asset, 'rtve.es')) {
                     $asset = 'http://www.rtve.es/' . $asset;
                 }
                 $assetW = CargaWebCurl($asset);
                 dbug('lanzando encuentraAssetEnContenido() con el contenido de ' . $asset);
                 $asset = $this->encuentraAssetEnContenido($assetW);
             } else {
                 preg_match_all('@/(\\d+)/@', $asset, $matches);
                 $asset = $matches[1][0];
             }
             dbug('asset, prueba 3: ' . $asset);
         } else {
             dbug('asset, prueba 3. No se realiza.');
         }
     }
     if (stringContains($asset, array('"', '{', '}', '<', '>', ' '))) {
         preg_match_all('@data-assetid="(\\d+)_@i', $web_descargada, $matches);
         $asset = $matches[1][0];
         dbug('asset, prueba 3.5: ' . $asset);
     }
     if (stringContains($asset, array('"', '{', '}', '<', '>', ' '))) {
         preg_match_all('@DC.identifier" ?content="(\\d+)"@', $web_descargada, $matches);
         $asset = $matches[1][0];
         dbug('asset, prueba 4: ' . $asset);
     }
     if (stringContains($asset, array('"', '{', '}', '<', '>', ' '))) {
         preg_match_all('@/(\\d+)/@', $this->web, $matches);
         $asset = $matches[1][0];
         dbug('asset, prueba 3 (de la url): ' . $asset);
     }
     if (!is_numeric($asset) && preg_match('#class="M[ "][\\s\\S]*?<a href=.*/([0-9]+)/#', $web_descargada, $matches)) {
         dbug_r($matches);
         $asset = $matches[1];
     }
     dbug('asset=' . $asset);
     return $asset;
 }
示例#10
0
 function calcula()
 {
     $obtenido = array('enlaces' => array());
     /*
     http://www.ccma.cat/324/Grecia-haura-de-celebrar-eleccions-despres-de-fracassar-el-tercer-intent-delegir-president/noticia/2625031/
     http://www.tv3.cat/videos/188877281/Els-ajudants-del-pare-Noel#
     videos/188877281/
     http://www.tv3.cat/pvideo/FLV_bbd_dadesItem.jsp?idint=
     */
     if (enString($this->web, 'http://www.tv3.cat/pprogrames/hd/mhdSeccio.jsp')) {
         setErrorWebIntera('Los vídeos en HD pueden descargarse desde TV3.');
         return;
     }
     $id = '';
     if (enString($this->web_descargada, 'arrayVideos = [')) {
         $id = entre1y2($this->web_descargada, 'arrayVideos = [', ',');
         dbug('video de formato admitido en js. id video=' . $id);
     } elseif (enString($this->web_descargada, '.videoid')) {
         preg_match('@\\.videoid[^0-9^;]+([0-9]+?);@', $this->web_descargada, $match);
         dbug_r($match);
         $id = $match[1];
         dbug('video de formato admitido en js (.videoid). id video=' . $id);
     } elseif (enString($this->web_descargada, 'idint="')) {
         $id = entre1y2($this->web_descargada, 'dint="', '"');
         dbug('video de formato admitido en js (dint="). id video=' . $id);
     } elseif (enString($this->web_descargada, '<div class="SSG cat_videos">')) {
         preg_match_all('#<h2>(.+?)</h2>[\\s\\S]*?<span class="id_video">([0-9]+?)</span>#', $this->web_descargada, $matches);
         dbug_r($matches);
         for ($i = 0, $ii = count($matches[0]); $i < $ii; $i++) {
             $obtenido['enlaces'][] = array('titulo' => utf8_encode($matches[1][$i]));
             $this->resuelveIDMetodo2($matches[2][$i], $obtenido['enlaces'], $titulo, $imagen, true);
         }
         dbug('Varios vídeos (<div class="SSG cat_videos">)');
         $obtenido['titulo'] = $titulo;
         $obtenido['imagen'] = $imagen;
         finalCadena($obtenido);
         return;
     } else {
         //la id esta en la url
         $p = strrposF($this->web, '/videos/');
         $f = strrpos($this->web, '/', $p);
         if (!$f) {
             $id = substr($this->web, $p);
         } else {
             $id = substr($this->web, $p, $f - $p);
         }
         if (stringContains($id, array(' ', '<', '>', '/', '.')) || $id == '') {
             //la id esta en la url, o deberia, pero no esta como siempre. encontrar.
             // '/\/[0-9^\/]*\//';
             preg_match_all('|/([0-9]+)/|', str_replace('//www.ccma.cat/324/', '', $this->web), $coincidencias, PREG_OFFSET_CAPTURE);
             dbug_r($coincidencias);
             $id = $coincidencias[1][0][0];
         }
         dbug('video de formato admitido? (en url): id video=' . $id);
     }
     $tresalacarta = 0;
     if (stringContains($id, array(' ', '<', '>', '/', '.')) || $id == '') {
         //3alacarta
         if (enString($this->web, '3alacarta')) {
             dbug('3alacarta');
             $p = strpos($this->web, '/#/') + 2;
             $id = substr($this->web, $p);
             $tresalacarta = 1;
         }
     }
     if (stringContains($id, array('<', '>', '/', '.')) || $id == '') {
         $p = strpos($this->web_descargada, '<object');
         $id = entre1y2_a($this->web_descargada, $p, "id='EVP", "'");
         $letras = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
         $id = str_replace($letras, '', strtoupper($id));
     }
     if (!is_numeric($id) || $id == '') {
         $retfull_no_espacios = str_replace(' ', '', $this->web_descargada);
         //la id esta en el html
         //VIDEO_ID = 4018251;
         $p = strrposF($retfull_no_espacios, 'VIDEO_ID=');
         $f = strpos($retfull_no_espacios, ';', $p);
         $id = substr($retfull_no_espacios, $p, $f - $p);
         if (!is_numeric($id) || $id == '') {
             //la id esta en el html
             //VIDEO_ID = 4018251;
             $p = strrposF($retfull_no_espacios, 'videoid=');
             $f = strpos($retfull_no_espacios, '&', $p);
             $id = substr($retfull_no_espacios, $p, $f - $p);
             if (!is_numeric($id) || $id == '') {
                 $p = strrposF($retfull_no_espacios, 'videoid=');
                 $f = strpos($retfull_no_espacios, ';', $p);
                 $id = substr($retfull_no_espacios, $p, $f - $p);
                 //echo '.'.$retfull_no_espacios.'.';
                 if (!is_numeric($id) || $id == '') {
                     //<span class="id_video">3260890</span>
                     $id = entre1y2($retfull_no_espacios, '<spanclass="id_video">', '</span>');
                     if (!is_numeric($id) || $id == '') {
                         //<span> </span>
                         $sujeto = $retfull_no_espacios;
                         //$patron = '/\/[0-9^\/]*\//';
                         $patron = '|<span>([0-9]+)</span>|';
                         preg_match_all($patron, $sujeto, $coincidencias, PREG_OFFSET_CAPTURE);
                         dbug_r($coincidencias);
                         $id = $coincidencias[1][0][0];
                         if (!is_numeric($id) || $id == '') {
                             //<span class="id">3260890</span>
                             $id = entre1y2($retfull_no_espacios, '<spanclass="id">', '</span>');
                             if (!is_numeric($id) || $id == '') {
                                 //embedEVPLight(2692490,601)
                                 $id = entre1y2($retfull_no_espacios, 'embedEVPLight(', ',');
                                 if (!is_numeric($id) || $id == '') {
                                     dbug('fallo');
                                 }
                             } else {
                                 dbug('span class="id"');
                             }
                         } else {
                             dbug('span');
                         }
                     } else {
                         dbug('span class="id_video"');
                     }
                 } else {
                     dbug('encontrado con videoid = ');
                 }
             } else {
                 dbug('encontrado con VIDEO_ID = ');
             }
         } else {
             dbug('encontrado con VIDEOID=...&');
         }
         dbug('video de formato admitido (en html): id video=' . $id);
     } else {
         dbug('id sacada con <object ... id="EVP..." -> id video=' . $id);
     }
     if ($id == '') {
         //id no encontrada:
         //fallo url
         setErrorWebIntera('No se pudo encontrar la ID de ningún vídeo.');
         return;
     }
     /////////usa de estas dos dice que es un video de windows media player...
     //playWMOVideoQualitat
     //video-wmp
     if (enString($this->web_descargada, 'playWMOVideoQualitat')) {
         dbug('metodo 1');
         if ($tresalacarta != 1) {
             //titulo
             //<h1>Els ajudants del pare Noel</h1>
             $titulo = entre1y2($this->web_descargada, '<h1>', '</h1>');
             $titulo = limpiaTitulo($titulo);
             dbug('titulo=' . $titulo);
         }
         $this->resuelveIDMetodo1($id, $obtenido['enlaces']);
     } else {
         if (enString($this->web_descargada, 'insertaEVP(')) {
             dbug('metodo 2');
             if ($tresalacarta != 1) {
                 //titulo
                 //<h1>Amb Fidel, passi el que passi</h1>
                 $titulo = entre1y2($this->web_descargada, '<h1>', '</h1>');
                 if (stringContains($titulo, array('<', '>'))) {
                     $titulo = entre1y2($titulo, 'arrayTitol = ["', '"');
                 } else {
                     //imagen
                     //'/multimedia/jpg/3/6/1336300867363.jpg'
                     $p = strpos($this->web_descargada, "/multimedia/");
                     $f = strposF($this->web_descargada, '.jpg', $p);
                     $imagen = 'http://www.tv3.cat' . substr($this->web_descargada, $p, $f - $p);
                     dbug('imagen=' . $imagen);
                 }
                 $titulo = limpiaTitulo($titulo);
                 dbug('titulo=' . $titulo);
             }
             //insertaEVP("flashcontent", flashvars, params, size );
             $this->resuelveIDMetodo2($id, $obtenido['enlaces'], $titulo, $imagen);
         } elseif ($id !== '') {
             dbug('metodo (3). Suponemos que hay id.');
             $this->resuelveIDMetodo2($id, $obtenido['enlaces'], $titulo, $imagen);
         }
     }
     $obtenido['titulo'] = $titulo;
     $obtenido['imagen'] = $imagen;
     finalCadena($obtenido);
 }
示例#11
0
 function calcula()
 {
     //titulo
     //<p class="fecha">08-05-2012</p>
     //<p class="programa">Objetivo Asturias</p>
     //<meta property="og:title" content=" La Agencia Tributaria inició hace cuatro meses una investigación fiscal en el Montepío de la Minería" />
     $p = strpos($this->web_descargada, 'og:title');
     $titulo = entre1y2_a($this->web_descargada, $p, 'content="', '"');
     $titulo = limpiaTitulo($titulo);
     dbug('titulo=' . $titulo);
     //&image=fotos//11/10/121317639014_Cabecera Objetivo Asturias.jpg&
     //imagen
     $p = strposF($this->web_descargada, "'image':");
     $imagen = entre1y2_a($this->web_descargada, $p, "'", "'");
     dbug('imagen=' . $imagen);
     $p = strposF($this->web_descargada, "'file'");
     $url = entre1y2_a($this->web_descargada, $p, "'", "'");
     dbug($url);
     dbug("A");
     if (!stringContains($url, array(".mp4", ".flv"))) {
         dbug("B");
         // Probemos con la api de json
         $apiURL = "http://rtpa.es/api/muestra_json_vod.php?id_programa=" . entre1y2($this->web_descargada, "id_programa=", "&");
         $apiResp = CargaWebCurl($apiURL);
         dbug($apiResp);
         $apiResp = json_decode($apiResp, true);
         dbug_r($apiResp);
         $imagen = $apiResp['VOD'][0]['url_imagen'];
         dbug('imagen=' . $imagen);
         $titulo = $apiResp['VOD'][0]['nombre_programa'];
         dbug('$titulo=' . $titulo);
         $url = "http://rtpa.ondemand.flumotion.com/rtpa/ondemand/vod/" . $apiResp['VOD'][0]['id_programacion'] . "_1.mp4";
         dbug($url);
         // http://www.rtpa.es/programa:EMBAJADORES_1393094582.html
         // http://rtpa.es/api/muestra_json_vod.php?id_programa=1393094582
         // http://rtpa.ondemand.flumotion.com/rtpa/ondemand/vod/66103_1.mp4?start=0
     }
     //no borrar hasta confirmar que rtpa ya no tiene listas de reproduccion
     /*
     if(enString($retfull,"reproductorVideoOnDemmand-mp4-rtpa.swf")){
     	//<source src="http://asturiastv.eu/vod/2012/04/20120417TPANOTICIAS1_1.mp4" type="video/mp4">
     	$p=strpos($ret,'<source src="')+13;
     	$f=strpos($ret,'"', $p);
     	$ret=substr($ret, $p, $f-$p);
     	//ret ya tiene el enlace. fue rapido
     }
     if(enString($retfull,"reproductorVideoOnDemmand.swf")){
     	//<source src="http://asturiastv.eu/vod/2012/04/20120417TPANOTICIAS1_1.mp4" type="video/mp4">
     	$p=strpos($ret,'partes=')+7;
     	$f=strpos($ret,'&',$p);
     	$partes=substr($ret,$p,$f-$p);
     
     	$files=array();
     
     	for($i=1;$i<$partes+1;$i++){
     		$nvideo="video".$i."=";
     		$p=strpos($retfull,$nvideo,$lastpos)+strlen($nvideo);
     		$f=strpos($retfull,'&',$p);
     		$temp=substr($retfull,$p,$f-$p);
     		$temp='http://195.55.74.217/rtpa/ondemand/vod/'.$temp.'_'.$i.'.mp4';
     		
     		if(esVideoAudioAnon($temp)){
     			$files[]=$temp;
     			dbug('url='.$temp);
     		}
     		else
     			dbug('debería haber una url pero no lo era');
     	}
     	$ret="";
     	foreach($files as $value_display){
     		//echo "</br>".$value_display."</br>";
     		$ret.=$value_display."|";
     	}
     	$ret=substr($ret, 0, -1);
     }
     */
     $obtenido = array('titulo' => $titulo, 'imagen' => $imagen, 'enlaces' => array(array('url' => $url, 'tipo' => 'http')));
     finalCadena($obtenido);
 }
示例#12
0
 function parseaXMLNormal($url, &$xml_ret, $modo = 'normal')
 {
     dbug('parseaXMLNormal');
     dbug('xml=' . $url);
     $xml = CargaWebCurl($url);
     if ($xml_ret === '') {
         dbug('xml_ret (url)=' . $url);
         $xml_ret = $xml;
     }
     $netStorage = false;
     if (enString($xml, '<NetStorage><![CDATA[')) {
         $ret2 = entre1y2($xml, '<NetStorage><![CDATA[', ']');
         $netStorage = true;
     } else {
         $ret2 = entre1y2($xml, '<urlHttpVideo><![CDATA[', ']');
     }
     //fix para evitar geobloqueo.
     $ret2 = strtr($ret2, array('geodesprogresiva' => 'desprogresiva'));
     $p = strpos($xml, '<archivoMultimedia>');
     $ret = entre1y2_a($xml, $p, '<archivo><![CDATA[', ']');
     //$ret contiene el primer enlace. usandolo podemos saber si hay mas enlaces.
     //sacamos la extension de $ret y suponiendo que todas las partes tienen la misma extension
     //buscamos la existencia del mismo principio y aseguramos con el mismo final
     $extension = substr($ret, strposF($ret, '.'));
     dbug('extensión: ' . $extension);
     if ($extension === 'f4v') {
         dbug('Tiene DRM (ext === f4v). No usar resultado.');
         return array();
     }
     $f = strrposF($ret, '/', 0);
     $baselimpia = substr($ret, 0, $f);
     $lastpos = $total = 0;
     $i = 1;
     $obtenidoT = array();
     while ($total == 0) {
         $p = strpos($xml, '<archivoMultimedia>', $lastpos) + 3;
         $lastpos = $f = strpos($xml, 'archivoMultimedia', $p);
         $rettemp = substr($xml, $p, $f - $p);
         if ($netStorage) {
             $temp = $ret2 . entre1y2($rettemp, '<archivoNetStorage><![CDATA[', ']');
         } else {
             $temp = $ret2 . entre1y2($rettemp, '<archivo><![CDATA[', ']');
         }
         if (enString($temp, $extension)) {
             if ($modo == 'multi') {
                 $urltxt = entre1y2($xml, '<nombre><![CDATA[', ']');
                 if (stringContains($urltxt, array('<', '>'))) {
                     //<title>CarreraBarhein1 </title>
                     $urltxt = entre1y2($xml, '<title>', '<');
                 }
                 $urltxt = limpiaTitulo($urltxt);
             } else {
                 $urltxt = 'parte ' . $i;
             }
             dbug('url encontrada: ' . $temp);
             $obtenidoT[] = array('url' => $temp, 'tipo' => 'http', 'url_txt' => $urltxt);
         } else {
             $total = $i;
         }
         $i++;
     }
     $retornar = array();
     if (count($obtenidoT) > 1) {
         $retornar[] = array('titulo' => 'En partes:');
         foreach ($obtenidoT as $individual) {
             $retornar[] = $individual;
         }
         //añadir la versión del vídeo completa. Gracias a doriape@gmail.com, creador de www.elbarco.tk y www.elbarcoxml.tk
         $retornar[] = array('titulo' => 'Completo:', 'url' => 'rtmp://antena3tvfs.fplive.net/antena3mediateca/' . $baselimpia . '000.' . $extension, 'tipo' => 'rtmp');
     } else {
         if ($modo === 'normal') {
             unset($obtenidoT[0]['url_txt']);
         }
         foreach ($obtenidoT as $elem) {
             $retornar[] = $elem;
         }
     }
     return $retornar;
 }