diff options
| -rw-r--r-- | service_grab.js | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/service_grab.js b/service_grab.js index ffa3042..0c91d98 100644 --- a/service_grab.js +++ b/service_grab.js @@ -124,8 +124,15 @@ module.exports = class Analyzer extends Service { }, // update a random user "/api/player": async (req, res) => { - // TODO this becomes slow - let player = await this.getDatabase("regular").Player.findOne({ order: [ Seq.fn("RAND") ] }); + const db = this.getDatabase("regular"); + const maxPlayerId = (await db.Player.findOne({ + order: [ ["id", "DESC"] ] + })).id; + let player; + do { + const id = Math.floor(Math.random() * maxPlayerId); + player = await db.Player.findOne({ where: { id } }); + } while (player == undefined); this.updatePlayer(player, "regular"); res.json(player); } |
