mirror of
https://github.com/roleypoly/roleypoly-v1.git
synced 2025-06-15 01:49:10 +00:00
sync
This commit is contained in:
parent
5510d5a1c4
commit
3d541ac480
11 changed files with 108 additions and 42 deletions
|
@ -40,6 +40,7 @@ class Roleypoly {
|
|||
// enableReadyCheck: true,
|
||||
// enableOfflineQueue: true
|
||||
// })
|
||||
this.ctx.server = new (require('./services/server'))(this.ctx)
|
||||
this.ctx.discord = new (require('./services/discord'))(this.ctx)
|
||||
this.ctx.sessions = new (require('./services/sessions'))(this.ctx)
|
||||
this.ctx.P = new (require('./services/presentation'))(this.ctx)
|
||||
|
|
|
@ -2,7 +2,7 @@ module.exports = (R, $) => {
|
|||
R.get('/api/servers', async (ctx) => {
|
||||
const { userId } = ctx.session
|
||||
const srv = $.discord.getRelevantServers(userId)
|
||||
const presentable = $.P.oldPresentableServers(srv, userId)
|
||||
const presentable = await $.P.oldPresentableServers(srv, userId)
|
||||
|
||||
ctx.body = presentable
|
||||
})
|
||||
|
|
|
@ -20,6 +20,10 @@ class DiscordService extends Service {
|
|||
|
||||
async startBot () {
|
||||
await this.client.login(this.botToken)
|
||||
|
||||
for (let server of this.client.guilds.array()) {
|
||||
await this.ctx.server.ensure(server)
|
||||
}
|
||||
}
|
||||
|
||||
getRelevantServers (userId) {
|
||||
|
|
|
@ -10,11 +10,15 @@ class PresentationService extends Service {
|
|||
this.cache = LRU({ max: 500, maxAge: 100 * 60 * 5 })
|
||||
}
|
||||
|
||||
oldPresentableServers (collection, userId) {
|
||||
return collection.map((server) => {
|
||||
async oldPresentableServers (collection, userId) {
|
||||
let servers = []
|
||||
|
||||
for (let server of collection.array()) {
|
||||
const sd = await this.ctx.server.get(server.id)
|
||||
console.log(sd.categories)
|
||||
const gm = server.members.get(userId)
|
||||
|
||||
return {
|
||||
servers.push({
|
||||
id: server.id,
|
||||
gm: {
|
||||
nickname: gm.nickname,
|
||||
|
@ -26,24 +30,26 @@ class PresentationService extends Service {
|
|||
ownerID: server.ownerID,
|
||||
icon: server.icon
|
||||
},
|
||||
roles: server.roles.filter(r => r.id !== server.id).map(r => ({
|
||||
id: r.id,
|
||||
color: r.color,
|
||||
name: r.name,
|
||||
selected: gm.roles.has(r.id),
|
||||
position: r.position
|
||||
})),
|
||||
message: 'moe moe kyuuuuuuuuun~',
|
||||
roles: (await this.rolesByServer(server, sd)).map(r => ({ ...r, selected: gm.roles.has(r.id) })),
|
||||
message: sd.message,
|
||||
categories: sd.categories,
|
||||
perms: this.discord.getPermissions(gm)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return servers
|
||||
}
|
||||
|
||||
rolesByServer (serverId, userId) {
|
||||
// get from discord, merge with server categories
|
||||
async rolesByServer (server) {
|
||||
return server.roles
|
||||
.filter(r => r.id !== server.id) // get rid of @everyone
|
||||
.map(r => ({
|
||||
id: r.id,
|
||||
color: r.color,
|
||||
name: r.name,
|
||||
position: r.position
|
||||
}))
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = PresentationService
|
||||
|
|
|
@ -30,12 +30,12 @@ class ServerService extends Service {
|
|||
return srv.update(newData)
|
||||
}
|
||||
|
||||
get (id) {
|
||||
return this.Server.findOne({
|
||||
async get (id) {
|
||||
return (await this.Server.findOne({
|
||||
where: {
|
||||
id
|
||||
}
|
||||
})
|
||||
})).get({ plain: true })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue