示例#1
0
function shareAlbum($album_id)
{
    global $cfg, $db;
    authenticate('access_admin', false, true);
    if ($cfg['album_share_stream'] == false) {
        message(__FILE__, __LINE__, 'error', '[b]Error[/b][br]Share album disabled');
    }
    $query = mysql_query('SELECT artist_alphabetic, album, year
		FROM album
		WHERE album_id = "' . mysql_real_escape_string($album_id) . '"');
    $album = mysql_fetch_assoc($query);
    if ($album == false) {
        message(__FILE__, __LINE__, 'error', '[b]Error[/b][br]album_id not found in database');
    }
    // formattedNavigator
    $nav = array();
    $nav['name'][] = 'Media';
    $nav['url'][] = 'index.php';
    $nav['name'][] = $album['artist_alphabetic'];
    $nav['url'][] = 'index.php?action=view2&artist=' . rawurlencode($album['artist_alphabetic']);
    $nav['name'][] = $album['album'];
    $nav['url'][] = 'index.php?action=view3&album_id=' . $album_id;
    $nav['name'][] = 'Share stream';
    require_once 'include/header.inc.php';
    $expire_time = time() + $cfg['share_stream_lifetime'];
    $sid = randomKey();
    mysql_query('INSERT INTO share_stream (sid, album_id, stream_id, expire_time) VALUES (
		"' . mysql_real_escape_string($sid) . '",
		"' . mysql_real_escape_string($album_id) . '",
		' . (int) $cfg['stream_id'] . ',
		' . (int) $expire_time . ')');
    $url = NJB_HOME_URL . 'stream.php?action=playlist&sid=' . $sid;
    $name = $album['artist_alphabetic'] . ' - ';
    $name .= $album['year'] ? $album['year'] . ' - ' : '';
    $name .= $album['album'];
    // $name 	= encodeEscapeChar($name);
    $transcode = false;
    $exact = true;
    $extensions = array();
    $miliseconds = 0;
    $query = mysql_query('SELECT track.filesize, cache.filesize AS cache_filesize,
		miliseconds, audio_bitrate, track_id,
		LOWER(SUBSTRING_INDEX(track.relative_file, ".", -1)) AS extension
		FROM track LEFT JOIN cache
		ON track.track_id = cache.id
		AND cache.profile = ' . (int) $cfg['stream_id'] . '
		WHERE album_id = "' . mysql_real_escape_string($album_id) . '"');
    while ($track = mysql_fetch_assoc($query)) {
        if (in_array($track['extension'], $extensions) == false) {
            $extensions[] = $track['extension'];
        }
        if (sourceFile($track['extension'], $track['audio_bitrate'], $cfg['stream_id']) == false) {
            $transcode = true;
            if ($track['cache_filesize'] == false) {
                $exact = false;
            }
        }
        $miliseconds += $track['miliseconds'];
    }
    sort($extensions);
    $source = implode($extensions, ', ');
    $profile_name = $transcode ? $cfg['encode_name'][$cfg['stream_id']] . ' (' . $source . ' source)' : 'Source (' . $source . ')';
    if ($transcode && $exact) {
        $cache_txt = 'Transcoded:';
        $cache_png = $cfg['img'] . 'small_check.png';
    } elseif ($transcode && !$exact) {
        $cache_txt = 'Transcoded:';
        $cache_png = $cfg['img'] . 'small_uncheck.png';
    } else {
        $cache_txt = 'Source:';
        $cache_png = $cfg['img'] . 'small_check.png';
    }
    ?>
<form action="" name="form" id="form">
<table cellspacing="0" cellpadding="0" class="border">
<tr class="header">
	<td class="space"></td>
	<td colspan="3"><?php 
    echo html($name);
    ?>
</td>
	<td class="space"></td>
</tr>
<tr class="line"><td colspan="5"></td></tr>
<tr class="odd">
	<td></td>
	<td>Play time:</td>
	<td></td>
	<td><?php 
    echo formattedTime($miliseconds);
    ?>
</td>
	<td class="space"></td>
</tr>
<tr class="even">
	<td class="space"></td>
	<td>Stream profile:</td>
	<td class="textspace"></td>
	<td><?php 
    echo html($profile_name);
    ?>
</td>
	<td class="space"></td>
</tr>
<tr class="odd">
	<td></td>
	<td><?php 
    echo $cache_txt;
    ?>
</td>
	<td></td>
	<td><img src="<?php 
    echo $cache_png;
    ?>
" alt="" class="small"></td>
	<td class="space"></td>
</tr>
<tr class="even">
	<td></td>
	<td>Mail:</td>
	<td></td>
	<td><a href="mailto:?SUBJECT=<?php 
    echo rawurlencode($name);
    ?>
&amp;BODY=---%0APlay%20time%3A%20<?php 
    echo rawurlencode(formattedTime($miliseconds));
    ?>
%0AStream%3A%20<?php 
    echo rawurlencode($name);
    ?>
%0A<?php 
    echo rawurlencode(str_replace('&amp;', '&', $url));
    ?>
%0A%0AThis%20stream%20will%20expire%20<?php 
    echo rawurlencode(date($cfg['date_format'], $expire_time));
    ?>
%20and%20locked%20to%20the%20first%20used%20IP%20address."><img src="<?php 
    echo $cfg['img'];
    ?>
small_mail.png" alt="" class="small"></a></td>
	<td></td>
</tr>
<tr class="odd">
	<td></td>
	<td>URL:</td>
	<td></td>
	<td><input type="text" value="<?php 
    echo $url;
    ?>
" readonly class="url" onClick="focus(this); select(this);"></td>
	<td></td>
</tr>
<tr class="even">
	<td></td>
	<td>QR Code:</td>
	<td></td>
	<td><img src="qrcode.php?d=<?php 
    echo rawurlencode(str_replace('&amp;', '&', $url));
    ?>
&amp;e=l&amp;s=3" alt=""></td>
	<td></td>
</tr>
</table>
</form>
<?php 
    require_once 'include/footer.inc.php';
}
示例#2
0
function onmouseoverDownloadTrack($track_id)
{
    global $cfg, $db;
    $query = mysql_query('SELECT
		LOWER(SUBSTRING_INDEX(relative_file, ".", -1)) AS extension,
		relative_file,
		miliseconds,
		filesize,
		audio_bitrate, audio_dataformat, audio_encoder, audio_profile, audio_bits_per_sample, audio_sample_rate, audio_channels,
		video_codec, video_resolution_x, video_resolution_y, video_framerate
		FROM track
		WHERE track_id = "' . mysql_real_escape_string($track_id) . '"');
    $track = mysql_fetch_assoc($query);
    if (sourceFile($track['extension'], $track['audio_bitrate'], $cfg['download_id'])) {
        $transcode = false;
    } else {
        $transcode = true;
    }
    $list = '';
    if ($transcode) {
        $query = mysql_query('SELECT filesize
			FROM cache 
			WHERE id		= "' . mysql_real_escape_string($track_id) . '"
			AND  profile	= "' . mysql_real_escape_string($cfg['download_id']) . '"');
        if ($cache = mysql_fetch_assoc($query)) {
            $list .= formattedSize($cache['filesize']);
            $list .= '<div class="ol_line"></div>';
            $list .= $cfg['encode_name'][$cfg['download_id']];
            $list .= ' (' . $track['extension'] . ' source)';
            $list .= '<div class="ol_line"></div>';
            $list .= 'Transcoded:<img src="' . $cfg['img'] . 'tiny_check.png" alt="" class="tiny">';
        } else {
            $list .= html_entity_decode('&plusmn; ', null, NJB_DEFAULT_CHARSET) . formattedSize($cfg['encode_bitrate'][$cfg['download_id']] * $track['miliseconds'] / 8 / 1000);
            $list .= '<div class="ol_line"></div>';
            $list .= $cfg['encode_name'][$cfg['download_id']];
            $list .= ' (' . $track['extension'] . ' source)';
            $list .= '<div class="ol_line"></div>';
            $list .= 'Transcoded:<img src="' . $cfg['img'] . 'tiny_uncheck.png" alt="" class="tiny">';
        }
    } else {
        $list .= formattedSize($track['filesize']);
        $list .= '<div class="ol_line"></div>';
    }
    if ($track['video_codec'] && $transcode == false) {
        $list .= $track['video_codec'] . '<br>';
        $list .= $track['video_resolution_x'] . 'x';
        $list .= $track['video_resolution_y'] . '<br>';
        $list .= $track['video_framerate'] . ' fps';
    }
    if ($track['audio_dataformat'] && $transcode == false) {
        if ($track['video_codec']) {
            $list .= '<div class="ol_line"></div>';
        }
        $list .= $track['audio_dataformat'] . '<br>';
        $list .= $track['audio_encoder'] . '<br>';
        $list .= $track['audio_profile'];
        if ($track['audio_channels'] == 1) {
            $channels = 'Mono';
        } elseif ($track['audio_channels'] == 2) {
            $channels = 'Stereo';
        } else {
            $channels = $track['audio_channels'] . ' Channels';
        }
        $list .= '<div class="ol_line"></div>';
        $list .= $track['audio_bits_per_sample'] . ' bit | ' . $channels . ' | ' . formattedFrequency($track['audio_sample_rate']);
    }
    if ($transcode == false) {
        $list .= '<div class="ol_line"></div>';
        $list .= 'Source:<img src="' . $cfg['img'] . 'tiny_check.png" alt="" class="tiny">';
    }
    if (!$track['video_codec'] && !$track['audio_dataformat'] && $transcode == false) {
        $list .= '-';
    }
    return 'onMouseOver="return overlib(\'' . addslashes(html($list)) . '\', CAPTION, \'Download track:\', WIDTH, 200);" onMouseOut="return nd();"';
}