Beispiel #1
0
 /**
  * gather_art
  *
  * This runs through all of the albums and finds art for them
  * This runs through all of the needs art albums and trys
  * to find the art for them from the mp3s
  */
 public function gather_art()
 {
     // Make sure they've actually got methods
     $art_order = AmpConfig::get('art_order');
     if (!count($art_order)) {
         debug_event('gather_art', 'art_order not set, Catalog::gather_art aborting', 3);
         return true;
     }
     // Prevent the script from timing out
     set_time_limit(0);
     $search_count = 0;
     $albums = $this->get_album_ids();
     // Run through them and get the art!
     foreach ($albums as $album_id) {
         $art = new Art($album_id, 'album');
         $album = new Album($album_id);
         // We're going to need the name here
         $album->format();
         debug_event('gather_art', 'Gathering art for ' . $album->name, 5);
         $options = array('album_name' => $album->full_name, 'artist' => $album->artist_name, 'keyword' => $album->artist_name . ' ' . $album->full_name);
         $results = $art->gather($options, 1);
         if (count($results)) {
             // Pull the string representation from the source
             $image = Art::get_from_source($results[0], 'album');
             if (strlen($image) > '5') {
                 $art->insert($image, $results[0]['mime']);
                 // If they've enabled resizing of images generate a thumbnail
                 if (AmpConfig::get('resize_images')) {
                     $thumb = $art->generate_thumb($image, array('width' => 275, 'height' => 275), $results[0]['mime']);
                     if (is_array($thumb)) {
                         $art->save_thumb($thumb['thumb'], $thumb['thumb_mime'], '275x275');
                     }
                 }
             } else {
                 debug_event('gather_art', 'Image less than 5 chars, not inserting', 3);
             }
         }
         // Stupid little cutesie thing
         $search_count++;
         if (UI::check_ticker()) {
             UI::update_text('count_art_' . $this->id, $search_count);
             UI::update_text('read_art_' . $this->id, scrub_out($album->name));
         }
         unset($found);
     }
     // foreach albums
     // One last time for good measure
     UI::update_text('count_art_' . $this->id, $search_count);
 }
Beispiel #2
0
 public static function photo($params)
 {
     if (count($params) == 2) {
         if ($params[0] == ':' && $params[1] == 'transcode') {
             $width = $_REQUEST['width'];
             $height = $_REQUEST['height'];
             $url = $_REQUEST['url'];
             // Replace 32400 request port with the real listening port
             // *** To `Plex Inc`: ***
             // Please allow listening port server configuration for your Plex server
             // and fix your clients to not request resources so hard-coded on 127.0.0.1:32400.
             // May be ok on Apple & UPnP world but that's really ugly for a server...
             // Yes, it's a little hack but it works.
             $localrs = "http://127.0.0.1:32400/";
             $options = Core::requests_options();
             if (strpos($url, $localrs) !== false) {
                 $options = array();
                 // In case proxy is set, no proxy for local addresses
                 $url = "http://127.0.0.1:" . Plex_XML_Data::getServerPort() . "/" . substr($url, strlen($localrs));
             }
             if ($width && $height && $url) {
                 $request = Requests::get($url, array(), $options);
                 if ($request->status_code == 200) {
                     ob_clean();
                     $mime = $request->headers['content-type'];
                     self::setHeader($mime);
                     $art = new Art(0);
                     $art->raw = $request->body;
                     $thumb = $art->generate_thumb($art->raw, array('width' => $width, 'height' => $height), $mime);
                     echo $thumb['thumb'];
                     exit;
                 }
             }
         }
     }
 }
Beispiel #3
0
 /**
  *
  * @param string $type
  * @param int $id
  */
 public function gather_art_item($type, $id)
 {
     debug_event('gather_art', 'Gathering art for ' . $type . '/' . $id . '...', 5);
     // Should be more generic !
     if ($type == 'video') {
         $libitem = Video::create_from_id($id);
     } else {
         $libitem = new $type($id);
     }
     $options = array();
     $libitem->format();
     if ($libitem->id) {
         if (count($options) == 0) {
             // Only search on items with default art kind as `default`.
             if ($libitem->get_default_art_kind() == 'default') {
                 $keywords = $libitem->get_keywords();
                 $keyword = '';
                 foreach ($keywords as $key => $word) {
                     $options[$key] = $word['value'];
                     if ($word['important']) {
                         if (!empty($word['value'])) {
                             $keyword .= ' ' . $word['value'];
                         }
                     }
                 }
                 $options['keyword'] = $keyword;
             }
             $parent = $libitem->get_parent();
             if ($parent != null) {
                 if (!Art::has_db($parent['object_id'], $parent['object_type'])) {
                     $this->gather_art_item($parent['object_type'], $parent['object_id']);
                 }
             }
         }
     }
     $art = new Art($id, $type);
     $results = $art->gather($options, 1);
     if (count($results)) {
         // Pull the string representation from the source
         $image = Art::get_from_source($results[0], $type);
         if (strlen($image) > '5') {
             $art->insert($image, $results[0]['mime']);
             // If they've enabled resizing of images generate a thumbnail
             if (AmpConfig::get('resize_images')) {
                 $size = array('width' => 275, 'height' => 275);
                 $thumb = $art->generate_thumb($image, $size, $results[0]['mime']);
                 if (is_array($thumb)) {
                     $art->save_thumb($thumb['thumb'], $thumb['thumb_mime'], $size);
                 }
             }
         } else {
             debug_event('gather_art', 'Image less than 5 chars, not inserting', 3);
         }
     }
     if ($type == 'video' && AmpConfig::get('generate_video_preview')) {
         Video::generate_preview($id);
     }
     if (UI::check_ticker()) {
         UI::update_text('read_art_' . $this->id, $libitem->get_fullname());
     }
 }