authorize(true); //For sorting tags function compare($X, $Y){ return($Y['count'] - $X['count']); } include(SERVER_ROOT.'/sections/bookmarks/functions.php'); // has_bookmarked() include(SERVER_ROOT.'/sections/requests/functions.php'); include(SERVER_ROOT.'/classes/class_text.php'); // Text formatting class $Text = new TEXT; // Similar artist map include(SERVER_ROOT.'/classes/class_artist.php'); include(SERVER_ROOT.'/classes/class_artists_similar.php'); $ArtistID = $_GET['id']; if(!is_number($ArtistID)) { print json_encode(array('status' => 'failure')); } if (empty($ArtistID)) { if (!empty($_GET['artistname'])) { $Name = db_string(trim($_GET['artistname'])); $DB->query("SELECT ArtistID FROM artists_alias WHERE Name LIKE '$Name'"); if (!(list($ArtistID) = $DB->next_record(MYSQLI_NUM, false))) { //if (list($ID) = $DB->next_record(MYSQLI_NUM, false)) { print json_encode(array('status' => 'failure')); die(); } // If we get here, we got the ID! } } if(!empty($_GET['revisionid'])) { // if they're viewing an old revision $RevisionID=$_GET['revisionid']; if(!is_number($RevisionID)){ error(0); } $Data = $Cache->get_value("artist_$ArtistID"."_revision_$RevisionID"); } else { // viewing the live version $Data = $Cache->get_value('artist_'.$ArtistID); $RevisionID = false; } if($Data) { $Data = unserialize($Data); list($K, list($Name, $Image, $Body, $NumSimilar, $SimilarArray, $TorrentList, $Importances)) = each($Data); } else { if ($RevisionID) { $sql = "SELECT a.Name, wiki.Image, wiki.body, a.VanityHouse FROM wiki_artists AS wiki LEFT JOIN artists_group AS a ON wiki.RevisionID=a.RevisionID WHERE wiki.RevisionID='$RevisionID' "; } else { $sql = "SELECT a.Name, wiki.Image, wiki.body, a.VanityHouse FROM artists_group AS a LEFT JOIN wiki_artists AS wiki ON wiki.RevisionID=a.RevisionID WHERE a.ArtistID='$ArtistID' "; } $sql .= " GROUP BY a.ArtistID"; $DB->query($sql); if($DB->record_count()==0) { print json_encode(array('status' => 'failure')); } list($Name, $Image, $Body, $VanityHouseArtist) = $DB->next_record(MYSQLI_NUM, array(0)); } ob_start(); // Requests $Requests = $Cache->get_value('artists_requests_'.$ArtistID); if(!is_array($Requests)) { $DB->query("SELECT r.ID, r.CategoryID, r.Title, r.Year, r.TimeAdded, COUNT(rv.UserID) AS Votes, SUM(rv.Bounty) AS Bounty FROM requests AS r LEFT JOIN requests_votes AS rv ON rv.RequestID=r.ID LEFT JOIN requests_artists AS ra ON r.ID=ra.RequestID WHERE ra.ArtistID = ".$ArtistID." AND r.TorrentID = 0 GROUP BY r.ID ORDER BY Votes DESC"); if($DB->record_count() > 0) { $Requests = $DB->to_array(); } else { $Requests = array(); } $Cache->cache_value('artists_requests_'.$ArtistID, $Requests); } $NumRequests = count($Requests); $LastReleaseType = 0; if(empty($Importances) || empty($TorrentList)) { $DB->query("SELECT DISTINCT ta.GroupID, ta.Importance, tg.VanityHouse FROM torrents_artists AS ta JOIN torrents_group AS tg ON tg.ID=ta.GroupID WHERE ta.ArtistID='$ArtistID' ORDER BY ta.Importance, tg.ReleaseType ASC, tg.Year DESC, tg.Name DESC"); $GroupIDs = $DB->collect('GroupID'); $Importances = $DB->to_array('GroupID', MYSQLI_BOTH, false); if(count($GroupIDs)>0) { $TorrentList = get_groups($GroupIDs, true,true); $TorrentList = $TorrentList['matches']; } else { $TorrentList = array(); } } $NumGroups = count($TorrentList); //Get list of used release types $UsedReleases = array(); foreach($TorrentList as $GroupID=>$Group) { if($Importances[$GroupID]['Importance'] == '2') { $TorrentList[$GroupID]['ReleaseType'] = 1024; $GuestAlbums = true; } if($Importances[$GroupID]['Importance'] == '3') { $TorrentList[$GroupID]['ReleaseType'] = 1023; $RemixerAlbums = true; } if(!in_array($TorrentList[$GroupID]['ReleaseType'], $UsedReleases)) { $UsedReleases[] = $TorrentList[$GroupID]['ReleaseType']; } } if(!empty($GuestAlbums)) { $ReleaseTypes[1024] = "Guest Appearance"; } if(!empty($RemixerAlbums)) { $ReleaseTypes[1023] = "Remixed By"; } reset($TorrentList); $JsonTorrents = array(); foreach ($TorrentList as $GroupID=>$Group) { list($GroupID, $GroupName, $GroupYear, $GroupRecordLabel, $GroupCatalogueNumber, $TagList, $ReleaseType, $GroupVanityHouse, $Torrents, $Artists) = array_values($Group); $GroupVanityHouse = $Importances[$GroupID]['VanityHouse']; $TagList = explode(' ',str_replace('_','.',$TagList)); // $Tags array is for the sidebar on the right foreach($TagList as $Tag) { if(!isset($Tags[$Tag])) { $Tags[$Tag] = array('name'=>$Tag, 'count'=>1); } else { $Tags[$Tag]['count']++; } } $DisplayName =''.$GroupName.''; if(check_perms('users_mod')) { $DisplayName .= ' [Fix]'; } if (($ReleaseType == 1023) || ($ReleaseType == 1024)) { $DisplayName = display_artists(array(1 => $Artists), true, true).$DisplayName; } if($GroupYear>0) { $DisplayName = $GroupYear. ' - '.$DisplayName; } if($GroupVanityHouse) { $DisplayName .= ' [VH]'; } ?>