53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
const timestampStartDefault = Date.now();
|
|
const { client } = require("../app")
|
|
const fs = require("node:fs")
|
|
let sixHoursAgo = Date.now() + (1 * 6 * 60 * 60 * 1000)
|
|
|
|
/**
|
|
* Get current RPC state fro rpcState.json file on the source code root.
|
|
* @returns {object} data - Parsed JSON object
|
|
*/
|
|
function getState () {
|
|
data = fs.readFileSync('rpcState.json', 'utf-8', (err, data) => {
|
|
if (err) {
|
|
return "{}";
|
|
}
|
|
|
|
return JSON.parse(data)
|
|
})
|
|
return JSON.parse(data)
|
|
}
|
|
|
|
function updateState (data) {
|
|
client.request('SET_ACTIVITY', { pid: process.pid, activity: data })
|
|
const stringifiedJson = Buffer.from(JSON.stringify(data))
|
|
fs.writeFile("rpcState.json", stringifiedJson, (err) => {
|
|
if (err) {
|
|
console.log("warn: State file doesn't exist yet.")
|
|
}
|
|
})
|
|
}
|
|
function timestampStart() {
|
|
try {
|
|
if (getState() == {} || getState().timestamps.start === undefined) {
|
|
return timestampStartDefault
|
|
} else if (getState().timestamps.start !== undefined ) {
|
|
if (sixHoursAgo > getState().timestamps.start) {
|
|
return getState().timestamps.start
|
|
} else if (sixHoursAgo < getState().timestamps.start) {
|
|
return timestampStartDefault
|
|
}
|
|
}
|
|
} catch {
|
|
return timestampStartDefault
|
|
}
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
timestampStart,
|
|
updateState,
|
|
getState,
|
|
sixHoursAgo
|
|
} |