mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-13 10:56:26 +00:00
370 lines
16 KiB
PHP
370 lines
16 KiB
PHP
<?
|
|
ini_set('max_execution_time',600);
|
|
set_time_limit(0);
|
|
|
|
//~~~~~~~~~~~ Main bookmarks page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
|
|
|
function compare($X, $Y){
|
|
return($Y['count'] - $X['count']);
|
|
}
|
|
|
|
if(!empty($_GET['userid'])) {
|
|
if(!check_perms('users_override_paranoia')) {
|
|
error(403);
|
|
}
|
|
$UserID = $_GET['userid'];
|
|
if(!is_number($UserID)) { error(404); }
|
|
$DB->query("SELECT Username FROM users_main WHERE ID='$UserID'");
|
|
list($Username) = $DB->next_record();
|
|
} else {
|
|
$UserID = $LoggedUser['ID'];
|
|
}
|
|
|
|
$Sneaky = $UserID != $LoggedUser['ID'];
|
|
$Title = $Sneaky ? "$Username's bookmarked torrents" : 'Your bookmarked torrents';
|
|
|
|
// Loop through the result set, building up $Collage and $TorrentTable
|
|
// Then we print them.
|
|
$Collage = array();
|
|
$TorrentTable = '';
|
|
|
|
$NumGroups = 0;
|
|
$ArtistCount = array();
|
|
|
|
list(, $CollageDataList, $TorrentList) = Users::get_bookmarks($UserID);
|
|
foreach ($TorrentList as $GroupID => $Group) {
|
|
extract(Torrents::array_group($Group));
|
|
list(, $Sort, $AddedTime) = array_values($CollageDataList[$GroupID]);
|
|
|
|
// Handle stats and stuff
|
|
$NumGroups++;
|
|
|
|
if($Artists) {
|
|
foreach($Artists as $Artist) {
|
|
if(!isset($ArtistCount[$Artist['id']])) {
|
|
$ArtistCount[$Artist['id']] = array('name'=>$Artist['name'], 'count'=>1);
|
|
} else {
|
|
$ArtistCount[$Artist['id']]['count']++;
|
|
}
|
|
}
|
|
}
|
|
|
|
$TorrentTags = new Tags($TagList);
|
|
|
|
if (!empty($ExtendedArtists[1]) || !empty($ExtendedArtists[4]) || !empty($ExtendedArtists[5]) || !empty($ExtendedArtists[6])) {
|
|
unset($ExtendedArtists[2]);
|
|
unset($ExtendedArtists[3]);
|
|
$DisplayName = Artists::display_artists($ExtendedArtists);
|
|
} elseif(count($Artists)>0) {
|
|
$DisplayName = Artists::display_artists(array('1'=>$Artists));
|
|
} else {
|
|
$DisplayName = '';
|
|
}
|
|
$DisplayName .= '<a href="torrents.php?id='.$GroupID.'" title="View Torrent">'.$GroupName.'</a>';
|
|
if($GroupYear>0) { $DisplayName = $DisplayName. ' ['. $GroupYear .']';}
|
|
if($GroupVanityHouse) { $DisplayName .= ' [<abbr title="This is a vanity house release">VH</abbr>]'; }
|
|
$SnatchedGroupClass = $GroupFlags['IsSnatched'] ? ' snatched_group' : '';
|
|
|
|
// Start an output buffer, so we can store this output in $TorrentTable
|
|
ob_start();
|
|
if(count($Torrents)>1 || $GroupCategoryID==1) {
|
|
// Grouped torrents
|
|
$ShowGroups = !(!empty($LoggedUser['TorrentGrouping']) && $LoggedUser['TorrentGrouping'] == 1);
|
|
?>
|
|
<tr class="group discog<?=$SnatchedGroupClass?>" id="group_<?=$GroupID?>">
|
|
<td class="center">
|
|
<div title="View" id="showimg_<?=$GroupID?>" class="<?=($ShowGroups ? 'hide' : 'show')?>_torrents">
|
|
<a href="#" class="show_torrents_link" onclick="toggle_group(<?=$GroupID?>, this, event)" title="Collapse this group. Hold "Ctrl" while clicking to collape all groups on this page."></a>
|
|
</div>
|
|
</td>
|
|
<td class="center">
|
|
<div title="<?=$TorrentTags->title()?>" class="<?=Format::css_category($GroupCategoryID)?> <?=$TorrentTags->css_name()?>"></div>
|
|
</td>
|
|
<td colspan="5">
|
|
<strong><?=$DisplayName?></strong>
|
|
<span style="text-align:right" class="float_right">
|
|
<? if(!$Sneaky){ ?>
|
|
<a href="#group_<?=$GroupID?>" class="brackets remove_bookmark" title="Remove bookmark" onclick="Unbookmark('torrent', <?=$GroupID?>, '');return false;">Unbookmark</a>
|
|
<br />
|
|
<? } ?>
|
|
<?=time_diff($AddedTime);?>
|
|
</span>
|
|
<div class="tags"><?=$TorrentTags->format()?></div>
|
|
</td>
|
|
</tr>
|
|
<?
|
|
$LastRemasterYear = '-';
|
|
$LastRemasterTitle = '';
|
|
$LastRemasterRecordLabel = '';
|
|
$LastRemasterCatalogueNumber = '';
|
|
$LastMedia = '';
|
|
|
|
$EditionID = 0;
|
|
unset($FirstUnknown);
|
|
|
|
foreach ($Torrents as $TorrentID => $Torrent) {
|
|
|
|
if ($Torrent['Remastered'] && !$Torrent['RemasterYear']) {
|
|
$FirstUnknown = !isset($FirstUnknown);
|
|
}
|
|
$SnatchedTorrentClass = $Torrent['IsSnatched'] ? ' snatched_torrent' : '';
|
|
|
|
if($Torrent['RemasterTitle'] != $LastRemasterTitle || $Torrent['RemasterYear'] != $LastRemasterYear ||
|
|
$Torrent['RemasterRecordLabel'] != $LastRemasterRecordLabel || $Torrent['RemasterCatalogueNumber'] != $LastRemasterCatalogueNumber || $FirstUnknown || $Torrent['Media'] != $LastMedia) {
|
|
|
|
$EditionID++;
|
|
if($Torrent['Remastered'] && $Torrent['RemasterYear'] != 0) {
|
|
|
|
$RemasterName = $Torrent['RemasterYear'];
|
|
$AddExtra = " - ";
|
|
if($Torrent['RemasterRecordLabel']) { $RemasterName .= $AddExtra.display_str($Torrent['RemasterRecordLabel']); $AddExtra=' / '; }
|
|
if($Torrent['RemasterCatalogueNumber']) { $RemasterName .= $AddExtra.display_str($Torrent['RemasterCatalogueNumber']); $AddExtra=' / '; }
|
|
if($Torrent['RemasterTitle']) { $RemasterName .= $AddExtra.display_str($Torrent['RemasterTitle']); $AddExtra=' / '; }
|
|
$RemasterName .= $AddExtra.display_str($Torrent['Media']);
|
|
|
|
?>
|
|
<tr class="group_torrent groupid_<?=$GroupID?> edition<?=$SnatchedGroupClass . (!empty($LoggedUser['TorrentGrouping']) && $LoggedUser['TorrentGrouping'] == 1 ? ' hidden' : '')?>">
|
|
<td colspan="7" class="edition_info"><strong><a href="#" onclick="toggle_edition(<?=$GroupID?>, <?=$EditionID?>, this, event)" title="Collapse this edition. Hold "Ctrl" while clicking to collapse all editions in this torrent group.">−</a> <?=$RemasterName?></strong></td>
|
|
</tr>
|
|
<?
|
|
} else {
|
|
$AddExtra = " / ";
|
|
if (!$Torrent['Remastered']) {
|
|
$MasterName = "Original Release";
|
|
if($GroupRecordLabel) { $MasterName .= $AddExtra.$GroupRecordLabel; $AddExtra=' / '; }
|
|
if($GroupCatalogueNumber) { $MasterName .= $AddExtra.$GroupCatalogueNumber; $AddExtra=' / '; }
|
|
} else {
|
|
$MasterName = "Unknown Release(s)";
|
|
}
|
|
$MasterName .= $AddExtra.display_str($Torrent['Media']);
|
|
?>
|
|
<tr class="group_torrent groupid_<?=$GroupID?> edition<?=$SnatchedGroupClass . (!empty($LoggedUser['TorrentGrouping']) && $LoggedUser['TorrentGrouping'] == 1 ? ' hidden' : '')?>">
|
|
<td colspan="7" class="edition_info"><strong><a href="#" onclick="toggle_edition(<?=$GroupID?>, <?=$EditionID?>, this, event)" title="Collapse this edition. Hold "Ctrl" while clicking to collapse all editions in this torrent group.">−</a> <?=$MasterName?></strong></td>
|
|
</tr>
|
|
<?
|
|
}
|
|
}
|
|
$LastRemasterTitle = $Torrent['RemasterTitle'];
|
|
$LastRemasterYear = $Torrent['RemasterYear'];
|
|
$LastRemasterRecordLabel = $Torrent['RemasterRecordLabel'];
|
|
$LastRemasterCatalogueNumber = $Torrent['RemasterCatalogueNumber'];
|
|
$LastMedia = $Torrent['Media'];
|
|
?>
|
|
<tr class="group_torrent torrent_row groupid_<?=$GroupID?> edition_<?=$EditionID?><?=$SnatchedTorrentClass . $SnatchedGroupClass . (!empty($LoggedUser['TorrentGrouping']) && $LoggedUser['TorrentGrouping'] == 1 ? ' hidden' : '')?>">
|
|
<td colspan="3">
|
|
<span>[ <a href="torrents.php?action=download&id=<?=$TorrentID?>&authkey=<?=$LoggedUser['AuthKey']?>&torrent_pass=<?=$LoggedUser['torrent_pass']?>" title="Download">DL</a>
|
|
<? if (Torrents::can_use_token($Torrent)) { ?>
|
|
| <a href="torrents.php?action=download&id=<?=$TorrentID ?>&authkey=<?=$LoggedUser['AuthKey']?>&torrent_pass=<?=$LoggedUser['torrent_pass']?>&usetoken=1" title="Use a FL Token" onclick="return confirm('Are you sure you want to use a freeleech token here?');">FL</a>
|
|
<? } ?>
|
|
| <a href="reportsv2.php?action=report&id=<?=$TorrentID?>" title="Report">RP</a> ]
|
|
</span>
|
|
» <a href="torrents.php?id=<?=$GroupID?>&torrentid=<?=$TorrentID?>"><?=Torrents::torrent_info($Torrent)?></a>
|
|
</td>
|
|
<td class="nobr"><?=Format::get_size($Torrent['Size'])?></td>
|
|
<td><?=number_format($Torrent['Snatched'])?></td>
|
|
<td<?=($Torrent['Seeders']==0)?' class="r00"':''?>><?=number_format($Torrent['Seeders'])?></td>
|
|
<td><?=number_format($Torrent['Leechers'])?></td>
|
|
</tr>
|
|
<?
|
|
}
|
|
} else {
|
|
// Viewing a type that does not require grouping
|
|
|
|
list($TorrentID, $Torrent) = each($Torrents);
|
|
|
|
$DisplayName = '<a href="torrents.php?id='.$GroupID.'" title="View Torrent">'.$GroupName.'</a>';
|
|
|
|
if ($Torrent['IsSnatched']) {
|
|
$DisplayName .= ' ' . Format::torrent_label('Snatched!');
|
|
}
|
|
if ($Torrent['FreeTorrent'] == '1') {
|
|
$DisplayName .= ' ' . Format::torrent_label('Freeleech!');
|
|
} elseif ($Torrent['FreeTorrent'] == '2') {
|
|
$DisplayName .= ' ' . Format::torrent_label('Neutral leech!');
|
|
} elseif ($Torrent['PersonalFL']) {
|
|
$DisplayName .= ' ' . Format::torrent_label('Personal Freeleech!');
|
|
}
|
|
$SnatchedTorrentClass = $Torrent['IsSnatched'] ? ' snatched_torrent' : '';
|
|
?>
|
|
<tr class="torrent torrent_row<?=$SnatchedTorrentClass . $SnatchedGroupClass?>" id="group_<?=$GroupID?>">
|
|
<td></td>
|
|
<td class="center">
|
|
<div title="<?=$TorrentTags->title()?>" class="<?=Format::css_category($GroupCategoryID)?> <?=$TorrentTags->css_name()?>">
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<span>
|
|
[ <a href="torrents.php?action=download&id=<?=$TorrentID?>&authkey=<?=$LoggedUser['AuthKey']?>&torrent_pass=<?=$LoggedUser['torrent_pass']?>" title="Download">DL</a>
|
|
<? if (Torrents::can_use_token($Torrent)) { ?>
|
|
| <a href="torrents.php?action=download&id=<?=$TorrentID ?>&authkey=<?=$LoggedUser['AuthKey']?>&torrent_pass=<?=$LoggedUser['torrent_pass']?>&usetoken=1" title="Use a FL Token" onclick="return confirm('Are you sure you want to use a freeleech token here?');">FL</a>
|
|
<? } ?>
|
|
| <a href="reportsv2.php?action=report&id=<?=$TorrentID?>" title="Report">RP</a> ]
|
|
</span>
|
|
<strong><?=$DisplayName?></strong>
|
|
<div class="tags"><?=$TorrentTags->format()?></div>
|
|
<? if(!$Sneaky){ ?>
|
|
<span class="float_right float_clear"><a href="#group_<?=$GroupID?>" class="brackets remove_bookmark" title="Remove bookmark" onclick="Unbookmark('torrent', <?=$GroupID?>, '');return false;">Unbookmark</a></span>
|
|
<? } ?>
|
|
<span class="float_right float_clear"><?=time_diff($AddedTime);?></span>
|
|
|
|
</td>
|
|
<td class="nobr"><?=Format::get_size($Torrent['Size'])?></td>
|
|
<td><?=number_format($Torrent['Snatched'])?></td>
|
|
<td<?=($Torrent['Seeders']==0)?' class="r00"':''?>><?=number_format($Torrent['Seeders'])?></td>
|
|
<td><?=number_format($Torrent['Leechers'])?></td>
|
|
</tr>
|
|
<?
|
|
}
|
|
$TorrentTable.=ob_get_clean();
|
|
|
|
// Album art
|
|
|
|
ob_start();
|
|
|
|
$DisplayName = '';
|
|
if (!empty($ExtendedArtists[1]) || !empty($ExtendedArtists[4]) || !empty($ExtendedArtists[5])|| !empty($ExtendedArtists[6])) {
|
|
unset($ExtendedArtists[2]);
|
|
unset($ExtendedArtists[3]);
|
|
$DisplayName .= Artists::display_artists($ExtendedArtists, false);
|
|
} elseif(count($Artists)>0) {
|
|
$DisplayName .= Artists::display_artists(array('1'=>$Artists), false);
|
|
}
|
|
$DisplayName .= $GroupName;
|
|
if($GroupYear>0) { $DisplayName = $DisplayName. ' ['. $GroupYear .']';}
|
|
?>
|
|
<li class="image_group_<?=$GroupID?>">
|
|
<a href="torrents.php?id=<?=$GroupID?>" class="bookmark_<?=$GroupID?>">
|
|
<? if($WikiImage) {
|
|
if(check_perms('site_proxy_images')) {
|
|
$WikiImage = 'http'.($SSL?'s':'').'://'.SITE_URL.'/image.php?i='.urlencode($WikiImage);
|
|
}
|
|
?>
|
|
<img src="<?=ImageTools::thumbnail($WikiImage)?>" alt="<?=$DisplayName?>" title="<?=$DisplayName?>" width="117" />
|
|
<? } else { ?>
|
|
<div style="width:107px;padding:5px"><?=$DisplayName?></div>
|
|
<? } ?>
|
|
</a>
|
|
</li>
|
|
<?
|
|
$Collage[]=ob_get_clean();
|
|
|
|
}
|
|
|
|
$CollageCovers = isset($LoggedUser['CollageCovers'])?$LoggedUser['CollageCovers']:25;
|
|
$CollagePages = array();
|
|
for ($i=0; $i < $NumGroups/$CollageCovers; $i++) {
|
|
$Groups = array_slice($Collage, $i*$CollageCovers, $CollageCovers);
|
|
$CollagePage = '';
|
|
foreach ($Groups as $Group) {
|
|
$CollagePage .= $Group;
|
|
}
|
|
$CollagePages[] = $CollagePage;
|
|
}
|
|
|
|
View::show_header($Title, 'browse,collage');
|
|
?>
|
|
<div class="thin">
|
|
<div class="header">
|
|
<h2><? if (!$Sneaky) { ?><a href="feeds.php?feed=torrents_bookmarks_t_<?=$LoggedUser['torrent_pass']?>&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>&name=<?=urlencode(SITE_NAME.': Bookmarked Torrents')?>"><img src="<?=STATIC_SERVER?>/common/symbols/rss.png" alt="RSS feed" /></a> <? } ?><?=$Title?></h2>
|
|
<div class="linkbox">
|
|
<a href="bookmarks.php?type=torrents" class="brackets">Torrents</a>
|
|
<a href="bookmarks.php?type=artists" class="brackets">Artists</a>
|
|
<a href="bookmarks.php?type=collages" class="brackets">Collages</a>
|
|
<a href="bookmarks.php?type=requests" class="brackets">Requests</a>
|
|
<? if (count($TorrentList) > 0) { ?>
|
|
<br /><br />
|
|
<a href="bookmarks.php?action=remove_snatched&auth=<?=$LoggedUser['AuthKey']?>" class="brackets" onclick="return confirm('Are you sure you want to remove the bookmarks for all items you\'ve snatched?');">Remove snatched</a>
|
|
<a href="bookmarks.php?action=edit&type=torrents" class="brackets">Manage torrents</a>
|
|
<? } ?>
|
|
</div>
|
|
</div>
|
|
<? if (count($TorrentList) == 0) { ?>
|
|
<div class="box pad" align="center">
|
|
<h2>You have not bookmarked any torrents.</h2>
|
|
</div>
|
|
</div><!--content-->
|
|
<?
|
|
View::show_footer();
|
|
die();
|
|
} ?>
|
|
<div class="sidebar">
|
|
<div class="box box_info box_statistics_bookmarked_torrents">
|
|
<div class="head"><strong>Stats</strong></div>
|
|
<ul class="stats nobullet">
|
|
<li>Torrents: <?=$NumGroups?></li>
|
|
<? if(count($ArtistCount) >0) { ?> <li>Artists: <?=count($ArtistCount)?></li> <? } ?>
|
|
</ul>
|
|
</div>
|
|
<div class="box box_tags">
|
|
<div class="head"><strong>Top tags</strong></div>
|
|
<div class="pad">
|
|
<ol style="padding-left:5px;">
|
|
<? Tags::format_top(5) ?>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="box box_artists">
|
|
<div class="head"><strong>Top artists</strong></div>
|
|
<div class="pad">
|
|
<ol style="padding-left:5px;">
|
|
<?
|
|
uasort($ArtistCount, 'compare');
|
|
$i = 0;
|
|
foreach ($ArtistCount as $ID => $Artist) {
|
|
$i++;
|
|
if($i>10) { break; }
|
|
?>
|
|
<li><a href="artist.php?id=<?=$ID?>"><?=display_str($Artist['name'])?></a> (<?=$Artist['count']?>)</li>
|
|
<?
|
|
}
|
|
?>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="main_column">
|
|
<?
|
|
if($CollageCovers != 0) { ?>
|
|
<div id="coverart" class="box">
|
|
<div class="head" id="coverhead"><strong>Cover art</strong></div>
|
|
<ul class="collage_images" id="collage_page0">
|
|
<?
|
|
$Page1 = array_slice($Collage, 0, $CollageCovers);
|
|
foreach($Page1 as $Group) {
|
|
echo $Group;
|
|
}?>
|
|
</ul>
|
|
</div>
|
|
<? if ($NumGroups > $CollageCovers) { ?>
|
|
<div class="linkbox pager" style="clear: left;" id="pageslinksdiv">
|
|
<span id="firstpage" class="invisible"><a href="#" class="pageslink" onclick="collageShow.page(0, this); return false;"><< First</a> | </span>
|
|
<span id="prevpage" class="invisible"><a href="#" id="prevpage" class="pageslink" onclick="collageShow.prevPage(); return false;">< Prev</a> | </span>
|
|
<? for ($i=0; $i < $NumGroups/$CollageCovers; $i++) { ?>
|
|
<span id="pagelink<?=$i?>" class="<?=(($i>4)?'hidden':'')?><?=(($i==0)?' selected':'')?>"><a href="#" class="pageslink" onclick="collageShow.page(<?=$i?>, this); return false;"><?=$CollageCovers*$i+1?>-<?=min($NumGroups,$CollageCovers*($i+1))?></a><?=($i != ceil($NumGroups/$CollageCovers)-1)?' | ':''?></span>
|
|
<? } ?>
|
|
<span id="nextbar" class="<?=($NumGroups/$CollageCovers > 5)?'hidden':''?>"> | </span>
|
|
<span id="nextpage"><a href="#" class="pageslink" onclick="collageShow.nextPage(); return false;">Next ></a></span>
|
|
<span id="lastpage" class="<?=ceil($NumGroups/$CollageCovers)==2?'invisible':''?>"> | <a href="#" id="lastpage" class="pageslink" onclick="collageShow.page(<?=ceil($NumGroups/$CollageCovers)-1?>, this); return false;">Last >></a></span>
|
|
</div>
|
|
<script type="text/javascript">
|
|
collageShow.init(<?=json_encode($CollagePages)?>);
|
|
</script>
|
|
<? }
|
|
} ?>
|
|
<table class="torrent_table grouping cats" id="torrent_table">
|
|
<tr class="colhead_dark">
|
|
<td><!-- expand/collapse --></td>
|
|
<td><!-- Category --></td>
|
|
<td width="70%"><strong>Torrents</strong> (<a href="#" onclick="return false;">View</a>)</td>
|
|
<td>Size</td>
|
|
<td class="sign"><img src="static/styles/<?=$LoggedUser['StyleName'] ?>/images/snatched.png" alt="Snatches" title="Snatches" /></td>
|
|
<td class="sign"><img src="static/styles/<?=$LoggedUser['StyleName'] ?>/images/seeders.png" alt="Seeders" title="Seeders" /></td>
|
|
<td class="sign"><img src="static/styles/<?=$LoggedUser['StyleName'] ?>/images/leechers.png" alt="Leechers" title="Leechers" /></td>
|
|
</tr>
|
|
<?=$TorrentTable?>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<?
|
|
View::show_footer();
|