$image = ''; $mime = ''; $filename = ''; $etag = ''; $typeManaged = false; if (isset($_GET['type'])) { switch ($_GET['type']) { case 'popup': $typeManaged = true; require_once AmpConfig::get('prefix') . UI::find_template('show_big_art.inc.php'); break; case 'session': // If we need to pull the data out of the session Session::check(); $filename = scrub_in($_REQUEST['image_index']); $image = Art::get_from_source($_SESSION['form']['images'][$filename], 'album'); $mime = $_SESSION['form']['images'][$filename]['mime']; $typeManaged = true; break; } } if (!$typeManaged) { $item = new $type($_GET['object_id']); $filename = $item->name ?: $item->title; $art = new Art($item->id, $type, $kind); $art->get_db(); $etag = $art->id; // That means the client has a cached version of the image $reqheaders = getallheaders(); if (isset($reqheaders['If-Modified-Since']) && isset($reqheaders['If-None-Match'])) { $ccontrol = $reqheaders['Cache-Control'];
/** * This insert art from file on disk. * @param string $filepath */ public function insert_from_file($filepath) { debug_event('art', 'Insert art from file on disk ' . $filepath, '5'); $image = Art::get_from_source(array('file' => $filepath), $this->type); $rfile = pathinfo($filepath); $mime = "image/" . $rfile['extension']; $this->insert($image, $mime); }
} // end foreach // Store the results for further use $_SESSION['form']['images'] = $images; require_once AmpConfig::get('prefix') . '/templates/show_arts.inc.php'; } else { show_confirmation(T_('Art Not Located'), T_('Art could not be located at this time. This may be due to write access error, or the file is not received correctly.'), $burl); } require_once AmpConfig::get('prefix') . '/templates/show_get_art.inc.php'; break; case 'select_art': /* Check to see if we have the image url still */ $image_id = $_REQUEST['image']; // Prevent the script from timing out set_time_limit(0); $image = Art::get_from_source($_SESSION['form']['images'][$image_id], 'album'); $mime = $_SESSION['form']['images'][$image_id]['mime']; // Special case for albums, I'm not sure if we should keep it, remove it or find a generic way if ($object_type == 'album') { $album = new $object_type($object_id); $album_groups = $album->get_group_disks_ids(); foreach ($album_groups as $a_id) { $art = new Art($a_id, $object_type); $art->insert($image, $mime); } } else { $art = new Art($object_id, $object_type); $art->insert($image, $mime); } header("Location:" . $burl); break;
*/ // Gotta do some math here! $total_images = count($images); $rows = floor($total_images / 4); $i = 0; UI::show_box_top(T_('Select New Album Art'), 'box box_album_art'); ?> <table class="table-data"> <tr> <?php while ($i <= $rows) { $j = 0; while ($j < 4) { $key = $i * 4 + $j; $image_url = AmpConfig::get('web_path') . '/image.php?type=session&image_index=' . $key; $dimensions = Core::image_dimensions(Art::get_from_source($_SESSION['form']['images'][$key], 'album')); if (!isset($images[$key])) { echo "<td> </td>\n"; } else { ?> <td align="center"> <a href="<?php echo $image_url; ?> " rel="prettyPhoto" target="_blank"><img src="<?php echo $image_url; ?> " alt="<?php echo T_('Album Art'); ?> " border="0" height="175" width="175" /></a>
public function upload_avatar() { $upload = array(); if (!empty($_FILES['avatar']['tmp_name']) && $_FILES['avatar']['size'] <= AmpConfig::get('max_upload_size')) { $path_info = pathinfo($_FILES['avatar']['name']); $upload['file'] = $_FILES['avatar']['tmp_name']; $upload['mime'] = 'image/' . $path_info['extension']; $image_data = Art::get_from_source($upload, 'user'); if ($image_data) { $art = new Art($this->id, 'user'); $art->insert($image_data, $upload['0']['mime']); } } }
/** * 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); }
/** * * @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()); } }
/** * get_artist_info * Returns artist information */ public static function get_artist_info($artist_id, $fullname = '') { $artist = null; if ($artist_id) { $artist = new Artist($artist_id); $artist->format(); $fullname = $artist->f_full_name; // Data newer than 6 months, use it if ($artist->last_update + 15768000 > time()) { $results = array(); $results['summary'] = $artist->summary; $results['placeformed'] = $artist->placeformed; $results['yearformed'] = $artist->yearformed; $results['largephoto'] = Art::url($artist->id, 'artist'); $results['megaphoto'] = $results['largephoto']; return $results; } } $query = 'artist=' . rawurlencode($fullname); $xml = self::get_lastfm_results('artist.getinfo', $query); $results = array(); $results['summary'] = strip_tags(preg_replace("#<a href=([^<]*)Last\\.fm</a>.#", "", (string) $xml->artist->bio->summary)); $results['placeformed'] = (string) $xml->artist->bio->placeformed; $results['yearformed'] = (string) $xml->artist->bio->yearformed; $results['largephoto'] = $xml->artist->image[2]; $results['megaphoto'] = $xml->artist->image[4]; if ($artist) { if (!empty($results['summary']) || !empty($results['megaphoto'])) { $artist->update_artist_info($results['summary'], $results['placeformed'], $results['yearformed']); $image = Art::get_from_source(array('url' => $results['megaphoto']), 'artist'); $rurl = pathinfo($results['megaphoto']); $mime = 'image/' . $rurl['extension']; $art = new Art($artist->id, 'artist'); $art->reset(); $art->insert($image, $mime); $results['largephoto'] = Art::url($artist->id, 'artist'); $results['megaphoto'] = $results['largephoto']; } } return $results; }
*/ // Gotta do some math here! $total_images = count($images); $rows = floor($total_images / 4); $i = 0; UI::show_box_top(T_('Select New Art'), 'box box_album_art'); ?> <table class="table-data"> <tr> <?php while ($i <= $rows) { $j = 0; while ($j < 4) { $key = $i * 4 + $j; $image_url = AmpConfig::get('web_path') . '/image.php?type=session&image_index=' . $key . '&cache_bust=' . date('YmdHis') . mt_rand(); $dimensions = Core::image_dimensions(Art::get_from_source($_SESSION['form']['images'][$key], $object_type)); if (!isset($images[$key]) || !Art::check_dimensions($dimensions)) { echo "<td> </td>\n"; } else { ?> <td align="center"> <a href="<?php echo $image_url; ?> " title="<?php echo $_SESSION['form']['images'][$key]['title']; ?> " rel="prettyPhoto" target="_blank"><img src="<?php echo $image_url; ?> " alt="<?php