Add --last-days arg, and fix user agent windowing.
This commit is contained in:
parent
5e0b60e9fd
commit
d402511418
|
@ -6,6 +6,7 @@ import std.datetime;
|
||||||
import std.algorithm;
|
import std.algorithm;
|
||||||
import std.array;
|
import std.array;
|
||||||
import std.file;
|
import std.file;
|
||||||
|
import std.conv : to;
|
||||||
import d2sqlite3;
|
import d2sqlite3;
|
||||||
import data;
|
import data;
|
||||||
import std.json;
|
import std.json;
|
||||||
|
@ -54,6 +55,10 @@ are accepted:
|
||||||
date and time. Timestamps are always interpretted as UTC timezone. Defaults
|
date and time. Timestamps are always interpretted as UTC timezone. Defaults
|
||||||
to the current time.
|
to the current time.
|
||||||
|
|
||||||
|
--last-days <days>
|
||||||
|
A convenience to show stats from the last N days. If provided, overrides
|
||||||
|
any --start or --end timestamps given.
|
||||||
|
|
||||||
-f <format> | --format <format>
|
-f <format> | --format <format>
|
||||||
Specify the desired output format for the report(s) generated by this
|
Specify the desired output format for the report(s) generated by this
|
||||||
command. The following formats are available: text, json, csv.
|
command. The following formats are available: text, json, csv.
|
||||||
|
@ -104,6 +109,10 @@ ReportPeriod parseReportPeriod(string[] args) {
|
||||||
} else if (args[i] == "--end" && !endParsed) {
|
} else if (args[i] == "--end" && !endParsed) {
|
||||||
end = tryParseTime(args[i + 1]);
|
end = tryParseTime(args[i + 1]);
|
||||||
endParsed = true;
|
endParsed = true;
|
||||||
|
} else if (args[i] == "--last-days") {
|
||||||
|
end = Clock.currTime(UTC());
|
||||||
|
start = end - days(args[i + 1].to!uint);
|
||||||
|
return ReportPeriod(start, end);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -198,9 +207,12 @@ SQL",
|
||||||
ResultRange userAgentsResult = db.execute(q"SQL
|
ResultRange userAgentsResult = db.execute(q"SQL
|
||||||
SELECT user_agent, COUNT(user_agent) AS c
|
SELECT user_agent, COUNT(user_agent) AS c
|
||||||
FROM session
|
FROM session
|
||||||
|
WHERE start_timestamp >= ? AND end_timestamp <= ?
|
||||||
GROUP BY user_agent
|
GROUP BY user_agent
|
||||||
ORDER BY c DESC
|
ORDER BY c DESC
|
||||||
SQL");
|
SQL",
|
||||||
|
TS_START, TS_END
|
||||||
|
);
|
||||||
foreach (Row row; userAgentsResult) {
|
foreach (Row row; userAgentsResult) {
|
||||||
string userAgent = row["user_agent"].as!string;
|
string userAgent = row["user_agent"].as!string;
|
||||||
ulong count = row["c"].as!ulong;
|
ulong count = row["c"].as!ulong;
|
||||||
|
|
Loading…
Reference in New Issue