mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2026-04-28 11:17:38 +02:00
Added images to forum, saving recieved data on isAdding
This commit is contained in:
@@ -42,6 +42,7 @@ interface ForumEntry {
|
||||
content: string
|
||||
admin: boolean
|
||||
comments: Comment[]
|
||||
imagePath?: string
|
||||
reacts: {
|
||||
[key: string]: number[]
|
||||
}
|
||||
@@ -188,6 +189,7 @@ function setup(data: SubmoduleData): void {
|
||||
const publicDir = publicdirs[0]
|
||||
|
||||
const forumDir = publicDir + 'forum'
|
||||
const forumFiles = publicDir + 'forumFiles'
|
||||
|
||||
if (!utils.FileExists(forumDir)) {
|
||||
utils.CreatePath(forumDir, true)
|
||||
@@ -245,6 +247,68 @@ function setup(data: SubmoduleData): void {
|
||||
})
|
||||
})
|
||||
|
||||
app.get('/forumRanklist', (req: Request, res) => {
|
||||
const forumName: string = req.query.forumName
|
||||
if (!forumName) {
|
||||
res.json({ success: false, msg: 'forumName required' })
|
||||
return
|
||||
}
|
||||
|
||||
const { forumPath, contents } = getForumData(forumName, forumDir)
|
||||
|
||||
const forumEntries = Object.keys(contents).map((key) => {
|
||||
const entry = utils.ReadJSON(forumPath + '/' + key)
|
||||
return entry
|
||||
})
|
||||
|
||||
const leaderBoard = forumEntries.reduce((acc, forumEntry) => {
|
||||
const { user, reacts } = forumEntry
|
||||
const ups = reacts?.['thumbs up']?.length || 0
|
||||
const downs = reacts?.['thumbs down']?.length || 0
|
||||
|
||||
if (!acc[user]) {
|
||||
acc[user] = {
|
||||
up: ups,
|
||||
down: downs,
|
||||
}
|
||||
} else {
|
||||
acc[user] = {
|
||||
up: acc[user].up + ups,
|
||||
down: acc[user].down + downs,
|
||||
}
|
||||
}
|
||||
return acc
|
||||
}, {})
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
leaderBoard: Object.keys(leaderBoard)
|
||||
.map((key) => {
|
||||
const val = leaderBoard[key]
|
||||
return {
|
||||
...val,
|
||||
user: key,
|
||||
sum: val.up - val.down,
|
||||
}
|
||||
})
|
||||
.sort((a, b) => {
|
||||
return b.sum - a.sum
|
||||
}),
|
||||
})
|
||||
})
|
||||
|
||||
app.post('/postMeme', (req: Request, res) => {
|
||||
utils
|
||||
.uploadFile(req, forumFiles)
|
||||
.then(() => {
|
||||
res.json({ success: true })
|
||||
})
|
||||
.catch(() => {
|
||||
res.json({ success: false, msg: 'error during uploading' })
|
||||
return
|
||||
})
|
||||
})
|
||||
|
||||
app.post(
|
||||
'/addPost',
|
||||
(
|
||||
@@ -252,13 +316,13 @@ function setup(data: SubmoduleData): void {
|
||||
forumName: string
|
||||
content: string
|
||||
title: string
|
||||
image?: string
|
||||
}>,
|
||||
res
|
||||
) => {
|
||||
logger.LogReq(req)
|
||||
|
||||
const { title, content } = req.body
|
||||
const forumName = req.body.forumName
|
||||
const { title, content, forumName, image } = req.body
|
||||
if (!forumName) {
|
||||
res.json({
|
||||
success: false,
|
||||
@@ -282,6 +346,7 @@ function setup(data: SubmoduleData): void {
|
||||
title: title,
|
||||
admin: admins.includes(user.id.toString()),
|
||||
commentCount: 0,
|
||||
imagePath: image,
|
||||
}
|
||||
|
||||
contents[newPostKey] = postData
|
||||
|
||||
Reference in New Issue
Block a user