mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-13 02:46:30 +00:00
8c7e564b47
[collages] respect user grouping setting changed sqltime fix HTML character codes appearing in filenames
105 lines
2.8 KiB
PHP
105 lines
2.8 KiB
PHP
<?
|
|
if (!empty($_GET['userid']) && is_number($_GET['userid'])) {
|
|
$UserID = $_GET['userid'];
|
|
} else {
|
|
error(0);
|
|
}
|
|
|
|
if(!check_perms('zip_downloader')) {
|
|
error(403);
|
|
}
|
|
|
|
$User = user_info($UserID);
|
|
$Perms = get_permissions($User['PermissionID']);
|
|
$UserClass = $Perms['Class'];
|
|
|
|
require(SERVER_ROOT.'/classes/class_torrent.php');
|
|
require(SERVER_ROOT.'/classes/class_zip.php');
|
|
|
|
if (empty($_GET['type'])) {
|
|
error(0);
|
|
} else {
|
|
|
|
switch ($_GET['type']) {
|
|
case 'uploads':
|
|
if(!check_paranoia('uploads', $User['Paranoia'], $UserClass, $UserID)) { error(403); }
|
|
$SQL = "WHERE t.UserID='$UserID'";
|
|
$Month = "t.Time";
|
|
break;
|
|
case 'snatches':
|
|
if(!check_paranoia('snatched', $User['Paranoia'], $UserClass, $UserID)) { error(403); }
|
|
$SQL = "JOIN xbt_snatched AS x ON t.ID=x.fid WHERE x.uid='$UserID'";
|
|
$Month = "FROM_UNIXTIME(x.tstamp)";
|
|
break;
|
|
case 'seeding':
|
|
if(!check_paranoia('seeding', $User['Paranoia'], $UserClass, $UserID)) { error(403); }
|
|
$SQL = "JOIN xbt_files_users AS xfu ON t.ID = xfu.fid WHERE xfu.uid='$UserID' AND xfu.remaining = 0";
|
|
$Month = "FROM_UNIXTIME(xfu.mtime)";
|
|
break;
|
|
default:
|
|
error(0);
|
|
}
|
|
}
|
|
|
|
ZIP::unlimit();
|
|
|
|
$DB->query("SELECT
|
|
DATE_FORMAT(".$Month.",'%b \'%y') AS Month,
|
|
t.GroupID,
|
|
t.Media,
|
|
t.Format,
|
|
t.Encoding,
|
|
IF(t.RemasterYear=0,tg.Year,t.RemasterYear),
|
|
tg.Name,
|
|
t.Size,
|
|
f.File
|
|
FROM torrents as t
|
|
JOIN torrents_group AS tg ON t.GroupID=tg.ID
|
|
LEFT JOIN torrents_files AS f ON t.ID=f.TorrentID
|
|
".$SQL."
|
|
GROUP BY t.ID");
|
|
$Downloads = $DB->to_array(false,MYSQLI_NUM,false);
|
|
$Artists = get_artists($DB->collect('GroupID'));
|
|
|
|
list($UserID, $Username) = array_values(user_info($UserID));
|
|
$Zip = new ZIP($Username.'\'s '.ucfirst($_GET['type']));
|
|
foreach($Downloads as $Download) {
|
|
list($Month, $GroupID, $Media, $Format, $Encoding, $Year, $Album, $Size, $Contents) = $Download;
|
|
$Artist = display_artists($Artists[$GroupID],false,true,false);
|
|
$Contents = unserialize(base64_decode($Contents));
|
|
$Tor = new TORRENT($Contents, true);
|
|
$Tor->set_announce_url(ANNOUNCE_URL.'/'.$LoggedUser['torrent_pass'].'/announce');
|
|
unset($Tor->Val['announce-list']);
|
|
|
|
$TorrentName='';
|
|
$TorrentInfo='';
|
|
$TorrentName = $Artist;
|
|
$TorrentName .= $Album;
|
|
|
|
if ($Year>0) { $TorrentName.=' - '.$Year; }
|
|
|
|
if ($Media!='') { $TorrentInfo.=$Media; }
|
|
|
|
if ($Format!='') {
|
|
if ($TorrentInfo!='') { $TorrentInfo.=' - '; }
|
|
$TorrentInfo.=$Format;
|
|
}
|
|
|
|
if ($Encoding!='') {
|
|
if ($TorrentInfo!='') { $TorrentInfo.=' - '; }
|
|
$TorrentInfo.=$Encoding;
|
|
}
|
|
|
|
if ($TorrentInfo!='') { $TorrentName.=' ('.$TorrentInfo.')'; }
|
|
|
|
if (!$TorrentName) { $TorrentName="No Name"; }
|
|
|
|
$FileName = file_string($TorrentName);
|
|
if ($Browser == 'Internet Explorer') {
|
|
$FileName = urlencode($FileName);
|
|
}
|
|
$FileName .= '.torrent';
|
|
$Zip->add_file($Tor->enc(), file_string($Month).'/'.$FileName);
|
|
}
|
|
$Zip->close_stream();
|