diff --git a/pages/bots/[id]/index.tsx b/pages/bots/[id]/index.tsx
index 522cccf..46e111a 100644
--- a/pages/bots/[id]/index.tsx
+++ b/pages/bots/[id]/index.tsx
@@ -12,7 +12,7 @@ import { ParsedUrlQuery } from 'querystring'
import { Bot, ResponseProps, Theme, User } from '@types'
import { git, KoreanbotsEndPoints, reportCats, Status } from '@utils/Constants'
-import { get } from '@utils/Query'
+import {get, put} from '@utils/Query'
import Day from '@utils/Day'
import { ReportSchema } from '@utils/Yup'
import Fetch from '@utils/Fetch'
@@ -344,6 +344,9 @@ export const getServerSideProps = async (ctx: Context) => {
data
}
}
+
+ await put.viewBot(ctx.query.id)
+
const desc = await get.botDescSafe(data.id)
const user = await get.Authorization(parsed?.token)
if((checkBotFlag(data.flags, 'trusted') || checkBotFlag(data.flags, 'partnered')) && data.vanity && data.vanity !== ctx.query.id) {
diff --git a/pages/servers/[id]/index.tsx b/pages/servers/[id]/index.tsx
index a2f02a3..3ef8bd0 100644
--- a/pages/servers/[id]/index.tsx
+++ b/pages/servers/[id]/index.tsx
@@ -11,7 +11,7 @@ import { ParsedUrlQuery } from 'querystring'
import { Server, Theme, User } from '@types'
import { DiscordEnpoints, DSKR_BOT_ID, KoreanbotsEndPoints } from '@utils/Constants'
-import { get, safeImageHost } from '@utils/Query'
+import {get, put, safeImageHost} from '@utils/Query'
import Day from '@utils/Day'
import Fetch from '@utils/Fetch'
import { checkBotFlag, checkServerFlag, checkUserFlag, formatNumber, parseCookie } from '@utils/Tools'
@@ -280,6 +280,9 @@ export const getServerSideProps = async (ctx: Context) => {
data
}
}
+
+ await put.viewServer(ctx.query.id)
+
const desc = safeImageHost(data.desc)
const user = await get.Authorization(parsed?.token)
if((checkServerFlag(data.flags, 'trusted') || checkServerFlag(data.flags, 'partnered')) && data.vanity && data.vanity !== ctx.query.id) {
diff --git a/pages/servers/[id]/join.tsx b/pages/servers/[id]/join.tsx
index b2dd918..fd34bdc 100644
--- a/pages/servers/[id]/join.tsx
+++ b/pages/servers/[id]/join.tsx
@@ -1,14 +1,16 @@
import { NextPage, GetServerSideProps } from 'next'
import NotFound from 'pages/404'
import { get } from '@utils/Query'
+import { Servers } from '@utils/Mongo'
+import { getYYMMDD } from '@utils/Tools'
import { DiscordEnpoints } from '@utils/Constants'
const Join: NextPage = () =>
export const getServerSideProps: GetServerSideProps = async (ctx) => {
const data = await get.server.load(ctx.query.id as string)
if(!data) return { props: {} }
- // // const record = await Bots.updateOne({ _id: data.id, 'inviteMetrix.day': getYYMMDD() }, { $inc: { 'inviteMetrix.$.count': 1 } })
- // if(record.n === 0) await Bots.findByIdAndUpdate(data.id, { $push: { inviteMetrix: { count: 1 } } }, { upsert: true })
+ const record = await Servers.updateOne({ _id: data.id, 'joinMetrix.day': getYYMMDD() }, { $inc: { 'joinMetrix.$.count': 1 } })
+ if(record.matchedCount === 0) await Servers.findByIdAndUpdate(data.id, { $push: { joinMetrix: { count: 1 } } }, { upsert: true })
ctx.res.statusCode = 307
ctx.res.setHeader('Location', DiscordEnpoints.ServerInvite(data.invite))
return {
diff --git a/utils/Mongo.ts b/utils/Mongo.ts
index 3103f7c..2b55890 100644
--- a/utils/Mongo.ts
+++ b/utils/Mongo.ts
@@ -22,7 +22,10 @@ const botSchema = new mongoose.Schema({
const serverSchema = new mongoose.Schema({
_id: String,
- data: {}
+ data: {},
+ viewMetrix: [ metrix ],
+ voteMetrix: [ { ...metrix, increasement: { type: Number, default: 1 } } ],
+ joinMetrix: [ metrix ],
})
type ModelType = Model<
diff --git a/utils/Query.ts b/utils/Query.ts
index 95f9f2f..5a93313 100644
--- a/utils/Query.ts
+++ b/utils/Query.ts
@@ -411,8 +411,8 @@ async function voteServer(userID: string, serverID: string): Promise