2020-12-26 01:42:23 +08:00
< ? php
2021-01-13 19:32:26 +08:00
require " ../include/bittorrent.php " ;
2020-12-26 01:42:23 +08:00
dbconn ();
require_once ( get_langfile_path ());
loggedinorreturn ();
parked ();
function purge_neighbors_cache ()
{
global $CURUSER ;
$cachefile = " cache/ " . get_langfolder_cookie () . " /neighbors/ " . $CURUSER [ 'id' ] . " .html " ;
if ( file_exists ( $cachefile ))
unlink ( $cachefile );
}
//make_folder("cache/" , get_langfolder_cookie());
//make_folder("cache/" , get_langfolder_cookie() . "/neighbors");
$userid = $CURUSER [ 'id' ];
2020-12-30 02:37:43 +08:00
$action = $_GET [ 'action' ] ? ? '' ;
2020-12-26 01:42:23 +08:00
if ( ! is_valid_id ( $userid ))
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_invalid_id' ] . " $userid . " );
$user = $CURUSER ;
// action: add -------------------------------------------------------------
if ( $action == 'add' )
{
$targetid = $_GET [ 'targetid' ];
$type = $_GET [ 'type' ];
if ( ! is_valid_id ( $targetid ))
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_invalid_id' ] . " $targetid . " );
if ( $type == 'friend' )
{
$table_is = $frag = 'friends' ;
$field_is = 'friendid' ;
}
elseif ( $type == 'block' )
{
$table_is = $frag = 'blocks' ;
$field_is = 'blockid' ;
}
else
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_unknown_type' ] . " $type " );
$r = sql_query ( " SELECT id FROM $table_is WHERE userid= $userid AND $field_is = $targetid " ) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_num_rows ( $r ) == 1 )
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_user_id' ] . $targetid . $lang_friends [ 'std_already_in' ] . $table_is . $lang_friends [ 'std_list' ]);
sql_query ( " INSERT INTO $table_is VALUES (0, $userid , $targetid ) " ) or sqlerr ( __FILE__ , __LINE__ );
2022-08-20 19:11:28 +08:00
2020-12-26 01:42:23 +08:00
purge_neighbors_cache ();
2022-08-20 19:11:28 +08:00
2020-12-26 01:42:23 +08:00
header ( " Location: " . get_protocol_prefix () . " $BASEURL /friends.php?id= $userid # $frag " );
die ;
}
// action: delete ----------------------------------------------------------
if ( $action == 'delete' )
{
$targetid = $_GET [ 'targetid' ];
$sure = $_GET [ 'sure' ];
$type = $_GET [ 'type' ];
if ( $type == 'friend' )
$typename = $lang_friends [ 'text_friend' ];
else $typename = $lang_friends [ 'text_block' ];
if ( ! is_valid_id ( $targetid ))
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_invalid_id' ] . " $userid . " );
if ( ! $sure )
stderr ( $lang_friends [ 'std_delete' ] . $type , $lang_friends [ 'std_delete_note' ] . $typename . $lang_friends [ 'std_click' ] .
" <a href=?id= $userid &action=delete&type= $type &targetid= $targetid &sure=1> " . $lang_friends [ 'std_here_if_sure' ], false );
if ( $type == 'friend' )
{
sql_query ( " DELETE FROM friends WHERE userid= $userid AND friendid= $targetid " ) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_affected_rows () == 0 )
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_no_friend_found' ] . " $targetid " );
$frag = " friends " ;
}
elseif ( $type == 'block' )
{
sql_query ( " DELETE FROM blocks WHERE userid= $userid AND blockid= $targetid " ) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_affected_rows () == 0 )
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_no_block_found' ] . " $targetid " );
$frag = " blocks " ;
}
else
stderr ( $lang_friends [ 'std_error' ], $lang_friends [ 'std_unknown_type' ] . " $type " );
purge_neighbors_cache ();
header ( " Location: " . get_protocol_prefix () . " $BASEURL /friends.php?id= $userid # $frag " );
die ;
}
// main body -----------------------------------------------------------------
stdhead ( $lang_friends [ 'head_personal_lists_for' ] . $user [ 'username' ]);
print ( " <p><table class=main border=0 cellspacing=0 cellpadding=0> " .
2020-12-30 02:37:43 +08:00
" <tr><td class=embedded><h1 style='margin:0px'> " . $lang_friends [ 'text_personallist' ] . " " . get_username ( $user [ 'id' ]) . " </h1></td></tr></table></p> \n " );
2020-12-26 01:42:23 +08:00
//Start: Friends
print ( " <table class=main width=737 border=0 cellspacing=0 cellpadding=0><tr><td class=embedded> " );
print ( " <br /> " );
print ( " <h2 align=left><a name= \" friends \" > " . $lang_friends [ 'text_friendlist' ] . " </a></h2> \n " );
print ( " <table width=737 border=1 cellspacing=0 cellpadding=5><tr class=tablea><td> " );
$i = 0 ;
unset ( $friend_id_arr );
$res = sql_query ( " SELECT f.friendid as id, u.last_access, u.class, u.avatar, u.title FROM friends AS f LEFT JOIN users as u ON f.friendid = u.id WHERE userid= $userid ORDER BY id " ) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_num_rows ( $res ) == 0 )
$friends = $lang_friends [ 'text_friends_empty' ];
else
while ( $friend = mysql_fetch_array ( $res ))
{
$friend_id_arr [] = $friend [ " id " ];
$title = $friend [ " title " ];
if ( ! $title )
$title = get_user_class_name ( $friend [ " class " ], false , true , true );
$body1 = get_username ( $friend [ " id " ]) .
" ( $title )<br /><br /> " . $lang_friends [ 'text_last_seen_on' ] . gettime ( $friend [ 'last_access' ], true , false );
$body2 = " <a href=friends.php?id= $userid &action=delete&type=friend&targetid= " . $friend [ 'id' ] . " > " . $lang_friends [ 'text_remove_from_friends' ] . " </a> " .
" <br /><br /><a href=sendmessage.php?receiver= " . $friend [ 'id' ] . " > " . $lang_friends [ 'text_send_pm' ] . " </a> " ;
$avatar = ( $CURUSER [ " avatars " ] == " yes " ? htmlspecialchars ( $friend [ " avatar " ]) : " " );
if ( ! $avatar )
$avatar = " pic/default_avatar.png " ;
if ( $i % 2 == 0 )
print ( " <table width=100% style='padding: 0px'><tr><td class=bottom style='padding: 5px' width=50% align=center> " );
else
print ( " <td class=bottom style='padding: 5px' width=50% align=center class=tablea> " );
print ( " <table class=main width=100% height=75px class=tablea> " );
print ( " <tr valign=top class=tableb><td width=75 align=center style='padding: 0px'> " .
( $avatar ? " <div style='width:75px;height:75px;overflow: hidden'><img width=75px src= \" $avatar\ " ></ div > " : " " ). " </ td >< td > \n " );
print ( " <table class=main> " );
print ( " <tr><td class=embedded style='padding: 5px' width=80%> $body1 </td> \n " );
print ( " <td class=embedded style='padding: 5px' width=20%> $body2 </td></tr> \n " );
print ( " </table> " );
print ( " </td></tr> " );
print ( " </td></tr></table> \n " );
if ( $i % 2 == 1 )
print ( " </td></tr></table> \n " );
else
print ( " </td> \n " );
$i ++ ;
}
if ( $i % 2 == 1 )
print ( " <td class=bottom width=50%> </td></tr></table> \n " );
print ( $friends );
print ( " </td></tr></table><br /> \n " );
//End: Friends
//Start: Neighbors
/*
print ( " <table class=main width=737 border=0 cellspacing=0 cellpadding=0><tr><td class=embedded> " );
print ( " <br /> " );
print ( " <h2 align=left><a name= \" friendsadded \" > " . $lang_friends [ 'text_neighbors' ] . " </a></h2> \n " );
print ( " <table width=737 border=1 cellspacing=0 cellpadding=5><tr class=tablea><td> " );
$i = 0 ;
$cachefile = " cache/ " . get_langfolder_cookie () . " /neighbors/ " . $CURUSER [ 'id' ] . " .html " ;
$cachetime = 24 * 60 * 60 ; // 1 day
if ( file_exists ( $cachefile ) && ( time () - $cachetime < filemtime ( $cachefile )))
{
include ( $cachefile );
}
else
{
ob_start (); // start the output buffer
$user_snatched = sql_query ( " SELECT * FROM snatched WHERE userid = $CURUSER[id] " ) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_num_rows ( $user_snatched ) == 0 )
$neighbors_info = $lang_friends [ 'text_neighbors_empty' ];
else
{
while ( $user_snatched_arr = mysql_fetch_array ( $user_snatched ))
{
$torrent_2_user_value = get_torrent_2_user_value ( $user_snatched_arr );
$user_snatched_res_target = sql_query ( " SELECT * FROM snatched WHERE torrentid = " . $user_snatched_arr [ 'torrentid' ] . " AND userid != " . $user_snatched_arr [ 'userid' ]) or sqlerr ( __FILE__ , __LINE__ ); //
if ( mysql_num_rows ( $user_snatched_res_target ) > 0 ) // have other peole snatched this torrent
{
while ( $user_snatched_arr_target = mysql_fetch_array ( $user_snatched_res_target )) // find target user's current analyzing torrent's snatch info
{
$torrent_2_user_value_target = get_torrent_2_user_value ( $user_snatched_arr_target ); //get this torrent to target user's value
if ( ! isset ( $other_user_2_curuser_value [ $user_snatched_arr_target [ 'userid' ]])) // first, set to 0
$other_user_2_curuser_value [ $user_snatched_arr_target [ 'userid' ]] = 0.0 ;
$other_user_2_curuser_value [ $user_snatched_arr_target [ 'userid' ]] += $torrent_2_user_value_target * $torrent_2_user_value ;
}
}
}
arsort ( $other_user_2_curuser_value , SORT_NUMERIC );
$counter = 0 ;
$total_user = count ( $other_user_2_curuser_value );
while ( 1 )
{
list ( $other_user_2_curuser_value_key , $other_user_2_curuser_value_val ) = each ( $other_user_2_curuser_value );
//print(" userid: " . $other_user_2_curuser_value_key . " value: " . $other_user_2_curuser_value_val . "<br />");
$neighbors_res = sql_query ( " SELECT * FROM users WHERE id = " . intval ( $other_user_2_curuser_value_key )) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_num_rows ( $neighbors_res ) == 1 )
{
$neighbors_arr = mysql_fetch_array ( $neighbors_res ) or sqlerr ( __FILE__ , __LINE__ );
if ( $neighbors_arr [ 'enabled' ] == 'yes' )
{
$title = $neighbors_arr [ " title " ];
if ( ! $title )
$title = get_user_class_name ( $neighbors_arr [ " class " ], false , true , true );
$body1 = get_username ( $neighbors_arr [ " id " ]) .
" ( $title )<br /><br /> " . $lang_friends [ 'text_last_seen_on' ] . gettime ( $neighbors_arr [ 'last_access' ], true , false );
2022-08-20 19:11:28 +08:00
2020-12-26 01:42:23 +08:00
$body2 = (( empty ( $friend_id_arr ) || ( ! in_array ( $neighbors_arr [ " id " ], $friend_id_arr ))) ? " <a href=friends.php?id= $userid &action=add&type=friend&targetid= " . $neighbors_arr [ 'id' ] . " > " . $lang_friends [ 'text_add_to_friends' ] . " </a> " : " <a href=friends.php?id= $userid &action=delete&type=friend&targetid= " . $neighbors_arr [ 'id' ] . " > " . $lang_friends [ 'text_remove_from_friends' ] . " </a> " ) .
" <br /><br /><a href=sendmessage.php?receiver= " . $neighbors_arr [ 'id' ] . " > " . $lang_friends [ 'text_send_pm' ] . " </a> " ;
$avatar = ( $CURUSER [ " avatars " ] == " yes " ? htmlspecialchars ( $neighbors_arr [ " avatar " ]) : " " );
if ( ! $avatar )
$avatar = " pic/default_avatar.png " ;
if ( $i % 2 == 0 )
print ( " <table width=100% style='padding: 0px'><tr><td class=bottom style='padding: 5px' width=50% align=center> " );
else
print ( " <td class=bottom style='padding: 5px' width=50% align=center> " );
print ( " <table class=main width=100% height=75px> " );
print ( " <tr valign=top><td width=75 align=center style='padding: 0px'> " .
( $avatar ? " <div style='width:75px;height:75px;overflow: hidden'><img width=75px src= \" $avatar\ " ></ div > " : " " ). " </ td >< td > \n " );
print ( " <table class=main> " );
print ( " <tr><td class=embedded style='padding: 5px' width=80%> $body1 </td> \n " );
print ( " <td class=embedded style='padding: 5px' width=20%> $body2 </td></tr> \n " );
print ( " </table> " );
print ( " </td></tr> " );
print ( " </td></tr></table> \n " );
if ( $i % 2 == 1 )
print ( " </td></tr></table> \n " );
else
print ( " </td> \n " );
$i ++ ;
$counter ++ ;
}
}
$total_user -- ;
if ( $counter == 20 || $total_user <= 0 ) break ; //only the largest 20
}
}
if ( $i % 2 == 1 )
print ( " <td class=bottom width=50%> </td></tr></table> \n " );
print ( $neighbors_info );
print ( " </td></tr></table></table><br /> \n " );
// CACHE END //////////////////////////////////////////////////
// open the cache file for writing
$fp = fopen ( $cachefile , 'w' );
// save the contents of output buffer to the file
fwrite ( $fp , ob_get_contents ());
// close the file
fclose ( $fp );
// Send the output to the browser
ob_end_flush ();
/////////////////////////////////////////////////////////
}
if ( mysql_num_rows ( $friendadd ) == 0 )
$friendsno = $lang_friends [ 'text_friends_empty' ];
else
while ( $friend = mysql_fetch_array ( $friendadd ))
{
$title = $friend [ " title " ];
if ( ! $title )
$title = get_user_class_name ( $friend [ " class " ], false , true , true );
$body1 = get_username ( $friend [ " fuid " ]) .
" ( $title )<br /><br /> " . $lang_friends [ 'text_last_seen_on' ] . $friend [ 'last_access' ] .
" <br />( " . get_elapsed_time ( strtotime ( $friend [ last_access ])) . $lang_friends [ 'text_ago' ] . " ) " ;
$body2 = " <a href=friends.php?id= $userid &action=add&type=friend&targetid= " . $friend [ 'fuid' ] . " > " . $lang_friends [ 'text_add_to_friends' ] . " </a> " .
" <br /><br /><a href=sendmessage.php?receiver= " . $friend [ 'fuid' ] . " > " . $lang_friends [ 'text_send_pm' ] . " </a> " ;
$avatar = ( $CURUSER [ " avatars " ] == " yes " ? htmlspecialchars ( $friend [ " avatar " ]) : " " );
if ( ! $avatar )
$avatar = " pic/default_avatar.png " ;
if ( $i % 2 == 0 )
print ( " <table width=100% style='padding: 0px'><tr><td class=bottom style='padding: 5px' width=50% align=center> " );
else
print ( " <td class=bottom style='padding: 5px' width=50% align=center class=tablea> " );
print ( " <table class=main width=100% height=75px class=tablea> " );
print ( " <tr valign=top class=tableb><td width=75 align=center style='padding: 0px'> " .
( $avatar ? " <div style='width:75px;height:75px;overflow: hidden'><img width=75px src= \" $avatar\ " ></ div > " : " " ). " </ td >< td > \n " );
print ( " <table class=main> " );
print ( " <tr><td class=embedded style='padding: 5px' width=80%> $body1 </td> \n " );
print ( " <td class=embedded style='padding: 5px' width=20%> $body2 </td></tr> \n " );
print ( " </table> " );
print ( " </td></tr> " );
print ( " </td></tr></table> \n " );
if ( $i % 2 == 1 )
print ( " </td></tr></table> \n " );
else
print ( " </td> \n " );
$i ++ ;
}
if ( $i % 2 == 1 )
print ( " <td class=bottom width=50%> </td></tr></table> \n " );
print ( $neighbors_info );
print ( " </td></tr></table></table><br /> \n " );
*/
//End: Neighbors
$res = sql_query ( " SELECT blockid as id FROM blocks WHERE userid= $userid ORDER BY id " ) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_num_rows ( $res ) == 0 )
$blocks = $lang_friends [ 'text_blocklist_empty' ];
else
{
$i = 0 ;
$blocks = " <table width=100% cellspacing=0 cellpadding=0> " ;
while ( $block = mysql_fetch_array ( $res ))
{
if ( $i % 6 == 0 )
$blocks .= " <tr> " ;
$blocks .= " <td style='border: none; padding: 4px; spacing: 0px;'>[<font class=small><a href=friends.php?id= $userid &action=delete&type=block&targetid= " .
$block [ 'id' ] . " >D</a></font>] " . get_username ( $block [ " id " ]) . " </td> " ;
if ( $i % 6 == 5 )
$blocks .= " </tr> " ;
$i ++ ;
}
$blocks .= " </table> \n " ;
}
print ( " <br /><br /> " );
print ( " <table class=main width=737 border=0 cellspacing=0 cellpadding=5><tr><td class=embedded> " );
print ( " <h2 align=left><a name= \" blocks \" > " . $lang_friends [ 'text_blocked_users' ] . " </a></h2></td></tr> " );
print ( " <tr class=tableb><td style='padding: 10px;'> " );
print ( $blocks );
print ( " </td></tr></table> \n " );
print ( " </td></tr></table> \n " );
2022-08-20 19:11:28 +08:00
if ( user_can ( 'viewuserlist' ))
2020-12-26 01:42:23 +08:00
print ( " <p><a href=users.php><b> " . $lang_friends [ 'text_find_user' ] . " </b></a></p> " );
stdfoot ();
?>