has_access('75')) { access_denied(); }
$album = new Album($_REQUEST['album_id']);
$album->clear_art();
show_confirmation(_('Album Art Cleared'),_('Album Art information has been removed from the database'),"/albums.php?action=show&album=" . $album->id);
} // clear_art
// if we have album
elseif (isset($album)) {
$album = new Album($_REQUEST['album']);
$album->format_album();
require (conf('prefix') . "/templates/show_album.inc");
/* Get the song ids for this album */
$song_ids = $album->get_song_ids($_REQUEST['artist']);
show_songs($song_ids,0,$album);
} // isset(album)
// Finds the Album art from amazon
elseif ($_REQUEST['action'] === 'find_art') {
if (!$GLOBALS['user']->has_access('25')) { access_denied(); }
// csammis: In response to https://ampache.bountysource.com/Task.View?task_id=86,
// adding retry to album art searching. I hope my PHP style doesn't make vollmer cry,
// because that would make me cry...then my girlfriend would cry...then my cat would laugh.
// She's such a little trouper!
// *NOTE* I knocked it up a notch with some more horrible code :S - Vollmer
if (!conf('amazon_developer_key')) {
echo "
" . _("Error") . ": " . _("No Amazon Developer Key set, amazon album art searching will not work") . "
";
}
// get the Album information
$album = new Album($_REQUEST['album_id']);
if (isset($_REQUEST['artist_name'])) {
$artist = scrub_in($_REQUEST['artist_name']);
}
elseif ($album->artist_count == '1') {
$artist = $album->artist;
}
if (isset($_REQUEST['album_name'])) {
$album_name = scrub_in($_REQUEST['album_name']);
}
else {
$album_name = $album->name;
}
$search = $artist . " " . $album_name;
// Attempt to find the art with what we've got
$images = $album->find_art($_REQUEST['cover'], $search);
$_SESSION['form']['images'] = $images;
if (count($images)) {
include(conf('prefix') . '/templates/show_album_art.inc.php');
}
else {
show_confirmation(_('Album Art Not Located'),_('Album Art could not be located at this time. This may be due to Amazon being busy, or the album not being present in their collection.'),"/albums.php?action=show&album=" . $album->id);
}
$albumname = $album->name;
$artistname = $artist;
// Remember the last typed entry, if there was one
if (isset($_REQUEST['album_name'])) { $albumname = scrub_in($_REQUEST['album_name']); }
if (isset($_REQUEST['artist_name'])) { $artistname = scrub_in($_REQUEST['artist_name']); }
include(conf('prefix') . '/templates/show_get_albumart.inc.php');
} // find_art
// Selecting image from find_art
elseif ($_REQUEST['action'] === 'select_art') {
/* Check to see if we have the image url still */
$image_id = $_REQUEST['image'];
$album_id = $_REQUEST['album_id'];
$url = $_SESSION['form']['images'][$image_id]['url'];
$mime = $_SESSION['form']['images'][$image_id]['mime'];
$snoopy = new Snoopy();
$snoopy->fetch($url);
$image_data = $snoopy->results;
$album = new Album($album_id);
$album->insert_art($image_data,$mime);
show_confirmation(_("Album Art Inserted"),"","/albums.php?action=show&album=$album_id");
} // end select art
// Updates Album from tags
elseif ($_REQUEST['action'] === 'update_from_tags') {
$album = new Album($_REQUEST['album_id']);
echo "
" . _("Starting Update from Tags") . ". . .
\n";
$catalog = new Catalog();
$catalog->update_single_item('album',$_REQUEST['album_id']);
echo "
" . _("Update From Tags Complete") . " ";
echo "[" . _("Return") . "]";
} // update_from_tags
else {
if (strlen($_REQUEST['match']) < '1') { $match = 'a'; }
// Setup the View Ojbect
$view = new View();
$view->import_session_view();
if ($match == 'Show_all' || $match == 'Show_missing_art' || $match == 'Browse') { $chr = ''; }
else { $chr = $match; }
require (conf('prefix') . '/templates/show_box_top.inc.php');
show_alphabet_list('albums','albums.php',$match);
show_alphabet_form($chr,_('Show Albums starting with'),"albums.php?action=match");
require (conf('prefix') . '/templates/show_box_bottom.inc.php');
switch($match) {
case 'Show_all':
$offset_limit = 99999;
$sql = "SELECT album.id FROM song,album ".
" WHERE song.album=album.id ".
"GROUP BY song.album ".
" HAVING COUNT(song.id) > $min_album_size ";
break;
case 'Show_missing_art':
$offset_limit = 99999;
$sql = "SELECT album.id FROM song,album ".
" WHERE song.album=album.id ".
" AND album.art is null ".
"GROUP BY song.album ".
" HAVING COUNT(song.id) > $min_album_size ";
break;
case 'Browse':
case 'show_albums':
$sql = "SELECT album.id FROM song,album ".
" WHERE song.album=album.id ".
"GROUP BY song.album ".
" HAVING COUNT(song.id) > $min_album_size ";
break;
default:
$sql = "SELECT album.id FROM song,album ".
" WHERE song.album=album.id ".
" AND album.name LIKE '$match%'".
"GROUP BY song.album ".
" HAVING COUNT(song.id) > $min_album_size ";
} // end switch
switch ($_REQUEST['type']) {
case 'album_sort':
if ($match != 'Browse' && $match != 'Show_missing_art' && $match != 'Show_all') {
$match_string = " AND album.name LIKE '$match%'";
}
// unset($_REQUEST['keep_view']);
$sql = "SELECT album.id, IF(COUNT(DISTINCT(song.artist)) > 1,'Various', artist.name) AS artist_name " .
"FROM song,artist,album WHERE song.album=album.id AND song.artist=artist.id $match_string" .
"GROUP BY album.name,album.year ".
"HAVING COUNT(song.id) > $min_album_size ";
$sort_order = 'artist.name';
break;
default:
break;
} // switch on special sort types
// if we are returning
if ($_REQUEST['keep_view']) {
$view->initialize();
}
// If we aren't keeping the view then initlize it
elseif ($sql) {
if (!$sort_order) { $sort_order = 'name'; }
$db_results = mysql_query($sql, dbh());
$total_items = mysql_num_rows($db_results);
if ($match != "Show_all") { $offset_limit = $_SESSION['userdata']['offset_limit']; }
$view = new View($sql, 'albums.php',$sort_order,$total_items,$offset_limit);
}
else { $view = false; }
if ($view->base_sql) {
$albums = get_albums($view->sql);
show_albums($albums,$view);
}
} // else no album
show_footer();
?>