From a4d1e58ad70e58c53e15ad06331535cd12a67d83 Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 16:18:26 -0600 Subject: [PATCH 01/11] Adds more IP counters --- templates/themes/categories/news.html | 16 ++++++++++- templates/themes/categories/theme.php | 41 ++++++++++++++++++--------- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/templates/themes/categories/news.html b/templates/themes/categories/news.html index eea44a15..3492995e 100644 --- a/templates/themes/categories/news.html +++ b/templates/themes/categories/news.html @@ -36,7 +36,9 @@ {% trans "Board" %} {% trans "PPH" %} - {% trans "Recent IPs" %} + {% trans "IPs last hour" %} + {% trans "IPs last 24 hours (lynxchan-style)" %} + {% trans "IPs last 72 hours (8ch-style)" %} @@ -50,6 +52,12 @@ {{ stats.recent_ips }} + + {{ stats.daily_ips }} + + + {{ stats.tridaily_ips }} + {% for boardStat in stats.boards %} @@ -62,6 +70,12 @@ {{ boardStat.recent_ips }} + + {{ board.daily_ips }} + + + {{ board.tridaily_ips }} + {% endfor %} diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index e83359b3..c68e5601 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -100,8 +100,14 @@ return null; } + $HOUR = 3600; + $DAY = $HOUR * 24; + $TRIDAY = $DAY * 3; + $stats = []; $unique = []; + $daily = []; + $tridaily = []; foreach (array_merge(... $config['boards']) as $uri) { $_board = getBoardInfo($uri); @@ -112,6 +118,10 @@ $boardStat['title'] = $_board['title']; + $boardStat['hourly_ips'] = Categories::countUniqueIps($unique, $HOUR, $_board); + $boardStat['daily_ips'] = Categories::countUniqueIps($unique, $DAY, $_board); + $boardStat['tridaily_ips'] = Categories::countUniqueIps($unique, $TRIDAY, $_board); + $pph_query = query( sprintf("SELECT COUNT(*) AS count FROM ``posts_%s`` WHERE time > %d", $_board['uri'], @@ -120,28 +130,31 @@ $boardStat['pph'] = $pph_query->fetch()['count']; - $unique_query = query( - sprintf("SELECT DISTINCT ip FROM ``posts_%s`` WHERE time > %d", - $_board['uri'], - time()-3600) - ) or error(db_error()); - - $unique_ips = $unique_query->fetchAll(); - $boardStat['recent_ips'] = count($unique_ips); - - foreach ($unique_ips as $_k => $row) { - $unique[$row['ip']] = true; - } - $stats['boards'][] = $boardStat; } - $stats['recent_ips'] = count($unique); + $stats['hourly_ips'] = count($unique); + $stats['daily_ips'] = count($unique); + $stats['tridaily_ips'] = count($unique); $stats['pph'] = array_sum(array_column($stats['boards'], 'pph')); return $stats; } + private static function countUniqueIps($markAsCounted, $timespan, $_board) { + $unique_query = query( + sprintf("SELECT DISTINCT ip FROM ``posts_%s`` WHERE time > %d", + $_board['uri'], + time()-$timespan) + ) or error(db_error()); + $uniqueIps = $unique_query->fetchAll(); + foreach ($unique_ips as $_k => $row) { + $markAsCounted[$row['ip']] = true; + } + + return count($unique_ips); + } + }; From 607c4c60c0ce6847ea5a93e2323ba024bb642384 Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 16:23:32 -0600 Subject: [PATCH 02/11] Fix --- templates/themes/categories/theme.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index c68e5601..0dcd5f83 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -148,10 +148,10 @@ time()-$timespan) ) or error(db_error()); $uniqueIps = $unique_query->fetchAll(); - foreach ($unique_ips as $_k => $row) { + foreach ($uniqueIps as $_k => $row) { $markAsCounted[$row['ip']] = true; } - + return count($unique_ips); } From 2576fc4ff1a71e089cd8c293bc27b93d16e6991d Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 16:24:16 -0600 Subject: [PATCH 03/11] Fix --- templates/themes/categories/theme.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index 0dcd5f83..12d8360d 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -152,7 +152,7 @@ $markAsCounted[$row['ip']] = true; } - return count($unique_ips); + return count($uniqueIps); } From 7a99f5943e385ff156cb5747737707f68c65cf32 Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 16:36:09 -0600 Subject: [PATCH 04/11] more counters --- templates/themes/categories/news.html | 15 +++++++++++---- templates/themes/categories/theme.php | 17 ++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/templates/themes/categories/news.html b/templates/themes/categories/news.html index 3492995e..1b89f3f6 100644 --- a/templates/themes/categories/news.html +++ b/templates/themes/categories/news.html @@ -37,8 +37,9 @@ {% trans "Board" %} {% trans "PPH" %} {% trans "IPs last hour" %} - {% trans "IPs last 24 hours (lynxchan-style)" %} - {% trans "IPs last 72 hours (8ch-style)" %} + {% trans "IPs last 24 hours
(lynxchan-style)" %} + {% trans "IPs last 48 hours" %} + {% trans "IPs last 72 hours
(8ch-style)" %} @@ -50,11 +51,14 @@ {{ stats.pph }} - {{ stats.recent_ips }} + {{ stats.hourly_ips }} {{ stats.daily_ips }} + + {{ stats.bidaily_ips }} + {{ stats.tridaily_ips }} @@ -68,11 +72,14 @@ {{ boardStat.pph }} - {{ boardStat.recent_ips }} + {{ boardStat.hourly_ips }} {{ board.daily_ips }} + + {{ board.bidaily_ips }} + {{ board.tridaily_ips }} diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index 12d8360d..f7d59b91 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -102,10 +102,11 @@ $HOUR = 3600; $DAY = $HOUR * 24; + $BIDAY = $DAY * 2; $TRIDAY = $DAY * 3; $stats = []; - $unique = []; + $hourly = []; $daily = []; $tridaily = []; @@ -118,9 +119,10 @@ $boardStat['title'] = $_board['title']; - $boardStat['hourly_ips'] = Categories::countUniqueIps($unique, $HOUR, $_board); - $boardStat['daily_ips'] = Categories::countUniqueIps($unique, $DAY, $_board); - $boardStat['tridaily_ips'] = Categories::countUniqueIps($unique, $TRIDAY, $_board); + $boardStat['hourly_ips'] = Categories::countUniqueIps($hourly, $HOUR, $_board); + $boardStat['daily_ips'] = Categories::countUniqueIps($daily, $DAY, $_board); + $boardStat['bidaily_ips'] = Categories::countUniqueIps($bidaily, $BIDAY, $_board); + $boardStat['tridaily_ips'] = Categories::countUniqueIps($tridaily, $TRIDAY, $_board); $pph_query = query( sprintf("SELECT COUNT(*) AS count FROM ``posts_%s`` WHERE time > %d", @@ -133,9 +135,10 @@ $stats['boards'][] = $boardStat; } - $stats['hourly_ips'] = count($unique); - $stats['daily_ips'] = count($unique); - $stats['tridaily_ips'] = count($unique); + $stats['hourly_ips'] = count($hourly); + $stats['daily_ips'] = count($daily); + $stats['bidaily_ips'] = count($bidaily); + $stats['tridaily_ips'] = count($tridaily); $stats['pph'] = array_sum(array_column($stats['boards'], 'pph')); return $stats; From 8b57c70ea5ee65a12b02aef4f34706656ca49088 Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 16:38:00 -0600 Subject: [PATCH 05/11] fix --- templates/themes/categories/news.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/themes/categories/news.html b/templates/themes/categories/news.html index 1b89f3f6..27479a25 100644 --- a/templates/themes/categories/news.html +++ b/templates/themes/categories/news.html @@ -75,13 +75,13 @@ {{ boardStat.hourly_ips }} - {{ board.daily_ips }} + {{ boardStat.daily_ips }} - {{ board.bidaily_ips }} + {{ boardStat.bidaily_ips }} - {{ board.tridaily_ips }} + {{ boardStat.tridaily_ips }} {% endfor %} From 2103c21b53ff3fb5e3c20b0af6182264b7d4c4ab Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 16:39:01 -0600 Subject: [PATCH 06/11] fix --- templates/themes/categories/theme.php | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index f7d59b91..3081cf00 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -108,6 +108,7 @@ $stats = []; $hourly = []; $daily = []; + $bidaily = []; $tridaily = []; foreach (array_merge(... $config['boards']) as $uri) { From 97f00c22ddc73aecc4244337f892cbe241b805dd Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 19:03:13 -0600 Subject: [PATCH 07/11] change to week --- templates/themes/categories/theme.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index 3081cf00..65c1c721 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -102,14 +102,12 @@ $HOUR = 3600; $DAY = $HOUR * 24; - $BIDAY = $DAY * 2; - $TRIDAY = $DAY * 3; + $WEEK = $DAY * 7; $stats = []; $hourly = []; $daily = []; - $bidaily = []; - $tridaily = []; + $weekly = []; foreach (array_merge(... $config['boards']) as $uri) { $_board = getBoardInfo($uri); @@ -122,8 +120,7 @@ $boardStat['hourly_ips'] = Categories::countUniqueIps($hourly, $HOUR, $_board); $boardStat['daily_ips'] = Categories::countUniqueIps($daily, $DAY, $_board); - $boardStat['bidaily_ips'] = Categories::countUniqueIps($bidaily, $BIDAY, $_board); - $boardStat['tridaily_ips'] = Categories::countUniqueIps($tridaily, $TRIDAY, $_board); + $boardStat['weekly_ips'] = Categories::countUniqueIps($weekly, $WEEK, $_board); $pph_query = query( sprintf("SELECT COUNT(*) AS count FROM ``posts_%s`` WHERE time > %d", @@ -138,8 +135,7 @@ $stats['hourly_ips'] = count($hourly); $stats['daily_ips'] = count($daily); - $stats['bidaily_ips'] = count($bidaily); - $stats['tridaily_ips'] = count($tridaily); + $stats['weekly_ips'] = count($weekly); $stats['pph'] = array_sum(array_column($stats['boards'], 'pph')); return $stats; From 474e215151295088c91a5abc9e7f809f069a4fc5 Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 19:04:36 -0600 Subject: [PATCH 08/11] change to week --- templates/themes/categories/news.html | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/templates/themes/categories/news.html b/templates/themes/categories/news.html index 27479a25..4aadc633 100644 --- a/templates/themes/categories/news.html +++ b/templates/themes/categories/news.html @@ -37,9 +37,8 @@ {% trans "Board" %} {% trans "PPH" %} {% trans "IPs last hour" %} - {% trans "IPs last 24 hours
(lynxchan-style)" %} - {% trans "IPs last 48 hours" %} - {% trans "IPs last 72 hours
(8ch-style)" %} + {% trans "IPs last day" %} + {% trans "IPs last week" %} @@ -57,10 +56,7 @@ {{ stats.daily_ips }} - {{ stats.bidaily_ips }} - - - {{ stats.tridaily_ips }} + {{ stats.weekly_ips }} {% for boardStat in stats.boards %} @@ -78,10 +74,7 @@ {{ boardStat.daily_ips }} - {{ boardStat.bidaily_ips }} - - - {{ boardStat.tridaily_ips }} + {{ boardStat.weekly_ips }} {% endfor %} From 9137949dbfcc2859346b414b22cc77150c002045 Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 19:32:11 -0600 Subject: [PATCH 09/11] test rolling average' --- templates/themes/categories/news.html | 4 ++++ templates/themes/categories/theme.php | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/templates/themes/categories/news.html b/templates/themes/categories/news.html index 4aadc633..1f0fe933 100644 --- a/templates/themes/categories/news.html +++ b/templates/themes/categories/news.html @@ -39,6 +39,7 @@ {% trans "IPs last hour" %} {% trans "IPs last day" %} {% trans "IPs last week" %} + {% trans "7 day PPH moving average" %} @@ -76,6 +77,9 @@ {{ boardStat.weekly_ips }} + + {{ boardStat.rolling_average }} + {% endfor %} diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index 65c1c721..0b94840b 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -121,6 +121,7 @@ $boardStat['hourly_ips'] = Categories::countUniqueIps($hourly, $HOUR, $_board); $boardStat['daily_ips'] = Categories::countUniqueIps($daily, $DAY, $_board); $boardStat['weekly_ips'] = Categories::countUniqueIps($weekly, $WEEK, $_board); + $boardStat['rolling_average'] = Categories::rollingAveragePPH($WEEK, $_board); $pph_query = query( sprintf("SELECT COUNT(*) AS count FROM ``posts_%s`` WHERE time > %d", @@ -155,6 +156,19 @@ return count($uniqueIps); } + private static function rollingAveragePPH($timespan, $_board) { + $pph_query = query( + sprintf("SELECT AVG(count) as rolling FROM ( + SELECT HOUR(FROM_UNIXTIME(time)) AS hour, DAYOFYEAR(FROM_UNIXTIME(time)) AS day, COUNT(*) AS count + FROM ``posts_%s`` + WHERE time > %d + GROUP BY hour, day", + $_board['uri'], + time()-$timespan) + ) or error(db_error()); + + return $pph_query->fetch()['rolling']; + } }; From 9d9ae86c553dbb736fde4244f81cd4f99479767e Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 19:56:42 -0600 Subject: [PATCH 10/11] remove rolling average --- templates/themes/categories/news.html | 4 ---- templates/themes/categories/theme.php | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/templates/themes/categories/news.html b/templates/themes/categories/news.html index 1f0fe933..4aadc633 100644 --- a/templates/themes/categories/news.html +++ b/templates/themes/categories/news.html @@ -39,7 +39,6 @@ {% trans "IPs last hour" %} {% trans "IPs last day" %} {% trans "IPs last week" %} - {% trans "7 day PPH moving average" %} @@ -77,9 +76,6 @@ {{ boardStat.weekly_ips }} - - {{ boardStat.rolling_average }} - {% endfor %} diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index 0b94840b..af51a032 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -162,7 +162,7 @@ SELECT HOUR(FROM_UNIXTIME(time)) AS hour, DAYOFYEAR(FROM_UNIXTIME(time)) AS day, COUNT(*) AS count FROM ``posts_%s`` WHERE time > %d - GROUP BY hour, day", + GROUP BY hour, day)", $_board['uri'], time()-$timespan) ) or error(db_error()); From 3bf47e65fcd23b0d39b7c021ba2d0e80ef5a9093 Mon Sep 17 00:00:00 2001 From: nonmakina Date: Sun, 21 Feb 2021 19:57:37 -0600 Subject: [PATCH 11/11] remove rolling average --- templates/themes/categories/theme.php | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/templates/themes/categories/theme.php b/templates/themes/categories/theme.php index af51a032..a9b90e72 100644 --- a/templates/themes/categories/theme.php +++ b/templates/themes/categories/theme.php @@ -121,7 +121,6 @@ $boardStat['hourly_ips'] = Categories::countUniqueIps($hourly, $HOUR, $_board); $boardStat['daily_ips'] = Categories::countUniqueIps($daily, $DAY, $_board); $boardStat['weekly_ips'] = Categories::countUniqueIps($weekly, $WEEK, $_board); - $boardStat['rolling_average'] = Categories::rollingAveragePPH($WEEK, $_board); $pph_query = query( sprintf("SELECT COUNT(*) AS count FROM ``posts_%s`` WHERE time > %d", @@ -155,21 +154,6 @@ return count($uniqueIps); } - - private static function rollingAveragePPH($timespan, $_board) { - $pph_query = query( - sprintf("SELECT AVG(count) as rolling FROM ( - SELECT HOUR(FROM_UNIXTIME(time)) AS hour, DAYOFYEAR(FROM_UNIXTIME(time)) AS day, COUNT(*) AS count - FROM ``posts_%s`` - WHERE time > %d - GROUP BY hour, day)", - $_board['uri'], - time()-$timespan) - ) or error(db_error()); - - return $pph_query->fetch()['rolling']; - } - }; ?>