Exemple #1
0
function fileError()
{
    global $cfg, $db;
    authenticate('access_admin');
    // formattedNavigator
    $nav = array();
    $nav['name'][] = 'Configuration';
    $nav['url'][] = 'config.php';
    $nav['name'][] = 'Media statistics';
    $nav['url'][] = 'statistics.php';
    $nav['name'][] = 'File error';
    require_once 'include/header.inc.php';
    ?>
<table cellspacing="0" cellpadding="0" class="border">
<tr class="header">
	<td class="space"></td>
	<td<?php 
    if ($cfg['access_play'] || $cfg['access_add'] || $cfg['access_stream']) {
        echo ' class="space"';
    }
    ?>
></td>
	<td>Relative file</td>
	<td class="textspace"></td>
	<td>getID3() error message</td>
	<td class="textspace"></td>
	<td align="right">Filesize</td>
	<td<?php 
    if ($cfg['delete_file']) {
        echo ' class="space"';
    }
    ?>
></td>
	<td></td><!-- optional delete -->
	<td class="space"></td>
</tr>
<tr class="line"><td colspan="13"></td></tr>
<?php 
    $i = 0;
    $query = mysql_query('SELECT relative_file, filesize, error, track_id FROM track WHERE error != "" ORDER BY relative_file');
    while ($track = mysql_fetch_assoc($query)) {
        ?>
<tr class="<?php 
        echo $i++ & 1 ? 'even' : 'odd';
        ?>
_error mouseover">
	<td></td>
	<td></td>
	<td><?php 
        echo html($track['relative_file']);
        ?>
</td>
	<td></td>
	<td><?php 
        echo html($track['error']);
        ?>
</td>
	<td></td>
	<td align="right"><?php 
        echo formattedSize($track['filesize']);
        ?>
</td>
	<td></td>
	<td><?php 
        if ($cfg['delete_file']) {
            echo '<a href="statistics.php?action=deleteFile&amp;referer=statistics.php%3faction%3dfileError&amp;relative_file=' . rawurlencode($track['relative_file']) . '&amp;sign=' . $cfg['sign'] . '" onClick="return confirm(\'Are you sure you want to delete: ' . addslashes(html($track['relative_file'])) . '?\');" onMouseOver="return overlib(\'Delete\');" onMouseOut="return nd();"><img src="' . $cfg['img'] . 'small_delete.png" alt="" class="small"></a>';
        }
        ?>
</td>
	<td></td>
</tr>
<?php 
    }
    echo '</table>' . "\n";
    require_once 'include/footer.inc.php';
}
Exemple #2
0
function batchTranscode()
{
    global $cfg, $db;
    authenticate('access_admin');
    // formattedNavigator
    $nav = array();
    $nav['name'][] = 'Configuration';
    $nav['url'][] = 'config.php';
    $nav['name'][] = 'Batch transcode';
    require_once 'include/header.inc.php';
    ?>
<table cellspacing="0" cellpadding="0" class="border">
<tr class="header">
	<td class="space"></td>
	<td>Batch transcode</td>
	<td class="textspace"></td>
	<td align="right">Bitrate</td>
	<td class="textspace"></td>
	<td align="right">Cache size</td>
	<td class="textspace"></td>
	<td></td>
	<td class="space"></td>
</tr>

<?php 
    $i = 0;
    foreach ($cfg['encode_name'] as $profile => $value) {
        $query = mysql_query('SELECT SUM(filesize) AS sumsize
			FROM cache
			WHERE profile = ' . (int) $profile . ' &&
			LOWER(SUBSTRING_INDEX(relative_file, ".", -1)) != "' . mysql_real_escape_string($cfg['download_album_extension']) . '"');
        $cache = mysql_fetch_assoc($query);
        ?>
<tr class="<?php 
        echo $i & 1 ? 'even' : 'odd';
        $i++;
        ?>
 mouseover">
	<td></td>
	<td><a href="download.php?action=batchTranscodeInit&amp;profile=<?php 
        echo $profile;
        ?>
&amp;sign=<?php 
        echo $cfg['sign'];
        ?>
" onClick="return confirm('Run only one instance of batch transcodig at once!\nAre you sure you want to start batch transcoding?');"><img src="<?php 
        echo $cfg['img'];
        ?>
small_transcode.png" alt="" class="small space"><?php 
        echo html($value);
        ?>
</a></td>
	<td></td>
	<td align="right"><?php 
        if ($cfg['encode_vbr'][$profile]) {
            echo '&plusmn; ';
        }
        echo formattedBirate($cfg['encode_bitrate'][$profile]);
        ?>
</td>
	<td></td>
	<td align="right"><?php 
        echo formattedSize($cache['sumsize']);
        ?>
</td>
	<td></td>
	<td><a href="config.php?action=cacheDeleteProfile&amp;profile=<?php 
        echo $profile;
        ?>
&amp;sign=<?php 
        echo $cfg['sign'];
        ?>
" onClick="return confirm('Are you sure you want to delete all &quot;<?php 
        echo html($value);
        ?>
&quot; files from the cache?');" onMouseOver="return overlib('Delete');" onMouseOut="return nd();"><img src="<?php 
        echo $cfg['img'];
        ?>
small_delete.png" alt="" class="small space"></a></td>
	<td></td>
</tr>
<?php 
    }
    $query = mysql_query('SELECT SUM(filesize) AS sumsize
		FROM cache
		WHERE profile = -2');
    $cache = mysql_fetch_assoc($query);
    $i = 0;
    ?>
<tr class="header">
	<td></td>
	<td>Maintain cache</td>
	<td></td>
	<td align="right">Bitrate</td>
	<td></td>
	<td align="right">Cache size</td>
	<td colspan="2"></td>
	<td></td>	
</tr>

<tr class="<?php 
    echo $i & 1 ? 'even' : 'odd';
    $i++;
    ?>
 mouseover">
	<td></td>
	<td><a href="config.php?action=cacheDeleteProfile&amp;profile=-2&amp;sign=<?php 
    echo $cfg['sign'];
    ?>
" onClick="return confirm('Are you sure you want to delete all &quot;wave&quot; files from the cache?');"><img src="<?php 
    echo $cfg['img'];
    ?>
small_delete.png" alt="" class="small space">Delete wave</a></td>
	<td></td>
	<td align="right">1411.20 kbps</td>
	<td></td>
	<td align="right"><?php 
    echo formattedSize($cache['sumsize']);
    ?>
</td>
	<td colspan="2"></td>
	<td></td>
</tr>
<?php 
    $query = mysql_query('SELECT SUM(filesize) AS sumsize
		FROM cache
		WHERE LOWER(SUBSTRING_INDEX(relative_file, ".", -1)) = "' . mysql_real_escape_string($cfg['download_album_extension']) . '"');
    $cache = mysql_fetch_assoc($query);
    ?>
<tr class="<?php 
    echo $i & 1 ? 'even' : 'odd';
    $i++;
    ?>
 mouseover">
	<td></td>
	<td><a href="config.php?action=cacheDeleteProfile&amp;profile=<?php 
    echo rawurlencode($cfg['download_album_extension']);
    ?>
&amp;sign=<?php 
    echo $cfg['sign'];
    ?>
" onClick="return confirm('Are you sure you want to delete all &quot;<?php 
    echo html($cfg['download_album_extension']);
    ?>
&quot; files from the cache?');"><img src="<?php 
    echo $cfg['img'];
    ?>
small_delete.png" alt="" class="small space">Delete <?php 
    echo html($cfg['download_album_extension']);
    ?>
</a></td>
	<td></td>
	<td align="right">-</td>
	<td></td>
	<td align="right"><?php 
    echo formattedSize($cache['sumsize']);
    ?>
</td>
	<td colspan="2"></td>
	<td></td>
</tr>
<tr class="<?php 
    echo $i & 1 ? 'even' : 'odd';
    $i++;
    ?>
 mouseover">
	<td></td>
	<td colspan="7"><a href="download.php?action=batchValidateCache&amp;sign=<?php 
    echo $cfg['sign'];
    ?>
"><img src="<?php 
    echo $cfg['img'];
    ?>
small_update.png" alt="" class="small space">Validate cache</a></td>
	<td></td>
</tr>
</table>
<?php 
    require_once 'include/footer.inc.php';
}
Exemple #3
0
function shareAlbum($album_id)
{
    global $cfg, $db;
    authenticate('access_admin', false, true);
    if ($cfg['album_share_download'] == 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&amp;artist=' . rawurlencode($album['artist_alphabetic']);
    $nav['name'][] = $album['album'];
    $nav['url'][] = 'index.php?action=view3&amp;album_id=' . $album_id;
    $nav['name'][] = 'Share download';
    require_once 'include/header.inc.php';
    $expire_time = time() + $cfg['share_download_lifetime'];
    $sid = randomKey();
    mysql_query('INSERT INTO share_download (sid, album_id, download_id, expire_time) VALUES (
		"' . mysql_real_escape_string($sid) . '",
		"' . mysql_real_escape_string($album_id) . '",
		' . (int) $cfg['download_id'] . ',
		' . (int) $expire_time . ')');
    $url = NJB_HOME_URL . 'download.php?action=downloadAlbum&amp;sid=' . $sid;
    $filename = $album['artist_alphabetic'] . ' - ';
    $filename .= $album['year'] ? $album['year'] . ' - ' : '';
    $filename .= $album['album'] . '.' . $cfg['download_album_extension'];
    $filename = encodeEscapeChar($filename);
    $filesize = 0;
    $transcode = false;
    $exact = true;
    $extensions = array();
    $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['download_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'];
        }
        $transcode_track = false;
        if (sourceFile($track['extension'], $track['audio_bitrate'], $cfg['download_id']) == false) {
            $transcode_track = true;
            $transcode = true;
        }
        if ($track['cache_filesize']) {
            $filesize += $track['cache_filesize'];
        } elseif ($transcode_track) {
            $filesize += round($cfg['encode_bitrate'][$cfg['download_id']] * $track['miliseconds'] / 8 / 1000);
            $exact = false;
        } else {
            $filesize += $track['filesize'];
        }
    }
    sort($extensions);
    $source = implode($extensions, ', ');
    if ($exact) {
        $size = formattedSize($filesize);
    } else {
        $size = html_entity_decode('&plusmn; ', null, NJB_DEFAULT_CHARSET) . formattedSize($filesize);
    }
    $profile_name = $transcode ? $cfg['encode_name'][$cfg['download_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($filename);
    ?>
</td>
	<td class="space"></td>
</tr>
<tr class="line"><td colspan="5"></td></tr>
<tr class="odd">
	<td></td>
	<td>File size:</td>
	<td></td>
	<td><?php 
    echo $size;
    ?>
</td>
	<td class="space"></td>
</tr>
<tr class="even">
	<td class="space"></td>
	<td>Download 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($filename);
    ?>
&amp;BODY=---%0AFilesize%3A%20<?php 
    echo rawurlencode($size);
    ?>
%0ADownload%3A%20<?php 
    echo rawurlencode($filename);
    ?>
%0A<?php 
    echo rawurlencode(str_replace('&amp;', '&', $url));
    ?>
%0A%0AThis%20file%20will%20expire%20<?php 
    echo rawurlencode(date($cfg['date_format'], $expire_time));
    ?>
%20or%20after%20one%20download%3B%20whatever%20comes%20first."><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';
}
Exemple #4
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();"';
}