Esempio n. 1
0
 private function _fetchClassification(X_Page_ItemList_PItem $items)
 {
     $lets = 'ultimi-episodi,0-9,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';
     $lets = explode(',', $lets);
     foreach ($lets as $l) {
         $item = new X_Page_Item_PItem($this->getId() . "-{$l}", strtoupper($l));
         if ($l == "ultimi-episodi") {
             // translate ultimi-episodi... special case
             $item->setLabel(X_Env::_('p_jigoku_lastupdates'));
         }
         $item->setIcon('/images/icons/folder_32.png')->setType(X_Page_Item_PItem::TYPE_CONTAINER)->setCustom(__CLASS__ . ':location', "{$l}")->setLink(array('l' => X_Env::encode("{$l}")), 'default', false);
         $items->append($item);
     }
 }
 private function _fillPlaylist(X_Page_ItemList_PItem $items, $decoded, $lStack)
 {
     X_Debug::i("Decoded: " . print_r($decoded, true));
     // The format of $decoded (only notable parts):
     // {
     //		ok: true|false
     //		msg: $msg ; Setted only if ok = false
     //		folderId: $thisFolder
     //		folders: [
     //				{
     //					id: $folderID
     //					name: $folderName
     //				}, ...
     //			]
     //		objects: [
     //				{
     //					id: $objectID
     //					name: $objectName
     //					link: http://...?...&video=urlencoded(URL)&...
     //				},
     //				{
     //					id: $objectID
     //					name: $objectName
     //					link: http://...?...&host=megavideo&video=urlencoded(MEGAVIDEOURL)&...
     //				},
     //			]
     //		...
     // }
     foreach ($decoded->folders as $folder) {
         $_stack = $lStack;
         $_stack[] = $folder->id;
         $item = new X_Page_Item_PItem("opfitalia-folder-{$folder->id}", urldecode($folder->name));
         $item->setType(X_Page_Item_PItem::TYPE_CONTAINER)->setGenerator(__CLASS__)->setCustom(__CLASS__ . ':location', implode(':', $_stack))->setLink(array('l' => X_Env::encode(implode(':', $_stack))), 'default', false);
         $items->append($item);
     }
     foreach ($decoded->objects as $object) {
         $item = new X_Page_Item_PItem("opfitalia-video-{$object->id}", urldecode($object->name));
         $item->setType(X_Page_Item_PItem::TYPE_ELEMENT)->setGenerator(__CLASS__);
         // time to decode the link arg
         // file: index.php?page=show_streaming&video=http:\/\/www.dbforever.net\/strm\/onepiece\/one_piece_459.mp4&width=704&height=430
         // megavideo: index.php?page=show_streaming&host=megavideo&video=http:\/\/www.megavideo.com\/v\/GIV2R76V038221ac298ceb332a9cad75288c318b&width=640&height=480
         $link = explode('&', $object->link);
         $type = 'file';
         $href = '';
         foreach ($link as $sublink) {
             list($arg, $value) = @explode('=', $sublink, 2);
             if ($arg == 'host') {
                 if ($value == 'megavideo') {
                     $type = 'megavideo';
                 }
             }
             if ($arg == 'video') {
                 $href = str_replace('\\/', '/', urldecode($value));
             }
         }
         if ($type == 'megavideo') {
             // i gave to split the /v/ param only
             $splitted = explode('/v/', $href, 2);
             if (count($splitted) == 2) {
                 $href = $splitted[1];
             } else {
                 // try to decode it
                 // as ?v=
                 preg_match('#\\?v=(.+?)$#', $href, $id);
                 if (count($id) >= 2) {
                     $href = $id[1];
                 } else {
                     // if even this fail
                     // i have to skip thi entry
                     continue;
                 }
             }
             $item->setLabel($item->getLabel() . " [Megavideo]");
         }
         $item->setCustom(__CLASS__ . ':location', implode(':', $lStack) . "/{$type}/{$href}")->setLink(array('action' => 'mode', 'l' => X_Env::encode(implode(':', $lStack) . "/{$type}/{$href}")), 'default', false);
         $items->append($item);
     }
 }