import { Instances, NoteReactions } from "../../../models/index.js"; import define from "../define.js"; import { driveChart, notesChart, usersChart } from "../../../services/chart/index.js"; export const meta = { requireCredential: false, requireCredentialPrivateMode: true, tags: [ "meta" ], res: { type: "object", optional: false, nullable: false, properties: { notesCount: { type: "number", optional: false, nullable: false }, originalNotesCount: { type: "number", optional: false, nullable: false }, usersCount: { type: "number", optional: false, nullable: false }, originalUsersCount: { type: "number", optional: false, nullable: false }, instances: { type: "number", optional: false, nullable: false }, driveUsageLocal: { type: "number", optional: false, nullable: false }, driveUsageRemote: { type: "number", optional: false, nullable: false } } } }; export const paramDef = { type: "object", properties: {}, required: [] }; export default define(meta, paramDef, async ()=>{ const notesChartData = await notesChart.getChart("hour", 1, null); const notesCount = notesChartData.local.total[0] + notesChartData.remote.total[0]; const originalNotesCount = notesChartData.local.total[0]; const usersChartData = await usersChart.getChart("hour", 1, null); const usersCount = usersChartData.local.total[0] + usersChartData.remote.total[0]; const originalUsersCount = usersChartData.local.total[0]; const driveChartData = await driveChart.getChart("hour", 1, null); //TODO: fixme currently returns 0 const driveUsageLocal = driveChartData.local.incSize[0]; const driveUsageRemote = driveChartData.remote.incSize[0]; const [reactionsCount, //originalReactionsCount, instances] = await Promise.all([ NoteReactions.count({ cache: 3600000 }), //NoteReactions.count({ where: { userHost: IsNull() }, cache: 3600000 }), Instances.count({ cache: 3600000 }) ]); return { notesCount, originalNotesCount, usersCount, originalUsersCount, reactionsCount, //originalReactionsCount, instances, driveUsageLocal, driveUsageRemote }; });