// Now let's update audioscrobbler $el->setStartTime(time()); if ($enable_audioscrobbler == "true") { $jzSERVICES->loadService("reporting", "audioscrobbler"); $jzSERVICES->updatePlayCountReporting($el); } } $meta = $el->getMeta(); if ($meta['artist'] != "" and $meta['artist'] != "-") { $title = $meta['artist'] . " - " . $el->getName(); } else { $title = $el->getName(); } if (isset($_GET['jz_user'])) { $be->setPlaying($_GET['jz_user'], $el, $_GET['sid']); } session_write_close(); // Close session while file is streaming sendMedia($el->getFileName("host"), $title, $resample); } exit; break; // download a collection of media: // download a collection of media: case "image": if (preg_match("/\\.({$ext_graphic})\$/i", $_GET['jz_path'])) { showImage($_GET['jz_path']); } exit; break; }
$el =& new jzMediaTrack($_GET['jz_path']); if (!checkStreamLimit($el)) { // TODO: AJAX this so we don't come to a page, but get a Javascript alert. echo word('Sorry, you have reached your download limit.'); exit; } // Are they downloading something resampled? if (stristr($_GET['jz_path'], "data/resample")) { $name = $el->getPath(); $name = $name[sizeof($name) - 1]; sendMedia($_GET['jz_path'], $name, $resample, true); } else { $el->increaseDownloadCount(); $name = $el->getPath(); $name = $name[sizeof($name) - 1]; sendMedia($el->getFileName("host"), $name, $resample, true); } exit; } else { if ($_GET['type'] == "playlist") { $pl = $jzUSER->loadPlaylist($_GET['jz_pl_id']); $pl->download(); } else { $pl = new jzPlaylist(); if ($_GET['type'] == "track") { $el =& new jzMediaTrack($_GET['jz_path']); } else { $el =& new jzMediaNode($_GET['jz_path']); } if ($el->getLevel() == 0) { die;
/** * Sends a clip of a media file. * * @author Ben Dodson * @version 8/17/05 * @since 8/17/05 */ function sendClip($el) { global $clip_length, $clip_start; if (!$el->isLeaf()) { return false; } $fname = $el->getFilename("host"); $ext = substr($fname, strrpos($fname, ".") + 1); $clipfile = substr($fname, 0, -4) . ".clip." . $ext; if (is_file($clipfile)) { sendMedia($clipfile, $el->getName() . " Clip." . $ext); exit; } $meta = $el->getMeta(); $bitrate = $meta['bitrate']; if (!is_numeric($bitrate)) { // Let's assume 160. $bitrate = 160; } $cstart = $clip_start * ($bitrate * 1024 / 8); $clength = $clip_length * ($bitrate * 1024 / 8); $contents = substr(file_get_contents($fname), $cstart, $clength); sendContentType($ext); header("Content-length: " . $clength); header("Content-Disposition: inline; filename=\"" . $el->getName() . " Clip." . $ext . "\""); header("Expires: " . gmdate("D, d M Y H:i:s", mktime(date("H") + 2, date("i"), date("s"), date("m"), date("d"), date("Y"))) . " GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); print $contents; exit; }