SteamRPC/index.js
Bingus_Violet 1996dafb6a blah
2023-11-22 11:46:09 -06:00

73 lines
2.1 KiB
JavaScript

var updateTime = (process.env.UPDATE_TIME || 30)
const clientId = process.env.CLIENT_ID
const steamID = process.env.STEAM_ID
if (clientId == undefined) {
console.error("No client ID was defined! Please check the documentation for how to add one.")
return
}
if (steamID == undefined) {
console.error("No Steam ID was defined! Please check the documentation for how to add one.")
return
}
var RPC = require("discord-rpc")
const client = new RPC.Client({ transport: 'websocket' })
client.login({ clientId })
var startTime = Date.now()
var prevGame = ""
function update() {
fetch(`https://steamcommunity.com/miniprofile/${steamID}?origin=https%3A%2F%2Fsteamcommunity.com`)
.then((data) => {
return data.text()
})
.then((html) => {
var json = {
"name": "nothing",
"presence": ""
}
if (html.includes("game_name")) {
var blah = html.substring(html.indexOf('game_name">') + 11, html.length)
json["name"] = blah.substring(0, blah.indexOf("</span>"))
}
if (html.includes("presence")) {
var blah = html.substring(html.indexOf('presence">') + 10, html.length)
json["presence"] = blah.substring(0, blah.indexOf("</span>"))
}
if (prevGame != json.name) {
prevGame = json.name
startTime = Date.now()
}
client.setActivity({
details: `Playing ${json.name}`,
state: json.presence,
startTimestamp: startTime,
largeImageKey: json.name.split(" ").join("").toLowerCase(),
largeImageText: json.name
});
if (json.gameName == "nothing") {
updateTime = (process.env.UPDATE_TIME || 30) * 2.5
} else {
updateTime = (process.env.UPDATE_TIME || 30)
}
})
setTimeout(() => {
update()
}, updateTime * 1000);
}
client.on('ready', () => {
update()
});