fixed crash with hover tooltips
This commit is contained in:
parent
846f8c6850
commit
a12e5e6675
2 changed files with 44 additions and 41 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
node_modules
|
node_modules
|
||||||
|
.vscode
|
||||||
null
|
null
|
||||||
temp.txt
|
temp.txt
|
|
@ -1,47 +1,53 @@
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const client = require('discord-rich-presence')('936296341250904065')
|
const client = require('discord-rich-presence')
|
||||||
const { spawnSync, spawn, execSync, exec } = require('child_process')
|
const { spawnSync, spawn, execSync, exec } = require('child_process')
|
||||||
var StringDecoder = require('string_decoder').StringDecoder
|
var StringDecoder = require('string_decoder').StringDecoder
|
||||||
const { stdout, mainModule } = require('process')
|
const { stdout, mainModule } = require('process')
|
||||||
|
|
||||||
let currentProject
|
let currentProject = "lorem Ipsum"
|
||||||
let pastProject = ""
|
let pastProject = "."
|
||||||
let cmd = 'tasklist /fi "imagename eq Cinema 4D.exe" /fo list /v'
|
let cmd = 'tasklist /fi "imagename eq Cinema 4D.exe" /fo list /v'
|
||||||
//Loads DRC settings
|
//Loads DRC settings
|
||||||
let DRCSettings = JSON.parse(fs.readFileSync("DRCSettings.json"))
|
let DRCSettings = JSON.parse(fs.readFileSync("DRCSettings.json"))
|
||||||
|
|
||||||
|
let currentClient
|
||||||
function sleep(ms) {
|
function sleep(ms) {
|
||||||
return new Promise(resolve => setTimeout(resolve, ms))
|
return new Promise(resolve => setTimeout(resolve, ms))
|
||||||
}
|
}
|
||||||
|
|
||||||
function isCinemaOpen() {
|
function getCinemaProcessInfo() {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
exec(cmd, (err, stdout, stderr) => {
|
exec(cmd, (err, stdout, stderr) => {
|
||||||
if (err || stderr) {
|
resolve(stdout)
|
||||||
resolve("true")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (stdout.includes("No tasks")) {
|
|
||||||
resolve("false")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (stdout.includes("Cinema 4D")) {
|
|
||||||
//if window title is the actual project title(hover tooltips change window title to tooltip),
|
|
||||||
//resolves to Project file name from Process dump from.bat file
|
|
||||||
resolve(stdout)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
resolve("true")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateOpenProjectName(str) {
|
||||||
|
if (str.includes("No tasks")) {
|
||||||
|
currentProject = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
str = str.split("Window Title:")
|
||||||
|
if (str[1].includes("Cinema 4D")) {
|
||||||
|
str = str[1].split("[")
|
||||||
|
str = str[1].split("]")
|
||||||
|
if (str[0].includes("*")) {
|
||||||
|
str = str[0].substring(0, str[0].length - 2)
|
||||||
|
console.log(str)
|
||||||
|
currentProject = str.toString()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log(str[0])
|
||||||
|
currentProject = str[0].toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function setDRCProject() {
|
function setDRCProject() {
|
||||||
//update current presence settings
|
//update current presence settings
|
||||||
if (currentProject !== pastProject) {
|
if (currentProject != pastProject) {
|
||||||
client.updatePresence({
|
currentClient.updatePresence({
|
||||||
state: `Porfolio: ${DRCSettings.portfolio_website}`,
|
state: `Porfolio: ${DRCSettings.portfolio_website}`,
|
||||||
details: `Working on ${currentProject}`,
|
details: `Working on ${currentProject}`,
|
||||||
startTimestamp: Date.now(),
|
startTimestamp: Date.now(),
|
||||||
|
@ -54,26 +60,22 @@ function setDRCProject() {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
let str
|
|
||||||
while (true) {
|
while (true) {
|
||||||
str = await isCinemaOpen()
|
updateOpenProjectName(await getCinemaProcessInfo())
|
||||||
console.log(str)
|
//stops DRC when broken
|
||||||
if (str == "false") {
|
if (currentProject == false) {
|
||||||
break
|
if (currentClient) {
|
||||||
}
|
await currentClient.disconnect()
|
||||||
else if (str == "true") {
|
}
|
||||||
|
await sleep(20000)
|
||||||
|
continue
|
||||||
|
} else {
|
||||||
|
if (!currentClient) {
|
||||||
|
currentClient = client("936296341250904065")
|
||||||
|
}
|
||||||
setDRCProject()
|
setDRCProject()
|
||||||
await sleep(DRCSettings.scan_refresh_rate)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
//gets project file name
|
|
||||||
str = str.split("\n")
|
|
||||||
str = str[9].split("[")
|
|
||||||
str = str[1].split("]")
|
|
||||||
currentProject = str[0].toString()
|
|
||||||
setDRCProject()
|
|
||||||
await sleep(DRCSettings.scan_refresh_rate)
|
|
||||||
}
|
}
|
||||||
|
await sleep(DRCSettings.scan_refresh_rate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue