" . count($arr) . " $name\n"; if (!count($arr)) return $s; $s .= "\n"; $s .= "\n"; $s .= "" . ($enablelocation_tweak == 'yes' || get_user_class() >= $userprofile_class ? "" : ""). "". "". "" . "" . "" . "" . "" . "" . "" . "\n"; $now = time(); $num = 0; foreach ($arr as $e) { $privacy = get_single_value("users", "privacy","WHERE id=".sqlesc($e['userid'])); ++$num; $highlight = $CURUSER["id"] == $e['userid'] ? " bgcolor=#BBAF9B" : ""; $s .= "\n"; if($privacy == "strong" || ($torrent['anonymous'] == 'yes' && $e['userid'] == $torrent['owner'])) { if(get_user_class() >= $viewanonymous_class || $e['userid'] == $CURUSER['id']) $s .= "\n"; } else $s .= "\n"; } elseif (get_user_class() >= $userprofile_class){ $location = implode(', ', array_filter([$e['ipv4'], $e['ipv6']])); $s .= "\n"; } $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; if ($e["seeder"] == "no") $s .= "\n"; else $s .= "\n"; if ($e["downloaded"]) { $ratio = floor(($e["uploaded"] / $e["downloaded"]) * 1000) / 1000; $s .= "\n"; } elseif ($e["uploaded"]) $s .= "\n"; else $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; } $s .= "
".$lang_viewpeerlist['col_user_ip']."".$lang_viewpeerlist['col_location']."".$lang_viewpeerlist['col_connectable']."".$lang_viewpeerlist['col_uploaded']."".$lang_viewpeerlist['col_rate']."".$lang_viewpeerlist['col_downloaded']."".$lang_viewpeerlist['col_rate']."".$lang_viewpeerlist['col_ratio']."".$lang_viewpeerlist['col_complete']."".$lang_viewpeerlist['col_connected']."".$lang_viewpeerlist['col_idle']."".$lang_viewpeerlist['col_client']."
".$lang_viewpeerlist['text_anonymous']."
(" . get_username($e['userid']) . ")"; else $s .= "
".$lang_viewpeerlist['text_anonymous']."" . get_username($e['userid']); $secs = max(1, ($e["la"] - $e["st"])); if ($enablelocation_tweak == 'yes'){ list($loc_pub, $loc_mod) = get_ip_location(sprintf('%s,%s', $e['ipv4'], $e['ipv6'])); $location = get_user_class() >= $userprofile_class ? "
" . $loc_pub . "
" : $loc_pub; $s .= "
" . $location . "" . $location . "" . ($e['connectable'] == "yes" ? $lang_viewpeerlist['text_yes'] : "".$lang_viewpeerlist['text_no']."") . "" . mksize($e["uploaded"]) . "" . mksize(($e["uploaded"] - $e["uploadoffset"]) / $secs) . "/s" . mksize($e["downloaded"]) . "" . mksize(($e["downloaded"] - $e["downloadoffset"]) / $secs) . "/s" . mksize(($e["downloaded"] - $e["downloadoffset"]) / max(1, $e["finishedat"] - $e['st'])) . "/s" . number_format($ratio, 3) . "".$lang_viewpeerlist['text_inf']."---" . sprintf("%.2f%%", 100 * (1 - ($e["to_go"] / $torrent["size"]))) . "" . mkprettytime($now - $e["st"]) . "" . mkprettytime($now - $e["la"]) . "" . htmlspecialchars(get_agent($e["peer_id"],$e["agent"])) . "
\n"; return $s; } $downloaders = array(); $seeders = array(); $subres = sql_query("SELECT seeder, finishedat, downloadoffset, uploadoffset, ip, ipv4, ipv6, port, uploaded, downloaded, to_go, UNIX_TIMESTAMP(started) AS st, connectable, agent, peer_id, UNIX_TIMESTAMP(last_action) AS la, userid FROM peers WHERE torrent = $id") or sqlerr(); while ($subrow = mysql_fetch_array($subres)) { if ($subrow["seeder"] == "yes") $seeders[] = $subrow; else $downloaders[] = $subrow; } function leech_sort($a,$b) { $x = $a["to_go"]; $y = $b["to_go"]; if ($x == $y) return 0; if ($x < $y) return -1; return 1; } function seed_sort($a,$b) { $x = $a["uploaded"]; $y = $b["uploaded"]; if ($x == $y) return 0; if ($x < $y) return 1; return -1; } $res = sql_query("SELECT torrents.id, torrents.owner, torrents.size, torrents.anonymous FROM torrents WHERE torrents.id = $id LIMIT 1") or sqlerr(); $row = mysql_fetch_array($res); usort($seeders, "seed_sort"); usort($downloaders, "leech_sort"); print(dltable($lang_viewpeerlist['text_seeders'], $seeders, $row)); print(dltable($lang_viewpeerlist['text_leechers'], $downloaders, $row)); } ?>