Пример #1
0
</th>
        </tr>
    </thead>
    <tbody>
        <?php 
// Cache the ratings we are going to use
if (AmpConfig::get('ratings')) {
    Rating::build_cache('tvshow', $object_ids);
}
if (AmpConfig::get('userflags')) {
    Userflag::build_cache('tvshow', $object_ids);
}
/* Foreach through every tv show that has been passed to us */
foreach ($object_ids as $tvshow_id) {
    $libitem = new TVShow($tvshow_id);
    $libitem->format();
    ?>
        <tr id="tvshow_<?php 
    echo $libitem->id;
    ?>
" class="<?php 
    echo UI::flip_class();
    ?>
">
            <?php 
    require AmpConfig::get('prefix') . UI::find_template('show_tvshow_row.inc.php');
    ?>
        </tr>
        <?php 
}
//end foreach
Пример #2
0
 public static function library_metadata($params)
 {
     $r = Plex_XML_Data::createLibContainer();
     $n = count($params);
     $litem = null;
     $createMode = $_SERVER['REQUEST_METHOD'] == 'POST';
     $editMode = $_SERVER['REQUEST_METHOD'] == 'PUT';
     if ($n > 0) {
         $key = $params[0];
         $id = Plex_XML_Data::getAmpacheId($key);
         if ($editMode) {
             self::check_access(50);
         }
         if ($n == 1) {
             // Should we check that files still exists here?
             $checkFiles = $_REQUEST['checkFiles'];
             $extra = $_REQUEST['includeExtra'];
             if (Plex_XML_Data::isArtist($key)) {
                 $litem = new Artist($id);
                 $litem->format();
                 if ($editMode) {
                     $dmap = array('title' => 'name', 'summary' => null);
                     $litem->update(self::get_data_from_map($dmap));
                 }
                 Plex_XML_Data::addArtist($r, $litem);
             } elseif (Plex_XML_Data::isAlbum($key)) {
                 $litem = new Album($id);
                 $litem->format();
                 if ($editMode) {
                     $dmap = array('title' => 'name', 'year' => null);
                     $litem->update(self::get_data_from_map($dmap));
                 }
                 Plex_XML_Data::addAlbum($r, $litem);
             } elseif (Plex_XML_Data::isTrack($key)) {
                 $litem = new Song($id);
                 $litem->format();
                 if ($editMode) {
                     $dmap = array('title' => null);
                     $litem->update(self::get_data_from_map($dmap));
                 }
                 Plex_XML_Data::addSong($r, $litem);
             } elseif (Plex_XML_Data::isTVShow($key)) {
                 $litem = new TVShow($id);
                 $litem->format();
                 if ($editMode) {
                     $dmap = array('title' => 'name', 'year' => null, 'summary' => null);
                     $litem->update(self::get_data_from_map($dmap));
                 }
                 Plex_XML_Data::addTVShow($r, $litem);
             } elseif (Plex_XML_Data::isTVShowSeason($key)) {
                 $litem = new TVShow_Season($id);
                 $litem->format();
                 Plex_XML_Data::addTVShowSeason($r, $litem);
             } elseif (Plex_XML_Data::isVideo($key)) {
                 $litem = Video::create_from_id($id);
                 if ($editMode) {
                     $dmap = array('title' => null, 'year' => null, 'originallyAvailableAt' => 'release_date', 'originalTitle' => 'original_name', 'summary' => null);
                     $litem->update(self::get_data_from_map($dmap));
                 }
                 $litem->format();
                 $subtype = strtolower(get_class($litem));
                 if ($subtype == 'tvshow_episode') {
                     Plex_XML_Data::addEpisode($r, $litem, true);
                 } elseif ($subtype == 'movie') {
                     Plex_XML_Data::addMovie($r, $litem, true);
                 }
             } elseif (Plex_XML_Data::isPlaylist($key)) {
                 $litem = new Playlist($id);
                 $litem->format();
                 if ($editMode) {
                     $dmap = array('title' => 'name');
                     $litem->update(self::get_data_from_map($dmap));
                 }
                 Plex_XML_Data::addPlaylist($r, $litem);
             }
         } else {
             $subact = $params[1];
             if ($subact == "children") {
                 if (Plex_XML_Data::isArtist($key)) {
                     $litem = new Artist($id);
                     $litem->format();
                     Plex_XML_Data::setArtistRoot($r, $litem);
                 } else {
                     if (Plex_XML_Data::isAlbum($key)) {
                         $litem = new Album($id);
                         $litem->format();
                         Plex_XML_Data::setAlbumRoot($r, $litem);
                     } else {
                         if (Plex_XML_Data::isTVShow($key)) {
                             $litem = new TVShow($id);
                             $litem->format();
                             Plex_XML_Data::setTVShowRoot($r, $litem);
                         } else {
                             if (Plex_XML_Data::isTVShowSeason($key)) {
                                 $litem = new TVShow_Season($id);
                                 $litem->format();
                                 Plex_XML_Data::setTVShowSeasonRoot($r, $litem);
                             }
                         }
                     }
                 }
             } elseif ($subact == "thumbs" || $subact == "posters" || $subact == "arts" || $subact == 'backgrounds') {
                 $kind = Plex_XML_Data::getPhotoKind($subact);
                 if ($createMode) {
                     // Upload art
                     $litem = Plex_XML_Data::createLibraryItem($key);
                     if ($litem != null) {
                         $uri = Plex_XML_Data::getMetadataUri($key) . '/' . Plex_XML_Data::getPhotoPlexKind($kind) . '/' . $key;
                         if (is_a($litem, 'video')) {
                             $type = 'video';
                         } else {
                             $type = get_class($litem);
                         }
                         $art = new Art($litem->id, $type, $kind);
                         $raw = file_get_contents("php://input");
                         $art->insert($raw);
                         header('Content-Type: text/html');
                         echo $uri;
                         exit;
                     }
                 }
                 Plex_XML_Data::addPhotos($r, $key, $kind);
             } elseif ($subact == "thumb" || $subact == "poster" || $subact == "art" || $subact == "background") {
                 if ($n == 3) {
                     $kind = Plex_XML_Data::getPhotoKind($subact);
                     // Ignore art id as we can only have 1 thumb
                     $art = null;
                     if (Plex_XML_Data::isArtist($key)) {
                         $art = new Art($id, "artist", $kind);
                     } else {
                         if (Plex_XML_Data::isAlbum($key)) {
                             $art = new Art($id, "album", $kind);
                         } else {
                             if (Plex_XML_Data::isTrack($key)) {
                                 $art = new Art($id, "song", $kind);
                             } else {
                                 if (Plex_XML_Data::isTVShow($key)) {
                                     $art = new Art($id, "tvshow", $kind);
                                 } else {
                                     if (Plex_XML_Data::isTVShowSeason($key)) {
                                         $art = new Art($id, "tvshow_season", $kind);
                                     } else {
                                         if (Plex_XML_Data::isVideo($key)) {
                                             $art = new Art($id, "video", $kind);
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     if ($art != null) {
                         $art->get_db();
                         ob_clean();
                         if (!isset($size)) {
                             self::setHeader($art->raw_mime);
                             echo $art->raw;
                         } else {
                             $dim = array();
                             $dim['width'] = $size;
                             $dim['height'] = $size;
                             $thumb = $art->get_thumb($dim);
                             self::setHeader($art->thumb_mime);
                             echo $thumb['thumb'];
                         }
                         exit;
                     }
                 }
             }
         }
     }
     if ($litem != null) {
         $catalog_ids = $litem->get_catalogs();
         if (count($catalog_ids) > 0) {
             $catalog = Catalog::create_from_id($catalog_ids[0]);
             Plex_XML_Data::addCatalogIdentity($r, $catalog);
         }
     }
     Plex_XML_Data::setContainerSize($r);
     self::apiOutputXml($r->asXML());
 }
Пример #3
0
 /**
  * format
  * this function takes the object and reformats some values
  */
 public function format($details = true)
 {
     $this->f_name = T_('Season') . ' ' . $this->season_number;
     $tvshow = new TVShow($this->tvshow);
     $tvshow->format($details);
     $this->f_tvshow = $tvshow->f_name;
     $this->f_tvshow_link = $tvshow->f_link;
     $this->link = AmpConfig::get('web_path') . '/tvshow_seasons.php?action=show&season=' . $this->id;
     $this->f_link = '<a href="' . $this->link . '" title="' . $tvshow->f_name . ' - ' . $this->f_name . '">' . $this->f_name . '</a>';
     if ($details) {
         $this->_get_extra_info();
     }
     return true;
 }
Пример #4
0
 public static function setTVShowSeasonRoot(SimpleXMLElement $xml, TVShow_Season $season)
 {
     $tvshow = new TVShow($season->tvshow);
     $tvshow->format();
     $id = self::getTVShowSeasonId($season->id);
     $xml->addAttribute('key', $id);
     $xml->addAttribute('allowSync', '1');
     $xml->addAttribute('nocache', '1');
     $xml->addAttribute('parentIndex', '1');
     // ??
     $xml->addAttribute('parentTitle', '');
     $xml->addAttribute('grandparentStudio', '');
     $xml->addAttribute('grandparentTitle', $tvshow->f_name);
     $xml->addAttribute('title1', $tvshow->f_name);
     $xml->addAttribute('title2', $season->f_name);
     $xml->addAttribute('viewGroup', 'episode');
     $xml->addAttribute('viewMode', '65592');
     $xml->addAttribute('thumb', self::getMetadataUri($id) . '/thumb/' . $id);
     $xml->addAttribute('art', self::getMetadataUri($id) . '/art/' . $id);
     //$xml->addAttribute('banner', self::getMetadataUri($id) . '/banner/' . $id);
     $episodes = $season->get_episodes();
     foreach ($episodes as $episode_id) {
         $episode = new TVShow_Episode($episode_id);
         $episode->format();
         self::addEpisode($xml, $episode);
     }
 }
Пример #5
0
 public static function _videoMetadata($prmPath, $prmQuery = '')
 {
     $root = 'amp://video';
     $pathreq = explode('/', $prmPath);
     if ($pathreq[0] == '' && count($pathreq) > 0) {
         array_shift($pathreq);
     }
     $meta = null;
     switch ($pathreq[0]) {
         case 'tvshows':
             switch (count($pathreq)) {
                 case 1:
                     $counts = count(Catalog::get_tvshows());
                     $meta = array('id' => $root . '/tvshows', 'parentID' => $root, 'restricted' => '1', 'childCount' => $counts, 'dc:title' => T_('TV Shows'), 'upnp:class' => 'object.container');
                     break;
                 case 2:
                     $tvshow = new TVShow($pathreq[1]);
                     if ($tvshow->id) {
                         $tvshow->format();
                         $meta = self::_itemTVShow($tvshow, $root . '/tvshows');
                     }
                     break;
                 case 3:
                     $season = new TVShow_Season($pathreq[2]);
                     if ($season->id) {
                         $season->format();
                         $meta = self::_itemTVShowSeason($season, $root . '/tvshows/' . $pathreq[1]);
                     }
                     break;
                 case 4:
                     $video = new TVShow_Episode($pathreq[3]);
                     if ($video->id) {
                         $video->format();
                         $meta = self::_itemVideo($video, $root . '/tvshows/' . $pathreq[1] . '/' . $pathreq[2]);
                     }
                     break;
             }
             break;
         case 'clips':
             switch (count($pathreq)) {
                 case 1:
                     $counts = Catalog::get_videos_count(null, 'clip');
                     $meta = array('id' => $root . '/clips', 'parentID' => $root, 'restricted' => '1', 'childCount' => $counts, 'dc:title' => T_('Clips'), 'upnp:class' => 'object.container');
                     break;
                 case 2:
                     $video = new Clip($pathreq[1]);
                     if ($video->id) {
                         $video->format();
                         $meta = self::_itemVideo($video, $root . '/clips');
                     }
                     break;
             }
             break;
         case 'movies':
             switch (count($pathreq)) {
                 case 1:
                     $counts = Catalog::get_videos_count(null, 'movie');
                     $meta = array('id' => $root . '/movies', 'parentID' => $root, 'restricted' => '1', 'childCount' => $counts, 'dc:title' => T_('Movies'), 'upnp:class' => 'object.container');
                     break;
                 case 2:
                     $video = new Movie($pathreq[1]);
                     if ($video->id) {
                         $video->format();
                         $meta = self::_itemVideo($video, $root . '/movies');
                     }
                     break;
             }
             break;
         case 'personal_videos':
             switch (count($pathreq)) {
                 case 1:
                     $counts = Catalog::get_videos_count(null, 'personal_video');
                     $meta = array('id' => $root . '/personal_videos', 'parentID' => $root, 'restricted' => '1', 'childCount' => $counts, 'dc:title' => T_('Personal Videos'), 'upnp:class' => 'object.container');
                     break;
                 case 2:
                     $video = new Personal_Video($pathreq[1]);
                     if ($video->id) {
                         $video->format();
                         $meta = self::_itemVideo($video, $root . '/personal_videos');
                     }
                     break;
             }
             break;
         default:
             $meta = array('id' => $root, 'parentID' => '0', 'restricted' => '1', 'childCount' => '4', 'dc:title' => T_('Video'), 'upnp:class' => 'object.container');
             break;
     }
     return $meta;
 }
Пример #6
0
     }
     $tvshow = new TVShow($_REQUEST['tvshow_id']);
     if (!Catalog::can_remove($tvshow)) {
         debug_event('tvshow', 'Unauthorized to remove the tvshow `.' . $tvshow->id . '`.', 1);
         UI::access_denied();
         exit;
     }
     if ($tvshow->remove_from_disk()) {
         show_confirmation(T_('TVShow Deletion'), T_('TVShow has been deleted.'), AmpConfig::get('web_path'));
     } else {
         show_confirmation(T_('TVShow Deletion'), T_('Cannot delete this tvshow.'), AmpConfig::get('web_path'));
     }
     break;
 case 'show':
     $tvshow = new TVShow($_REQUEST['tvshow']);
     $tvshow->format();
     $object_ids = $tvshow->get_seasons();
     $object_type = 'tvshow_season';
     require_once AmpConfig::get('prefix') . '/templates/show_tvshow.inc.php';
     break;
 case 'match':
 case 'Match':
     $match = scrub_in($_REQUEST['match']);
     if ($match == "Browse") {
         $chr = "";
     } else {
         $chr = $match;
     }
     /* Enclose this in the purty box! */
     require AmpConfig::get('prefix') . '/templates/show_box_top.inc.php';
     show_alphabet_list('tvshows', 'tvshows.php', $match);