mirror of
https://github.com/smartfrigde/armcord.git
synced 2024-08-14 23:56:58 +00:00
update arRPC
This commit is contained in:
parent
a532cb9a72
commit
362a116e6a
5 changed files with 10621 additions and 82477 deletions
|
@ -1,7 +1,7 @@
|
|||
const rgb = (r, g, b, msg) => `\x1b[38;2;${r};${g};${b}m${msg}\x1b[0m`;
|
||||
const log = (...args) => console.log(`[${rgb(88, 101, 242, "arRPC")}]`, ...args);
|
||||
|
||||
log("arRPC v3.3.1 ArmCord");
|
||||
log("arRPC v3.4.0 ArmCord");
|
||||
const RPCServer = require("./server.js");
|
||||
const {mainWindow} = require("../../../ts-out/window.js");
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -24,15 +24,19 @@ class ProcessServer {
|
|||
}
|
||||
|
||||
async scan() {
|
||||
const startTime = performance.now();
|
||||
// const startTime = performance.now();
|
||||
const processes = await Native.getProcesses();
|
||||
const ids = [];
|
||||
|
||||
// log(`got processed in ${(performance.now() - startTime).toFixed(2)}ms`);
|
||||
|
||||
for (const [pid, _path] of processes) {
|
||||
for (const [pid, _path, args] of processes) {
|
||||
const path = _path.toLowerCase().replaceAll("\\", "/");
|
||||
const toCompare = [path.split("/").pop(), path.split("/").slice(-2).join("/")];
|
||||
const toCompare = [];
|
||||
const splitPath = path.split("/");
|
||||
for (let i = 1; i < splitPath.length; i++) {
|
||||
toCompare.push(splitPath.slice(-i).join("/"));
|
||||
}
|
||||
|
||||
for (const p of toCompare.slice()) {
|
||||
// add more possible tweaked paths for less false negatives
|
||||
|
@ -42,7 +46,19 @@ class ProcessServer {
|
|||
}
|
||||
|
||||
for (const {executables, id, name} of DetectableDB) {
|
||||
if (executables?.some((x) => !x.isLauncher && toCompare.some((y) => x.name === y))) {
|
||||
if (
|
||||
executables?.some((x) => {
|
||||
if (x.is_launcher) return false;
|
||||
if (
|
||||
x.name[0] === ">"
|
||||
? x.name.substring(1) !== toCompare[0]
|
||||
: !toCompare.some((y) => x.name === y)
|
||||
)
|
||||
return false;
|
||||
if (args && x.arguments) return args.join(" ").indexOf(x.arguments) > -1;
|
||||
return true;
|
||||
})
|
||||
) {
|
||||
names[id] = name;
|
||||
pids[id] = pid;
|
||||
|
||||
|
@ -50,7 +66,9 @@ class ProcessServer {
|
|||
if (!timestamps[id]) {
|
||||
log("detected game!", name);
|
||||
timestamps[id] = Date.now();
|
||||
}
|
||||
|
||||
// Resending this on evry scan is intentional, so that in the case that arRPC scans processes before Discord, existing activities will be sent
|
||||
this.handlers.message(
|
||||
{
|
||||
socketId: id
|
||||
|
@ -72,7 +90,6 @@ class ProcessServer {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const id in timestamps) {
|
||||
if (!ids.includes(id)) {
|
||||
|
|
|
@ -9,7 +9,7 @@ const getProcesses = async () =>
|
|||
(pid) =>
|
||||
+pid > 0 &&
|
||||
readFile(`/proc/${pid}/cmdline`, "utf8").then(
|
||||
(path) => [+pid, path.replaceAll("0", "")],
|
||||
(path) => [+pid, path.split("\0")[0], path.split("\0").slice(1)],
|
||||
() => 0
|
||||
)
|
||||
)
|
||||
|
|
|
@ -34,28 +34,28 @@ class RPCServer extends EventEmitter {
|
|||
onConnection(socket) {
|
||||
socket.send({
|
||||
cmd: "DISPATCH",
|
||||
evt: "READY",
|
||||
nonce: "initial-ready",
|
||||
|
||||
data: {
|
||||
v: 1,
|
||||
|
||||
// needed otherwise some stuff errors out parsing json strictly
|
||||
config: {
|
||||
cdn_host: "cdn.discordapp.com",
|
||||
api_endpoint: "//discord.com/api",
|
||||
environment: "production"
|
||||
},
|
||||
user: {
|
||||
// mock user data using arRPC app/bot
|
||||
id: "1045800378228281345",
|
||||
username: "arRPC",
|
||||
discriminator: "0000",
|
||||
username: "arrpc",
|
||||
discriminator: "0",
|
||||
global_name: "arRPC",
|
||||
avatar: "cfefa4d9839fb4bdf030f91c2a13e95c",
|
||||
avatar_decoration_data: null,
|
||||
bot: false,
|
||||
flags: 0,
|
||||
premium_type: 0
|
||||
}
|
||||
},
|
||||
config: {
|
||||
api_endpoint: "//discord.com/api",
|
||||
cdn_host: "cdn.discordapp.com",
|
||||
environment: "production"
|
||||
}
|
||||
}
|
||||
evt: "READY",
|
||||
nonce: null
|
||||
});
|
||||
|
||||
socket.socketId = socketId++;
|
||||
|
@ -130,7 +130,12 @@ class RPCServer extends EventEmitter {
|
|||
|
||||
socket.send?.({
|
||||
cmd,
|
||||
data: null,
|
||||
data: {
|
||||
...activity,
|
||||
name: "",
|
||||
application_id: socket.clientId,
|
||||
type: 0
|
||||
},
|
||||
evt: null,
|
||||
nonce
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue