Compare commits

..

No commits in common. "6d6174ab483e427267072353610ecf5f9c53aa3f" and "3a13d5c140c687a7ba89084822eb4c5c1fc30899" have entirely different histories.

3 changed files with 5 additions and 15 deletions

View File

@ -5,7 +5,6 @@ import { JsonSchema, jsonType } from "t_rest/server";
import { db } from "./db.ts"; import { db } from "./db.ts";
import { generationStore } from "./generationStore.ts"; import { generationStore } from "./generationStore.ts";
import { kvMemoize } from "./kvMemoize.ts"; import { kvMemoize } from "./kvMemoize.ts";
import { sortBy } from "std/collections/sort_by.ts";
export const userStatsSchema = { export const userStatsSchema = {
type: "object", type: "object",
@ -60,7 +59,7 @@ export const getUserStats = kvMemoize(
let stepCount = 0; let stepCount = 0;
let pixelCount = 0; let pixelCount = 0;
let pixelStepCount = 0; let pixelStepCount = 0;
const tagCountMap = new Map<string, number>(); const tagCountMap: Record<string, number> = {};
info(`Calculating user stats for ${userId}`); info(`Calculating user stats for ${userId}`);
@ -78,7 +77,7 @@ export const getUserStats = kvMemoize(
// split on punctuation and newlines // split on punctuation and newlines
.split(/[,;.]\s+|\n/) .split(/[,;.]\s+|\n/)
// remove `:weight` syntax // remove `:weight` syntax
.map((tag) => tag.replace(/:[\d\.]+/g, "")) .map((tag) => tag.replace(/:[\d\.]+/g, " "))
// remove `(tag)` and `[tag]` syntax // remove `(tag)` and `[tag]` syntax
.map((tag) => tag.replace(/[()[\]]/g, " ")) .map((tag) => tag.replace(/[()[\]]/g, " "))
// collapse multiple whitespace to one // collapse multiple whitespace to one
@ -93,25 +92,17 @@ export const getUserStats = kvMemoize(
[]; [];
for (const tag of tags) { for (const tag of tags) {
const count = tagCountMap.get(tag) ?? 0; tagCountMap[tag] = (tagCountMap[tag] ?? 0) + 1;
tagCountMap.set(tag, count + 1);
} }
} }
const tagCountObj = Object.fromEntries(
sortBy(
Array.from(tagCountMap.entries()),
([_tag, count]) => -count,
).filter(([_tag, count]) => count >= 3),
);
return { return {
userId, userId,
imageCount, imageCount,
stepCount, stepCount,
pixelCount, pixelCount,
pixelStepCount, pixelStepCount,
tagCountMap: tagCountObj, tagCountMap,
timestamp: Date.now(), timestamp: Date.now(),
}; };
}, },

View File

@ -174,6 +174,6 @@ bot.command("crash", () => {
}); });
export async function runBot() { export async function runBot() {
const runner = run(bot, { runner: { silent: true } }); const runner = run(bot);
await runner.task(); await runner.task();
} }

View File

@ -106,7 +106,6 @@
"https://deno.land/std@0.202.0/collections/deep_merge.ts": "9db788ba56cb05b65c77166b789e58e125dff159b7f41bf4d19dc1cba19ecb8b", "https://deno.land/std@0.202.0/collections/deep_merge.ts": "9db788ba56cb05b65c77166b789e58e125dff159b7f41bf4d19dc1cba19ecb8b",
"https://deno.land/std@0.202.0/collections/distinct_by.ts": "3afe11d81eafb30c7c9dbf568d94357f3d88153292c00671b72cd695deae6602", "https://deno.land/std@0.202.0/collections/distinct_by.ts": "3afe11d81eafb30c7c9dbf568d94357f3d88153292c00671b72cd695deae6602",
"https://deno.land/std@0.202.0/collections/max_by.ts": "9d5940986aac51b2e4feaebef9cd8bf6e1eceeee5edcf3303e334b737f99520d", "https://deno.land/std@0.202.0/collections/max_by.ts": "9d5940986aac51b2e4feaebef9cd8bf6e1eceeee5edcf3303e334b737f99520d",
"https://deno.land/std@0.202.0/collections/sort_by.ts": "1207755af756a5da04bebff39146c93cbe54f7870a5d67cf6922e871d96a01d5",
"https://deno.land/std@0.202.0/encoding/base64.ts": "144ae6234c1fbe5b68666c711dc15b1e9ee2aef6d42b3b4345bf9a6c91d70d0d", "https://deno.land/std@0.202.0/encoding/base64.ts": "144ae6234c1fbe5b68666c711dc15b1e9ee2aef6d42b3b4345bf9a6c91d70d0d",
"https://deno.land/std@0.202.0/flags/mod.ts": "0948466fc437f017f00c0b972a422b3dc3317a790bcf326429d23182977eaf9f", "https://deno.land/std@0.202.0/flags/mod.ts": "0948466fc437f017f00c0b972a422b3dc3317a790bcf326429d23182977eaf9f",
"https://deno.land/std@0.202.0/fmt/bytes.ts": "f29cf69e0791d375f9f5d94ae1f0641e5a03b975f32ddf86d70f70fdf37e7b6a", "https://deno.land/std@0.202.0/fmt/bytes.ts": "f29cf69e0791d375f9f5d94ae1f0641e5a03b975f32ddf86d70f70fdf37e7b6a",