Version UUIDs

This commit is contained in:
ssyyhhrr
2022-12-30 15:14:37 +00:00
parent 514557e183
commit f592b1d129
4 changed files with 33 additions and 2 deletions

9
app.js
View File

@@ -6,6 +6,9 @@ const express = require("express")
const favicon = require("serve-favicon") const favicon = require("serve-favicon")
const morgan = require("morgan") const morgan = require("morgan")
const dayjs = require("dayjs") const dayjs = require("dayjs")
const {v4: uuidv4} = require("uuid")
const version = uuidv4()
const driversPath = "./assets/drivers.json" const driversPath = "./assets/drivers.json"
const statsPath = "./assets/stats.json" const statsPath = "./assets/stats.json"
@@ -99,17 +102,18 @@ async function main() {
axios.get("https://ergast.com/api/f1/1950/driverStandings.json?limit=1000").then(async () => { axios.get("https://ergast.com/api/f1/1950/driverStandings.json?limit=1000").then(async () => {
await updateDrivers() await updateDrivers()
dotd() dotd()
server()
}).catch(() => { }).catch(() => {
console.log("API is unreachable! Not updating drivers...") console.log("API is unreachable! Not updating drivers...")
if (fs.existsSync(driversPath)) { if (fs.existsSync(driversPath)) {
let data = fs.readFileSync(driversPath) let data = fs.readFileSync(driversPath)
drivers = JSON.parse(data) drivers = JSON.parse(data)
dotd() dotd()
server()
} else { } else {
throw "Ergast API is unreachable and the drivers.json cache has not been built. Please try again when the Ergast API is online." throw "Ergast API is unreachable and the drivers.json cache has not been built. Please try again when the Ergast API is online."
} }
}) })
server()
} }
async function updateDrivers() { async function updateDrivers() {
@@ -249,7 +253,8 @@ function server() {
"permanentNumber": response[2], "permanentNumber": response[2],
"age": response[3], "age": response[3],
"firstYear": response[4], "firstYear": response[4],
"wins": response[5] "wins": response[5],
"version": version
}) })
stats.guesses++ stats.guesses++
}) })

View File

@@ -197,6 +197,16 @@ async function submit(guess, real) {
} }
let answer = await fetch(`${window.location.href}driver?driver=${obj.firstName + " " + obj.lastName}`) let answer = await fetch(`${window.location.href}driver?driver=${obj.firstName + " " + obj.lastName}`)
let json = await answer.json() let json = await answer.json()
if (localStorage.version) {
if (localStorage.version !== json.version) {
localStorage.removeItem("guesses")
localStorage.removeItem("version")
location.reload()
}
}
else {
localStorage.version = json.version
}
let won = true let won = true
Object.values(json).forEach(async (answer, index) => { Object.values(json).forEach(async (answer, index) => {
if (answer !== 1) won = false if (answer !== 1) won = false
@@ -466,6 +476,7 @@ document.addEventListener('DOMContentLoaded', () => {
let expire = new Date(JSON.parse(localStorage.guesses)[0]) let expire = new Date(JSON.parse(localStorage.guesses)[0])
if (expire <= d) { if (expire <= d) {
localStorage.removeItem("guesses") localStorage.removeItem("guesses")
localStorage.removeItem("version")
} }
JSON.parse(localStorage.guesses).forEach(async (guess, index) => { JSON.parse(localStorage.guesses).forEach(async (guess, index) => {
if (index > 0) await submit(guess, false) if (index > 0) await submit(guess, false)

14
package-lock.json generated
View File

@@ -17,6 +17,7 @@
"morgan": "^1.10.0", "morgan": "^1.10.0",
"node-schedule": "^2.1.0", "node-schedule": "^2.1.0",
"serve-favicon": "^2.5.0", "serve-favicon": "^2.5.0",
"uuid": "^9.0.0",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
} }
}, },
@@ -992,6 +993,14 @@
"node": ">= 0.4.0" "node": ">= 0.4.0"
} }
}, },
"node_modules/uuid": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/vary": { "node_modules/vary": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -1740,6 +1749,11 @@
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
}, },
"uuid": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
},
"vary": { "vary": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",

View File

@@ -17,6 +17,7 @@
"morgan": "^1.10.0", "morgan": "^1.10.0",
"node-schedule": "^2.1.0", "node-schedule": "^2.1.0",
"serve-favicon": "^2.5.0", "serve-favicon": "^2.5.0",
"uuid": "^9.0.0",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
} }
} }