2011-03-28 14:21:28 +00:00
< ?
if ( ! check_perms ( 'site_torrents_notify' )) { error ( 403 ); }
define ( 'NOTIFICATIONS_PER_PAGE' , 50 );
list ( $Page , $Limit ) = page_limit ( NOTIFICATIONS_PER_PAGE );
2012-06-09 08:00:19 +00:00
$TokenTorrents = $Cache -> get_value ( 'users_tokens_' . $LoggedUser [ 'ID' ]);
2011-10-29 08:00:15 +00:00
if ( empty ( $TokenTorrents )) {
2012-06-09 08:00:19 +00:00
$DB -> query ( " SELECT TorrentID FROM users_freeleeches WHERE UserID= $LoggedUser[ID] AND Expired=FALSE " );
2011-10-29 08:00:15 +00:00
$TokenTorrents = $DB -> collect ( 'TorrentID' );
2012-06-09 08:00:19 +00:00
$Cache -> cache_value ( 'users_tokens_' . $LoggedUser [ 'ID' ], $TokenTorrents );
2011-10-29 08:00:15 +00:00
}
2012-06-09 08:00:19 +00:00
$UserID = $LoggedUser [ 'ID' ];
$Results = $DB -> query ( " SELECT SQL_CALC_FOUND_ROWS unt.TorrentID, unt.UnRead, unt.FilterID, unf.Label, t.GroupID
2011-03-28 14:21:28 +00:00
FROM users_notify_torrents AS unt
2012-06-09 08:00:19 +00:00
JOIN torrents AS t ON t . ID = unt . TorrentID
LEFT JOIN users_notify_filters AS unf ON unf . ID = unt . FilterID
WHERE unt . UserID = $UserID " .
(( ! empty ( $_GET [ 'filterid' ]) && is_number ( $_GET [ 'filterid' ]))
? " AND unf.ID=' $_GET[filterid] ' "
: " " ) . "
ORDER BY TorrentID DESC LIMIT $Limit " );
$GroupIDs = array_unique ( $DB -> collect ( 'GroupID' ));
2011-03-28 14:21:28 +00:00
$DB -> query ( 'SELECT FOUND_ROWS()' );
list ( $TorrentCount ) = $DB -> next_record ();
2012-06-09 08:00:19 +00:00
$Debug -> log_var ( $TorrentCount , 'Torrent count' );
$Pages = get_pages ( $Page , $TorrentCount , NOTIFICATIONS_PER_PAGE , 9 );
2011-03-28 14:21:28 +00:00
2012-06-09 08:00:19 +00:00
if ( count ( $GroupIDs )) {
$TorrentGroups = get_groups ( $GroupIDs );
$TorrentGroups = $TorrentGroups [ 'matches' ];
2011-03-28 14:21:28 +00:00
2012-06-09 08:00:19 +00:00
// Need some extra info that get_groups() doesn't return
$DB -> query ( " SELECT ID, CategoryID FROM torrents_group WHERE ID IN ( " . implode ( ',' , $GroupIDs ) . " ) " );
$GroupCategoryIDs = $DB -> to_array ( 'ID' , MYSQLI_ASSOC , false );
2011-03-28 14:21:28 +00:00
2012-06-09 08:00:19 +00:00
//Clear before header but after query so as to not have the alert bar on this page load
$DB -> query ( " UPDATE users_notify_torrents SET UnRead='0' WHERE UserID= " . $LoggedUser [ 'ID' ]);
$Cache -> delete_value ( 'notifications_new_' . $LoggedUser [ 'ID' ]);
}
2011-03-28 14:21:28 +00:00
2012-06-09 08:00:19 +00:00
show_header ( 'My notifications' , 'notifications' );
$DB -> set_query_id ( $Results );
2011-03-28 14:21:28 +00:00
?>
2012-02-09 08:00:20 +00:00
< h2 > Latest notifications < a href = " torrents.php?action=notify_clear&auth=<?= $LoggedUser['AuthKey'] ?> " > ( clear all ) </ a > < a href = " javascript:SuperGroupClear() " > ( clear selected ) </ a > < a href = " user.php?action=notify " > ( edit filters ) </ a ></ h2 >
2011-03-28 14:21:28 +00:00
< div class = " linkbox " >
< ? = $Pages ?>
</ div >
2012-06-09 08:00:19 +00:00
< ? if ( ! $DB -> record_count ()) { ?>
2011-03-28 14:21:28 +00:00
< table class = " border " >
< tr class = " rowb " >
2012-02-09 08:00:20 +00:00
< td colspan = " 8 " class = " center " >
2011-03-28 14:21:28 +00:00
No new notifications found ! < a href = " user.php?action=notify " > Edit notification filters </ a >
</ td >
</ tr >
</ table >
< ? } else {
$FilterGroups = array ();
2012-06-09 08:00:19 +00:00
while ( $Result = $DB -> next_record ( MYSQLI_ASSOC )) {
2011-03-28 14:21:28 +00:00
if ( ! $Result [ 'FilterID' ]) {
$Result [ 'FilterID' ] = 0 ;
}
if ( ! isset ( $FilterGroups [ $Result [ 'FilterID' ]])) {
$FilterGroups [ $Result [ 'FilterID' ]] = array ();
2012-06-09 08:00:19 +00:00
$FilterGroups [ $Result [ 'FilterID' ]][ 'FilterLabel' ] = $Result [ 'Label' ] ? $Result [ 'Label' ] : false ;
2011-03-28 14:21:28 +00:00
}
array_push ( $FilterGroups [ $Result [ 'FilterID' ]], $Result );
}
unset ( $Result );
2012-06-09 08:00:19 +00:00
$Debug -> log_var ( $FilterGroups , 'Filter groups' );
foreach ( $FilterGroups as $FilterID => $FilterResults ) {
2011-03-28 14:21:28 +00:00
?>
2012-06-09 08:00:19 +00:00
< h3 >
Matches for < ? = $FilterResults [ 'FilterLabel' ] !== false
? '<a href="torrents.php?action=notify&filterid=' . $FilterID . '">' . $FilterResults [ 'FilterLabel' ] . '</a>'
: 'unknown filter[' . $FilterID . ']' ?>
< a href = " torrents.php?action=notify_cleargroup&filterid=<?= $FilterID ?>&auth=<?= $LoggedUser['AuthKey'] ?> " > ( clear ) </ a >
< a href = " javascript:GroupClear( $ ('#notificationform_<?= $FilterID ?>').raw()) " > ( clear selected ) </ a >
</ h3 >
< form id = " notificationform_<?= $FilterID ?> " >
2011-03-28 14:21:28 +00:00
< table class = " border " >
< tr class = " colhead " >
2012-02-09 08:00:20 +00:00
< td style = " text-align: center " >< input type = " checkbox " name = " toggle " onClick = " ToggleBoxes(this.form, this.checked) " /></ td >
2011-03-28 14:21:28 +00:00
< td class = " small cats_col " ></ td >
< td style = " width:100%; " >< strong > Name </ strong ></ td >
< td >< strong > Files </ strong ></ td >
< td >< strong > Time </ strong ></ td >
< td >< strong > Size </ strong ></ td >
< td style = " text-align:right " >< img src = " static/styles/<?= $LoggedUser['StyleName'] ?>/images/snatched.png " alt = " Snatches " title = " Snatches " /></ td >
< td style = " text-align:right " >< img src = " static/styles/<?= $LoggedUser['StyleName'] ?>/images/seeders.png " alt = " Seeders " title = " Seeders " /></ td >
< td style = " text-align:right " >< img src = " static/styles/<?= $LoggedUser['StyleName'] ?>/images/leechers.png " alt = " Leechers " title = " Leechers " /></ td >
</ tr >
< ?
unset ( $FilterResults [ 'FilterLabel' ]);
foreach ( $FilterResults as $Result ) {
2012-06-09 08:00:19 +00:00
$TorrentID = $Result [ 'TorrentID' ];
$GroupID = $Result [ 'GroupID' ];
$GroupCategoryID = $GroupCategoryIDs [ $GroupID ][ 'CategoryID' ];
$GroupInfo = $TorrentGroups [ $Result [ 'GroupID' ]];
if ( ! $TorrentInfo = $GroupInfo [ 'Torrents' ][ $TorrentID ]) {
continue ;
2011-10-29 08:00:15 +00:00
}
2012-06-09 08:00:19 +00:00
// generate torrent's title
$DisplayName = '' ;
if ( ! empty ( $GroupInfo [ 'ExtendedArtists' ])) {
$DisplayName = display_artists ( $GroupInfo [ 'ExtendedArtists' ], true , true );
2011-03-28 14:21:28 +00:00
}
2012-06-09 08:00:19 +00:00
$DisplayName .= " <a href='torrents.php?id= $GroupID &torrentid= $TorrentID #torrent $TorrentID ' title='View Torrent'> " . $GroupInfo [ 'Name' ] . " </a> " ;
if ( $GroupCategoryID == 1 ) {
if ( $GroupInfo [ 'Year' ] > 0 ) {
$DisplayName .= " [ $GroupInfo[Year] ] " ;
}
if ( $GroupInfo [ 'ReleaseType' ] > 0 ) {
$DisplayName .= " [ " . $ReleaseTypes [ $GroupInfo [ 'ReleaseType' ]] . " ] " ;
}
2012-02-10 08:00:19 +00:00
}
2012-06-09 08:00:19 +00:00
2011-03-28 14:21:28 +00:00
// append extra info to torrent title
2012-06-09 08:00:19 +00:00
$ExtraInfo = torrent_info ( $TorrentInfo , true );
$Debug -> log_var ( $ExtraInfo , " Extra torrent info ( $TorrentID ) " );
$TagLinks = array ();
if ( $GroupInfo [ 'TagList' ] != '' ) {
$TorrentTags = explode ( ' ' , $GroupInfo [ 'TagList' ]);
2011-03-28 14:21:28 +00:00
$MainTag = $TorrentTags [ 0 ];
foreach ( $TorrentTags as $TagKey => $TagName ) {
2012-06-09 08:00:19 +00:00
$TagName = str_replace ( '_' , '.' , $TagName );
$TagLinks [] = '<a href="torrents.php?taglist=' . $TagName . '">' . $TagName . '</a>' ;
2011-03-28 14:21:28 +00:00
}
$TagLinks = implode ( ', ' , $TagLinks );
2012-06-09 08:00:19 +00:00
$TorrentTags = '<br /><div class="tags">' . $TagLinks . '</div>' ;
2011-03-28 14:21:28 +00:00
} else {
$MainTag = $Categories [ $GroupCategoryID - 1 ];
}
// print row
?>
< tr class = " group_torrent " id = " torrent<?= $TorrentID ?> " >
2012-02-09 08:00:20 +00:00
< td style = " text-align: center " >< input type = " checkbox " value = " <?= $TorrentID ?> " id = " clear_<?= $TorrentID ?> " /></ td >
2011-03-28 14:21:28 +00:00
< td class = " center cats_cols " >< div title = " <?=ucfirst(str_replace('_',' ', $MainTag ))?> " class = " cats_<?=strtolower(str_replace(array('-',' '),array('',''), $Categories[$GroupCategoryID-1] )).' tags_'.str_replace('.','_', $MainTag )?> " ></ div ></ td >
< td >
< span >
2011-10-29 08:00:15 +00:00
[ < a href = " torrents.php?action=download&id=<?= $TorrentID ?>&authkey=<?= $LoggedUser['AuthKey'] ?>&torrent_pass=<?= $LoggedUser['torrent_pass'] ?> " title = " Download " > DL </ a >
< ? if (( $LoggedUser [ 'FLTokens' ] > 0 ) && ( $Size < 1073741824 )
2012-06-09 08:00:19 +00:00
&& ! in_array ( $TorrentID , $TokenTorrents ) && empty ( $TorrentInfo [ 'FreeTorrent' ]) && ( $LoggedUser [ 'CanLeech' ] == '1' )) { ?>
2012-05-18 13:35:17 +00:00
| < 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 >
2011-10-29 08:00:15 +00:00
< ? } ?>
| < a href = " # " onclick = " Clear(<?= $TorrentID ?>);return false; " title = " Remove from notifications list " > CL </ a > ]
2011-03-28 14:21:28 +00:00
</ span >
2012-06-09 08:00:19 +00:00
< strong >< ? = $DisplayName ?> </strong> <?=$ExtraInfo?>
< ? if ( $Result [ 'UnRead' ]) { echo '<strong>New!</strong>' ; } ?>
2011-03-28 14:21:28 +00:00
< ? = $TorrentTags ?>
</ td >
2012-06-09 08:00:19 +00:00
< td >< ? = $TorrentInfo [ 'FileCount' ] ?> </td>
< td style = " text-align:right " class = " nobr " >< ? = time_diff ( $TorrentInfo [ 'Time' ]) ?> </td>
< td class = " nobr " style = " text-align:right " >< ? = get_size ( $TorrentInfo [ 'Size' ]) ?> </td>
< td style = " text-align:right " >< ? = number_format ( $TorrentInfo [ 'Snatched' ]) ?> </td>
< td style = " text-align:right " >< ? = number_format ( $TorrentInfo [ 'Seeders' ]) ?> </td>
< td style = " text-align:right " >< ? = number_format ( $TorrentInfo [ 'Leechers' ]) ?> </td>
2011-03-28 14:21:28 +00:00
</ tr >
< ?
}
?>
</ table >
2012-02-09 08:00:20 +00:00
</ form >
2011-03-28 14:21:28 +00:00
< ?
}
}
?>
< div class = " linkbox " >
< ? = $Pages ?>
</ div >
< ?
show_footer ();
?>