123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- declare(strict_types=1);
-
- // Begin user stats
- if (($UserCount = $Cache->get_value('stats_user_count')) === false) {
- $DB->query("
- SELECT
- COUNT(`ID`)
- FROM
- `users_main`
- WHERE
- `Enabled` = '1'
- ");
- list($UserCount) = $DB->next_record();
- $Cache->cache_value('stats_user_count', $UserCount, 0); // inf cache
- }
-
- if (($UserStats = $Cache->get_value('stats_users')) === false) {
- $DB->query("
- SELECT
- COUNT(`ID`)
- FROM
- `users_main`
- WHERE
- `Enabled` = '1'
- AND `LastAccess` > '".time_minus(3600 * 24)."'
- ");
- list($UserStats['Day']) = $DB->next_record();
-
- $DB->query("
- SELECT
- COUNT(`ID`)
- FROM
- `users_main`
- WHERE
- `Enabled` = '1'
- AND `LastAccess` > '".time_minus(3600 * 24 * 7)."'
- ");
- list($UserStats['Week']) = $DB->next_record();
-
- $DB->query("
- SELECT
- COUNT(`ID`)
- FROM
- `users_main`
- WHERE
- `Enabled` = '1'
- AND LastAccess > '".time_minus(3600 * 24 * 30)."'
- ");
- list($UserStats['Month']) = $DB->next_record();
-
- $Cache->cache_value('stats_users', $UserStats, 0);
- }
-
- // Begin torrent stats
- if (($TorrentCount = $Cache->get_value('stats_torrent_count')) === false) {
- $DB->query("
- SELECT
- COUNT(`ID`)
- FROM
- `torrents`
- ");
- list($TorrentCount) = $DB->next_record();
- $Cache->cache_value('stats_torrent_count', $TorrentCount, 604800); // staggered 1 week cache
- }
-
- if (($AlbumCount = $Cache->get_value('stats_album_count')) === false) {
- $DB->query("
- SELECT
- COUNT(`id`)
- FROM
- `torrents_group`
- WHERE
- `category_id` = '1'
- ");
-
- list($AlbumCount) = $DB->next_record();
- $Cache->cache_value('stats_album_count', $AlbumCount, 604830); // staggered 1 week cache
- }
-
- if (($ArtistCount = $Cache->get_value('stats_artist_count')) === false) {
- $DB->query("
- SELECT
- COUNT(`ArtistID`)
- FROM
- `artists_group`
- ");
-
- list($ArtistCount) = $DB->next_record();
- $Cache->cache_value('stats_artist_count', $ArtistCount, 604860); // staggered 1 week cache
- }
-
- // Begin request stats
- if (($RequestStats = $Cache->get_value('stats_requests')) === false) {
- $DB->query("
- SELECT
- COUNT(`ID`)
- FROM
- `requests`
- ");
- list($RequestCount) = $DB->next_record();
-
- $DB->query("
- SELECT
- COUNT(`ID`)
- FROM
- `requests`
- WHERE
- `FillerID` > 0
- ");
- list($FilledCount) = $DB->next_record();
- $Cache->cache_value('stats_requests', array($RequestCount, $FilledCount), 11280);
- } else {
- list($RequestCount, $FilledCount) = $RequestStats;
- }
-
- // Begin swarm stats
- if (($PeerStats = $Cache->get_value('stats_peers')) === false) {
- // Cache lock!
- if ($Cache->get_query_lock('peer_stats')) {
- $DB->query("
- SELECT
- IF(
- `remaining` = 0,
- 'Seeding',
- 'Leeching'
- ) AS `Type`,
- COUNT(`uid`)
- FROM
- `xbt_files_users`
- WHERE
- `active` = 1
- GROUP BY
- `Type`
- ");
-
- $PeerCount = $DB->to_array(0, MYSQLI_NUM, false);
- $LeecherCount = isset($PeerCount['Leeching']) ? $PeerCount['Leeching'][1] : 0;
- $SeederCount = isset($PeerCount['Seeding']) ? $PeerCount['Seeding'][1] : 0;
- $Cache->cache_value('stats_peers', array($LeecherCount, $SeederCount), 1209600); // 2 week cache
- $Cache->clear_query_lock('peer_stats');
- } else {
- $LeecherCount = $SeederCount = 0;
- }
- } else {
- list($LeecherCount, $SeederCount) = $PeerStats;
- }
-
- json_print('success', array(
- 'maxUsers' => USER_LIMIT,
- 'enabledUsers' => (int) $UserCount,
- 'usersActiveThisDay' => (int) $UserStats['Day'],
- 'usersActiveThisWeek' => (int) $UserStats['Week'],
- 'usersActiveThisMonth' => (int) $UserStats['Month'],
-
- 'torrentCount' => (int) $TorrentCount,
- 'groupCount' => (int) $AlbumCount,
- 'artistCount' => (int) $ArtistCount,
-
- 'requestCount' => (int) $RequestCount,
- 'filledRequestCount' => (int) $FilledCount,
-
- 'seederCount' => (int) $SeederCount,
- 'leecherCount' => (int) $LeecherCount
- ));
|