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