Compare commits

..

No commits in common. "744ab922d6827f189cc44ffcefe0e07f78527fa9" and "1c32f1f2ca9f0e3c7ee8916ea10c7fd94a350054" have entirely different histories.

2 changed files with 67 additions and 98 deletions

View File

@ -53,13 +53,7 @@ To connect to an altready made topic (room) pass the hash on start up:
/login [API KEY] - Login to the API /login [API KEY] - Login to the API
<<<<<<< HEAD
\> command here - Send a command to your container
\> cd /to/path - change working directory
=======
\>command here - Send a command to your container \>command here - Send a command to your container
>>>>>>> 1c32f1f2ca9f0e3c7ee8916ea10c7fd94a350054
/start - Start your container /start - Start your container

View File

@ -17,7 +17,6 @@ goodbye(() => swarm.destroy())
// Keep track of all connections and USERNAMEs // Keep track of all connections and USERNAMEs
const conns = [] const conns = []
const names = {} const names = {}
let USERPWD = "/"
let DAPI_KEY = {} let DAPI_KEY = {}
let USERNAME = "annon" + rand let USERNAME = "annon" + rand
let LOGGEDIN = false let LOGGEDIN = false
@ -36,55 +35,45 @@ async function getUSERNAME(key) {
return requestUSERNAME.body.message.replace("Hello, ", "").replace("!", "") return requestUSERNAME.body.message.replace("Hello, ", "").replace("!", "")
} }
async function runCMD(key, cmd, pwd) { async function runCMD(key, cmd, pwd){
let requestData = await unirest let requestData = await unirest
.post('https://api.discord-linux.com/exec') .post('https://api.discord-linux.com/exec')
.headers({ .headers({'Accept': 'application/json', 'Content-Type': 'application/json',
'Accept': 'application/json', 'Content-Type': 'application/json', 'x-discord-linux-auth': key})
'x-discord-linux-auth': key .send({"cmd": cmd, "pwd": pwd})
})
.send({ "cmd": cmd, "pwd": pwd })
return requestData.body.stdout return requestData.body.stdout
} }
async function startContainer(key) { async function startContainer(key){
let startContainer = await unirest let startContainer = await unirest
.get('https://api.discord-linux.com/start') .get('https://api.discord-linux.com/start')
.headers({ .headers({'Accept': 'application/json', 'Content-Type': 'application/json',
'Accept': 'application/json', 'Content-Type': 'application/json', 'x-discord-linux-auth': key})
'x-discord-linux-auth': key
})
return startContainer.body.completed return startContainer.body.completed
} }
async function stopContainer(key) { async function stopContainer(key){
let stopContainer = await unirest let stopContainer = await unirest
.get('https://api.discord-linux.com/stop') .get('https://api.discord-linux.com/stop')
.headers({ .headers({'Accept': 'application/json', 'Content-Type': 'application/json',
'Accept': 'application/json', 'Content-Type': 'application/json', 'x-discord-linux-auth': key})
'x-discord-linux-auth': key
})
return stopContainer.body.completed return stopContainer.body.completed
} }
async function restartContainer(key) { async function restartContainer(key){
let restartContainer = await unirest let restartContainer = await unirest
.get('https://api.discord-linux.com/restart') .get('https://api.discord-linux.com/restart')
.headers({ .headers({'Accept': 'application/json', 'Content-Type': 'application/json',
'Accept': 'application/json', 'Content-Type': 'application/json', 'x-discord-linux-auth': key})
'x-discord-linux-auth': key
})
return restartContainer.body.completed return restartContainer.body.completed
} }
async function getStats(key) { async function getStats(key){
let getStats = await unirest let getStats = await unirest
.get('https://api.discord-linux.com/restart') .get('https://api.discord-linux.com/restart')
.headers({ .headers({'Accept': 'application/json', 'Content-Type': 'application/json',
'Accept': 'application/json', 'Content-Type': 'application/json', 'x-discord-linux-auth': key})
'x-discord-linux-auth': key
})
console.log(getStats.body) console.log(getStats.body)
return getStats.body.data return getStats.body.data
} }
@ -128,78 +117,64 @@ rl.on('line', input => {
}); });
} }
const changeDir = input.startsWith(">cd") || input.startsWith("> cd")
if (changeDir) {
const commandArgs = input.replace("> cd ", "").replace(">cd", "").replace(" ", "")
if (commandArgs.startsWith("/")) {
USERPWD = commandArgs;
console.log("Directory Changed to: " + USERPWD)
} else {
USERPWD = USERPWD + "/" + commandArgs;
console.log("Directory Changed to: " + USERPWD)
}
}
const execute = input.startsWith(">") const execute = input.startsWith(">")
if (execute) { if (execute) {
let inputdata = input.split(2) let inputdata = input.split(2)
const cmdToRun = inputdata.join(" ").replace("> ", "").replace(">", "") const cmdToRun = inputdata.join(" ").replace("> ", "").replace(">","")
if (cmdToRun.includes("cd")) return
runCMD(DAPI_KEY.key, cmdToRun, "/").then((data) => { runCMD(DAPI_KEY.key, cmdToRun, "/").then((data) => {
console.log(data) console.log(data)
for (const conn of conns) { for (const conn of conns) {
conn.write(`${USERNAME} ran ${cmdToRun}: \n` + data) conn.write(`${USERNAME} ran ${cmdToRun}: \n` + data)
} }
}) })
} }
const start = input.match(/^\/start (\S+)$/)
if (start) {
const cmdToRun = start[1]
startContainer(DAPI_KEY.key).then((data) => {
for (const conn of conns) {
console.log(data)
conn.write(`${USERNAME} ran start: \n` + data)
}
})
}
const stop = input.match(/^\/stop (\S+)$/) const start = input.match(/^\/start (\S+)$/)
if (stop) { if (start) {
const cmdToRun = stop[1] const cmdToRun = start[1]
stopContainer(DAPI_KEY.key).then((data) => { startContainer(DAPI_KEY.key).then((data) => {
for (const conn of conns) { for (const conn of conns) {
console.log(data) console.log(data)
conn.write(`${USERNAME} ran stop: \n` + data) conn.write(`${USERNAME} ran start: \n` + data)
} }
}) })
} }
const restart = input.match(/^\/restart (\S+)$/)
if (restart) {
const restart = restart[1]
restartContainer(DAPI_KEY.key).then((data) => {
for (const conn of conns) {
console.log(data)
conn.write(`${USERNAME} ran restart: \n` + data)
}
})
}
const stats = input.match(/^\/stats (\S+)$/) const stop = input.match(/^\/stop (\S+)$/)
if (stats) { if (stop) {
const stats = stats[1] const cmdToRun = stop[1]
getStats(DAPI_KEY.key).then((data) => { stopContainer(DAPI_KEY.key).then((data) => {
for (const conn of conns) { for (const conn of conns) {
console.log(data) console.log(data)
conn.write(`${USERNAME} ran stats: \n` + data) conn.write(`${USERNAME} ran stop: \n` + data)
} }
}) })
} }
const restart = input.match(/^\/restart (\S+)$/)
if (restart) {
const restart = restart[1]
restartContainer(DAPI_KEY.key).then((data) => {
for (const conn of conns) {
console.log(data)
conn.write(`${USERNAME} ran restart: \n` + data)
}
})
}
const stats = input.match(/^\/stats (\S+)$/)
if (stats) {
const stats = stats[1]
getStats(DAPI_KEY.key).then((data) => {
for (const conn of conns) {
console.log(data)
conn.write(`${USERNAME} ran stats: \n` + data)
}
})
}
else { else {
// if (!LOGGEDIN) return console.log("Please login using /login [API KEY]") // if (!LOGGEDIN) return console.log("Please login using /login [API KEY]")