From 9c7b11d2930a2cb28613c4917904e7965d65a849 Mon Sep 17 00:00:00 2001
From: Tor Andersson <tor@ccxvii.net>
Date: Tue, 11 Apr 2023 11:58:41 +0200
Subject: Fix ESLint issues.

---
 server.js | 96 +++++++++++----------------------------------------------------
 1 file changed, 16 insertions(+), 80 deletions(-)

diff --git a/server.js b/server.js
index d26511a..bed3f64 100644
--- a/server.js
+++ b/server.js
@@ -1,5 +1,7 @@
 "use strict"
 
+/* global process, __dirname */
+
 const fs = require('fs')
 const crypto = require('crypto')
 const http = require('http')
@@ -194,12 +196,6 @@ function epoch_from_time(x) {
 	return epoch_from_julianday(x)
 }
 
-function julianday_from_time(x) {
-	if (typeof x === "string")
-		return julianday_from_epoch(Date.parse(x))
-	return x
-}
-
 function SLOG(socket, ...msg) {
 	let time = new Date().toISOString().substring(11,19)
 	let name = (socket.user ? socket.user.name : "guest").padEnd(20)
@@ -277,7 +273,6 @@ const SQL_SELECT_LOGIN_BY_MAIL = SQL("SELECT * FROM user_login_view WHERE mail=?
 const SQL_SELECT_LOGIN_BY_NAME = SQL("SELECT * FROM user_login_view WHERE name=?")
 const SQL_SELECT_USER_PROFILE = SQL("SELECT * FROM user_profile_view WHERE name=?")
 const SQL_SELECT_USER_DYNAMIC = SQL("select * from user_dynamic_view where user_id=?")
-const SQL_SELECT_USER_NAME = SQL("SELECT name FROM users WHERE user_id=?").pluck()
 const SQL_SELECT_USER_ID = SQL("SELECT user_id FROM users WHERE name=?").pluck()
 
 const SQL_OFFLINE_USER = SQL("SELECT * FROM user_view NATURAL JOIN user_last_seen WHERE user_id=? AND julianday() > julianday(atime, ?)")
@@ -501,7 +496,7 @@ app.post('/reset-password', function (req, res) {
 	let token = req.body.token
 	let password = req.body.password
 	function err(msg) {
-		res.render('reset_password.pug', { mail: mail, token: token })
+		res.render('reset_password.pug', { mail: mail, token: token, flash: msg })
 	}
 	let user = SQL_SELECT_LOGIN_BY_MAIL.get(mail)
 	if (!user)
@@ -625,7 +620,7 @@ app.get('/change-mail', must_be_logged_in, function (req, res) {
 
 app.post('/change-mail', must_be_logged_in, function (req, res) {
 	let newmail = req.body.newmail
-	if (!is_email(newmail))
+	if (!is_valid_email(newmail))
 		return res.render('change_mail.pug', { user: req.user, flash: "Invalid mail address!" })
 	if (SQL_EXISTS_USER_MAIL.get(newmail))
 		return res.render('change_mail.pug', { user: req.user, flash: "That mail address is already taken!" })
@@ -1139,9 +1134,6 @@ const SQL_SELECT_GAME = SQL("SELECT * FROM games WHERE game_id=?")
 const SQL_SELECT_GAME_VIEW = SQL("SELECT * FROM game_view WHERE game_id=?")
 const SQL_SELECT_GAME_FULL_VIEW = SQL("SELECT * FROM game_full_view WHERE game_id=?")
 const SQL_SELECT_GAME_TITLE = SQL("SELECT title_id FROM games WHERE game_id=?").pluck()
-const SQL_SELECT_GAME_RANDOM = SQL("SELECT is_random FROM games WHERE game_id=?").pluck()
-
-const SQL_SELECT_GAME_HAS_TITLE_AND_STATUS = SQL("SELECT 1 FROM games WHERE game_id=? AND title_id=? AND status=?")
 
 const SQL_SELECT_PLAYERS_ID = SQL("SELECT DISTINCT user_id FROM players WHERE game_id=?").pluck()
 const SQL_SELECT_PLAYERS = SQL("SELECT * FROM players NATURAL JOIN user_view WHERE game_id=?")
@@ -1152,8 +1144,6 @@ const SQL_SELECT_PLAYER_ROLE = SQL("SELECT role FROM players WHERE game_id=? AND
 const SQL_INSERT_PLAYER_ROLE = SQL("INSERT OR IGNORE INTO players (game_id,role,user_id,is_invite) VALUES (?,?,?,?)")
 const SQL_DELETE_PLAYER_ROLE = SQL("DELETE FROM players WHERE game_id=? AND role=?")
 
-const SQL_AUTHORIZE_GAME_ROLE = SQL("SELECT 1 FROM players NATURAL JOIN games WHERE title_id=? AND game_id=? AND role=? AND user_id=?").pluck()
-
 const SQL_SELECT_OPEN_GAMES = SQL("SELECT * FROM games WHERE status=0")
 const SQL_COUNT_OPEN_GAMES = SQL("SELECT COUNT(*) FROM games WHERE owner_id=? AND status=0").pluck()
 
@@ -1218,18 +1208,6 @@ const QUERY_LIST_FINISHED_GAMES_OF_USER = SQL(`
 	order by status asc, mtime desc
 	`)
 
-function is_active(game, players, user_id) {
-	if (game.status !== 1 || user_id === 0)
-		return false
-	let active = game.active
-	for (let i = 0; i < players.length; ++i) {
-		let p = players[i]
-		if ((p.user_id === user_id) && (active === 'All' || active === 'Both' || active === p.role))
-			return true
-	}
-	return false
-}
-
 function is_solo(players) {
 	return players.every(p => p.user_id === players[0].user_id)
 }
@@ -1652,7 +1630,13 @@ function assign_random_roles(game, players) {
 	}
 }
 
-function start_game(game_id, game) {
+app.post('/start/:game_id', must_be_logged_in, function (req, res) {
+	let game_id = req.params.game_id | 0
+	let game = SQL_SELECT_GAME.get(game_id)
+	if (game.owner_id !== req.user.user_id)
+		return res.send("Not authorized to start that game ID.")
+	if (game.status !== 0)
+		return res.send("The game is already started.")
 	let players = SQL_SELECT_PLAYERS.all(game_id)
 	if (!is_game_ready(game.title_id, game.scenario, game.options, players))
 		return res.send("Invalid scenario/options/player configuration!")
@@ -1670,18 +1654,8 @@ function start_game(game_id, game) {
 	if (is_solo(players))
 		SQL_UPDATE_GAME_PRIVATE.run(game_id)
 	update_join_clients_game(game_id)
-	mail_game_started_notification_to_offline_users(game_id, game.owner_id)
+	mail_game_started_notification_to_offline_users(game_id)
 	mail_your_turn_notification_to_offline_users(game_id, null, state.active)
-}
-
-app.post('/start/:game_id', must_be_logged_in, function (req, res) {
-	let game_id = req.params.game_id | 0
-	let game = SQL_SELECT_GAME.get(game_id)
-	if (game.owner_id !== req.user.user_id)
-		return res.send("Not authorized to start that game ID.")
-	if (game.status !== 0)
-		return res.send("The game is already started.")
-	start_game(game_id, game)
 	res.send("SUCCESS")
 })
 
@@ -1707,26 +1681,6 @@ app.get('/play/:game_id', function (req, res) {
 		res.redirect(play_url(title, game_id, "Observer"))
 })
 
-app.get('/:title_id/play\::game_id\::role', must_be_logged_in, function (req, res) {
-	let user_id = req.user ? req.user.user_id : 0
-	let title_id = req.params.title_id
-	let game_id = req.params.game_id
-	let role = req.params.role
-	return res.redirect(play_url(title_id, game_id, role))
-})
-
-app.get('/:title_id/play\::game_id', function (req, res) {
-	let title_id = req.params.title_id
-	let game_id = req.params.game_id
-	return res.redirect(play_url(title_id, game_id, "Observer"))
-})
-
-app.get('/:title_id/replay\::game_id', function (req, res) {
-	let title_id = req.params.title_id
-	let game_id = req.params.game_id
-	return res.redirect(play_url(title_id, game_id, "Observer", "replay"))
-})
-
 app.get('/api/replay/:game_id', function (req, res) {
 	let game_id = req.params.game_id | 0
 	let game = SQL_SELECT_GAME.get(game_id)
@@ -1838,7 +1792,7 @@ const SQL_DELETE_NOTIFIED_ALL = SQL("DELETE FROM last_notified WHERE game_id=?")
 
 const QUERY_LIST_YOUR_TURN = SQL("SELECT * FROM your_turn_reminder")
 
-function mail_callback(err, info) {
+function mail_callback(err) {
 	if (err)
 		console.log("MAIL ERROR", err)
 }
@@ -1973,7 +1927,7 @@ function mail_your_turn_notification_to_offline_users(game_id, old_active, activ
 	}
 }
 
-function mail_game_started_notification_to_offline_users(game_id, owner_id) {
+function mail_game_started_notification_to_offline_users(game_id) {
 	let players = SQL_SELECT_PLAYERS.all(game_id)
 	for (let p of players) {
 		if (!is_online(game_id, p.user_id)) {
@@ -2212,21 +2166,6 @@ function on_chat(socket, message) {
 	}
 }
 
-function on_debug(socket) {
-	if (!DEBUG)
-		send_message(socket, 'error', "Debugging is not enabled on this server.")
-	SLOG(socket, "DEBUG")
-	try {
-		let game_state = SQL_SELECT_GAME_STATE.get(socket.game_id)
-		if (!game_state)
-			return send_message(socket, 'error', "No game with that ID.")
-		send_message(socket, 'debug', game_state)
-	} catch (err) {
-		console.log(err)
-		return send_message(socket, 'error', err.toString())
-	}
-}
-
 function on_save(socket) {
 	if (!DEBUG)
 		send_message(socket, 'error', "Debugging is not enabled on this server.")
@@ -2314,9 +2253,6 @@ function handle_player_message(socket, cmd, arg) {
 	case "chat":
 		on_chat(socket, arg)
 		break
-	case "debug":
-		on_debug(socket)
-		break
 	case "save":
 		on_save(socket)
 		break
@@ -2337,7 +2273,7 @@ function handle_observer_message(socket, cmd, arg) {
 	}
 }
 
-wss.on('connection', (socket, req, client) => {
+wss.on('connection', (socket, req) => {
 	let u = url.parse(req.url, true)
 	if (u.pathname !== '/play-socket')
 		return setTimeout(() => socket.close(1000, "Invalid request."), 30000)
@@ -2387,7 +2323,7 @@ wss.on('connection', (socket, req, client) => {
 		else
 			game_clients[socket.game_id] = [ socket ]
 
-		socket.on('close', (code, reason) => {
+		socket.on('close', (code) => {
 			SLOG(socket, "CLOSE " + code)
 			game_clients[socket.game_id].splice(game_clients[socket.game_id].indexOf(socket), 1)
 			if (game_clients[socket.game_id].length > 0)
-- 
cgit v1.2.3