This repository was archived by the owner on Apr 14, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathstats.php
149 lines (125 loc) · 6.1 KB
/
stats.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
/*
+------------------------------------------------
| TBDev.net BitTorrent Tracker PHP
| =============================================
| by CoLdFuSiOn
| (c) 2003 - 2011 TBDev.Net
| http://www.tbdev.net
| =============================================
| svn: http://sourceforge.net/projects/tbdevnet/
| Licence Info: GPL
+------------------------------------------------
| $Date$
| $Revision$
| $Author$
| $URL$
+------------------------------------------------
*/
if ( ! defined( 'IN_TBDEV_ADMIN' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly.";
exit();
}
require "include/html_functions.php";
$lang = array_merge( $lang, load_language('ad_stats') );
$HTMLOUT = '';
$res = mysql_query("SELECT COUNT(*) FROM torrents") or sqlerr(__FILE__, __LINE__);
$n = mysql_fetch_row($res);
$n_tor = $n[0];
$res = mysql_query("SELECT COUNT(*) FROM peers") or sqlerr(__FILE__, __LINE__);
$n = mysql_fetch_row($res);
$n_peers = $n[0];
$uporder = isset($_GET['uporder']) ? $_GET['uporder'] : '';
$catorder = isset($_GET["catorder"]) ? $_GET["catorder"] : '';
if ($uporder == "lastul")
$orderby = "last DESC, name";
elseif ($uporder == "torrents")
$orderby = "n_t DESC, name";
elseif ($uporder == "peers")
$orderby = "n_p DESC, name";
else
$orderby = "name";
$query = "SELECT u.id, u.username AS name, MAX(t.added) AS last, COUNT(DISTINCT t.id) AS n_t, COUNT(p.id) as n_p
FROM users as u LEFT JOIN torrents as t ON u.id = t.owner LEFT JOIN peers as p ON t.id = p.torrent WHERE u.class = ". UC_UPLOADER ."
GROUP BY u.id UNION SELECT u.id, u.username AS name, MAX(t.added) AS last, COUNT(DISTINCT t.id) AS n_t, COUNT(p.id) as n_p
FROM users as u LEFT JOIN torrents as t ON u.id = t.owner LEFT JOIN peers as p ON t.id = p.torrent WHERE u.class > ". UC_UPLOADER ."
GROUP BY u.id ORDER BY $orderby";
$res = mysql_query($query) or sqlerr(__FILE__, __LINE__);
$HTMLOUT .= "
<div class='cblock'>
<div class='cblock-header'>Stats</div>
<div class='cblock-content'>";
if (mysql_num_rows($res) == 0)
stdmsg($lang['stats_error'], $lang['stats_error1']);
else
{
$HTMLOUT .= "<div class='inner_header'><b>{$lang['stats_title1']}</b></div>";
$HTMLOUT .= begin_frame();
$HTMLOUT .= begin_table();
$HTMLOUT .= "<tr>
<td class='colhead'><a href='admin.php?action=stats&uporder=uploader&catorder=$catorder' class='colheadlink'>{$lang['stats_uploader']}</a></td>
<td class='colhead'><a href='admin.php?action=stats&uporder=lastul&catorder=$catorder' class='colheadlink'>{$lang['stats_last']}</a></td>
<td class='colhead'><a href='admin.php?action=stats&uporder=torrents&catorder=$catorder' class='colheadlink'>{$lang['stats_torrent']}</a></td>
<td class='colhead'>Perc.</td>
<td class='colhead'><a href='admin.php?action=stats&uporder=peers&catorder=$catorder' class='colheadlink'>{$lang['stats_peers']}</a></td>
<td class='colhead'>Perc.</td>
</tr>\n";
while ($uper = mysql_fetch_assoc($res))
{
$HTMLOUT .= "<tr>
<td><a href='userdetails.php?id=".$uper['id']."'><b>".$uper['name']."</b></a></td>
<td " . ($uper['last']?(">".get_date( $uper['last'],'')." (".get_date( $uper['last'],'',0,1).")"):"align='center'>---") . "</td>
<td align='right'>{$uper['n_t']}</td>
<td align='right'>" . ($n_tor > 0?number_format(100 * $uper['n_t']/$n_tor,1)."%":"---") . "</td>
<td align='right'>" . $uper['n_p']."</td>
<td align='right'>" . ($n_peers > 0?number_format(100 * $uper['n_p']/$n_peers,1)."%":"---") . "</td></tr>\n";
}
$HTMLOUT .= end_table();
$HTMLOUT .= end_frame();
}
if ($n_tor == 0)
stdmsg($lang['stats_error'], $lang['stats_error2']);
else
{
if ($catorder == "lastul")
$orderby = "last DESC, c.name";
elseif ($catorder == "torrents")
$orderby = "n_t DESC, c.name";
elseif ($catorder == "peers")
$orderby = "n_p DESC, name";
else
$orderby = "c.name";
$res = mysql_query("SELECT c.name, MAX(t.added) AS last, COUNT(DISTINCT t.id) AS n_t, COUNT(p.id) AS n_p
FROM categories as c LEFT JOIN torrents as t ON t.category = c.id LEFT JOIN peers as p
ON t.id = p.torrent GROUP BY c.id ORDER BY $orderby") or sqlerr(__FILE__, __LINE__);
$HTMLOUT .= "<br />";
$HTMLOUT .= "<div class='inner_header'><b>{$lang['stats_title2']}</b></div>";
$HTMLOUT .= begin_frame();
$HTMLOUT .= begin_table();
$HTMLOUT .= "<tr>
<td class='colhead'><a href='admin.php?action=stats&uporder=$uporder&catorder=category' class='colheadlink'>{$lang['stats_category']}</a></td>
<td class='colhead'><a href='admin.php?action=stats&uporder=$uporder&catorder=lastul' class='colheadlink'>{$lang['stats_last']}</a></td>
<td class='colhead'><a href='admin.php?action=stats&uporder=$uporder&catorder=torrents' class='colheadlink'>{$lang['stats_torrent']}</a></td>
<td class='colhead'>Perc.</td>
<td class='colhead'><a href='admin.php?action=stats&uporder=$uporder&catorder=peers' class='colheadlink'>{$lang['stats_peers']}</a></td>
<td class='colhead'>Perc.</td>
</tr>\n";
while ($cat = mysql_fetch_assoc($res))
{
$HTMLOUT .= "<tr>
<td class='rowhead'>{$cat['name']}</td>
<td " . ($cat['last']?(">".get_date( $cat['last'],'')." (".get_date( $cat['last'],'',0,1).")"):"align='center'>---") ."</td>
<td align='right'>{$cat['n_t']}</td>
<td align='right'>" . number_format(100 * $cat['n_t']/$n_tor,1) . "%</td>
<td align='right'>{$cat['n_p']}</td>
<td align='right'>" . ($n_peers > 0?number_format(100 * $cat['n_p']/$n_peers,1)."%":"---") . "</td></tr>\n";
}
$HTMLOUT .= end_table();
$HTMLOUT .= end_frame();
}
$HTMLOUT .= " </div>
</div>";
print stdhead($lang['stats_window_title']) . $HTMLOUT . stdfoot();
die;
?>