diff --git a/package-lock.json b/package-lock.json index c991929..dfa8c7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "chalk": "^4.1.2", "debug": "^4.4.1", + "discord-rpc": "^4.0.1", "electron-squirrel-startup": "^1.0.1", "express": "^5.1.0", "winston": "^3.17.0", @@ -1739,6 +1740,16 @@ ], "license": "MIT" }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -2676,6 +2687,19 @@ "p-limit": "^3.1.0 " } }, + "node_modules/discord-rpc": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-4.0.1.tgz", + "integrity": "sha512-HOvHpbq5STRZJjQIBzwoKnQ0jHplbEWFWlPDwXXKm/bILh4nzjcg7mNqll0UY7RsjFoaXA7e/oYb/4lvpda2zA==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "ws": "^7.3.1" + }, + "optionalDependencies": { + "register-scheme": "github:devsnek/node-register-scheme" + } + }, "node_modules/dmg-builder": { "version": "26.0.12", "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-26.0.12.tgz", @@ -3423,7 +3447,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -3819,6 +3842,13 @@ "moment": "^2.29.1" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", + "optional": true + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -5616,7 +5646,6 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true, "license": "MIT", "optional": true }, @@ -5634,7 +5663,6 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" @@ -6507,6 +6535,17 @@ "node": ">= 10.13.0" } }, + "node_modules/register-scheme": { + "version": "0.0.2", + "resolved": "git+ssh://git@github.com/devsnek/node-register-scheme.git#e7cc9a63a1f512565da44cb57316d9fb10750e17", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bindings": "^1.3.0", + "node-addon-api": "^1.3.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7525,7 +7564,6 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true, "license": "MIT" }, "node_modules/trim-repeated": { @@ -7750,14 +7788,12 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, "license": "MIT", "dependencies": { "tr46": "~0.0.3", @@ -7961,6 +7997,27 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", diff --git a/package.json b/package.json index fbab7a4..a175804 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "dependencies": { "chalk": "^4.1.2", "debug": "^4.4.1", + "discord-rpc": "^4.0.1", "electron-squirrel-startup": "^1.0.1", "express": "^5.1.0", "winston": "^3.17.0", @@ -44,7 +45,7 @@ }, "asar": false, "extraResources": [ - { + { "from": "build/confirm-icon.png", "to": "confirm-icon.png" } diff --git a/server/discordRPC.js b/server/discordRPC.js new file mode 100644 index 0000000..c6e4724 --- /dev/null +++ b/server/discordRPC.js @@ -0,0 +1,32 @@ +// discordRPC.js +const RPC = require("discord-rpc"); + +const clientId = "1410934537051181146"; +const rpc = new RPC.Client({ transport: "ipc" }); + +function startRPC() { + rpc.on("ready", () => { + console.log("✅ Connecté à Discord !"); + + const presence = { + largeImageKey: "icon", + smallImageKey: "acnolo_pfp", + smallImageText: "By MasterAcnolo", + startTimestamp: new Date(), // compteur de temps + details: "github.com/MasterAcnolo/Freedom-Loader", + }; + + rpc.setActivity(presence); + + // Mise à jour toutes les 15 secondes si tu veux garder le compteur à jour + setInterval(() => { + rpc.setActivity(presence); + }, 15000); + }); + + rpc.login({ clientId }).catch(err => { + console.error("Erreur Discord RPC :", err); + }); +} + +module.exports = { startRPC }; diff --git a/server/server.js b/server/server.js index 54ba18f..5433dff 100644 --- a/server/server.js +++ b/server/server.js @@ -101,3 +101,6 @@ process.on("SIGTERM", () => { // Capture kill ou arrêt du process // Export de la fonction startServer pour permettre son appel depuis d’autres fichiers module.exports = { startServer }; + +const { startRPC } = require("./discordRPC"); +startRPC();