mirror of
https://github.com/ssyyhhrr/stewardle.git
synced 2025-11-08 02:23:46 -05:00
Random Driver Generation Fix
This commit is contained in:
57
app.js
57
app.js
@@ -149,46 +149,64 @@ async function updateDrivers() {
|
||||
|
||||
function processStats(dotd = false) {
|
||||
const date = dayjs().format("YYYY-MM-DD");
|
||||
console.log(`[DEBUG] processStats Date is ${date}`)
|
||||
|
||||
let statsFile = {};
|
||||
if (fs.existsSync(statsPath)) {
|
||||
statsFile = JSON.parse(fs.readFileSync(statsPath));
|
||||
}
|
||||
|
||||
if (dotd) {
|
||||
statsFile[date] = {
|
||||
visits: stats.visits,
|
||||
guesses: stats.guesses,
|
||||
driver: stats.driver,
|
||||
};
|
||||
} else if (statsFile[date]) {
|
||||
statsFile[date].visits = Math.max(statsFile[date].visits, stats.visits);
|
||||
statsFile[date].guesses = Math.max(statsFile[date].guesses, stats.guesses);
|
||||
statsFile[date].driver = stats.driver || statsFile[date].driver;
|
||||
} else {
|
||||
statsFile[date] = {
|
||||
visits: stats.visits,
|
||||
guesses: stats.guesses,
|
||||
driver: stats.driver,
|
||||
};
|
||||
}
|
||||
console.log(`[DEBUG] statsFile ${statsFile}`)
|
||||
|
||||
if (dotd) {
|
||||
console.log(`[DEBUG] dotd TRUE`)
|
||||
statsFile[date] = {
|
||||
visits: stats.visits,
|
||||
guesses: stats.guesses,
|
||||
driver: stats.driver,
|
||||
};
|
||||
console.log(`[DEBUG] statsFile[date] ${statsFile[date]}`)
|
||||
|
||||
} else if (statsFile.hasOwnProperty(date)) {
|
||||
console.log(`[DEBUG] statsFile.hasOwnProperty(date) TRUE`)
|
||||
if (statsFile[date].visits > stats.visits) {
|
||||
console.log(`[DEBUG] statsFile[date].visits > stats.visits`)
|
||||
statsFile[date].visits += stats.visits
|
||||
stats.visits = statsFile[date].visits
|
||||
}
|
||||
else statsFile[date].visits = stats.visits
|
||||
if (statsFile[date].guesses > stats.guesses) {
|
||||
console.log(`[DEBUG] statsFile[date].guesses > stats.guesses`)
|
||||
statsFile[date].guesses += stats.guesses
|
||||
stats.guesses = statsFile[date].guesses
|
||||
}
|
||||
else statsFile[date].guesses = stats.guesses
|
||||
} else return
|
||||
|
||||
console.log(`[DEBUG] Writing ${statsFile} to ${statsPath}`)
|
||||
fs.writeFileSync(statsPath, JSON.stringify(statsFile));
|
||||
}
|
||||
|
||||
function dotd() {
|
||||
console.log("Selecting Driver of the Day...")
|
||||
let date = dayjs().format("YYYY-MM-DD")
|
||||
console.log(`dotd Date is ${date}`)
|
||||
let pastDrivers = []
|
||||
let pastDates = []
|
||||
if (fs.existsSync(statsPath)) {
|
||||
pastDrivers = Object.values(JSON.parse(fs.readFileSync(statsPath))).map(x => x.driver).filter((x) => { return typeof x === "string"})
|
||||
pastDates = Object.keys(JSON.parse(fs.readFileSync(statsPath)))
|
||||
let statsFile = JSON.parse(fs.readFileSync(statsPath))
|
||||
pastDates = Object.keys(statsFile)
|
||||
pastDrivers = Object.values(statsFile).map(x => x.driver).filter((x) => { return typeof x === "string"})
|
||||
console.log(`[DEBUG] pastDates ${pastDates}`)
|
||||
console.log(`[DEBUG] pastDrivers ${pastDrivers}`)
|
||||
}
|
||||
if (pastDrivers.length > 0 && pastDates.length > 0 && pastDates[pastDates.length - 1] === date) {
|
||||
console.log(`[DEBUG] Date is TODAY`)
|
||||
driver = pastDrivers[pastDrivers.length - 1]
|
||||
console.log(`[DEBUG] driver ${driver}`)
|
||||
} else {
|
||||
let newDriver = getRandomProperty(drivers)
|
||||
console.log(`[DEBUG] newDriver ${newDriver}`)
|
||||
if (pastDrivers.slice(-7).includes(newDriver)) {
|
||||
console.log("Driver was picked recently, re-selecting...")
|
||||
return dotd()
|
||||
@@ -200,6 +218,7 @@ function dotd() {
|
||||
"guesses": 0,
|
||||
"driver": driver
|
||||
}
|
||||
console.log(`[DEBUG] stats ${stats}`)
|
||||
processStats(true)
|
||||
console.log(`Driver of the Day is ${driver}!`)
|
||||
console.log(drivers[driver])
|
||||
|
||||
@@ -96,7 +96,6 @@
|
||||
<div class="splitter"></div>
|
||||
<div class="content">
|
||||
<div class="vertical-ad">
|
||||
<script data-cfasync="false" type="text/javascript" src="//dexpredict.com/a/display.php?r=6829866"></script>
|
||||
</div>
|
||||
<div class="game">
|
||||
<div class="board">
|
||||
@@ -170,11 +169,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="banner-ad">
|
||||
<script data-cfasync="false" type="text/javascript" src="//dexpredict.com/a/display.php?r=6829898"></script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="vertical-ad">
|
||||
<script data-cfasync="false" type="text/javascript" src="//dexpredict.com/a/display.php?r=6829862"></script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="credits">
|
||||
|
||||
Reference in New Issue
Block a user