diff --git a/.eslintrc.cjs b/.eslintrc.cjs index ea3556f..5cf0ff8 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -8,6 +8,7 @@ module.exports = { sourceType: "module", }, extends: [ + "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", ], @@ -16,5 +17,6 @@ module.exports = { "@typescript-eslint/prefer-nullish-coalescing": "error", "spaced-comment": ["warn", "always", { markers: ["/"] }], curly: ["warn", "multi-line", "consistent"], + "object-shorthand": ["error", "always"], }, }; diff --git a/lib/fast-tracker.ts b/lib/fast-tracker.ts index c905003..d213e8f 100644 --- a/lib/fast-tracker.ts +++ b/lib/fast-tracker.ts @@ -394,7 +394,7 @@ export class FastTracker implements Tracker { } } - peer.sendMessage({ action: "scrape", files: files }, peer); + peer.sendMessage({ action: "scrape", files }, peer); } } diff --git a/lib/run-uws-tracker.ts b/lib/run-uws-tracker.ts index 96ed44a..06666d7 100644 --- a/lib/run-uws-tracker.ts +++ b/lib/run-uws-tracker.ts @@ -167,7 +167,7 @@ function validateSettings(jsonSettings: UnknownObject): Settings | undefined { } return { - servers: servers, + servers, tracker: jsonSettings.tracker, websocketsAccess: jsonSettings.websocketsAccess, }; @@ -188,11 +188,11 @@ async function runServers(tracker: Tracker, settings: Settings): Promise { const serverPromises = settings.servers.map(async (serverSettings) => { const server = buildServer({ - tracker: tracker, - serverSettings: serverSettings, + tracker, + serverSettings, websocketsAccess: settings.websocketsAccess, - indexHtml: indexHtml, - servers: servers, + indexHtml, + servers, }); servers.push(server); await server.run(); @@ -236,10 +236,15 @@ function buildServer({ .get("/stats.json", (response: HttpResponse, request: HttpRequest) => { debugRequest(server, request); - const { swarms } = tracker; + const swarms = tracker.swarms; + const peersCountPerInfoHash: Record = {}; + let peersCount = 0; - for (const swarm of swarms.values()) { + for (const [infoHash, swarm] of swarms) { peersCount += swarm.peers.length; + + const infoHashHex = Buffer.from(infoHash, "binary").toString("hex"); + peersCountPerInfoHash[infoHashHex] = peersCount; } const serversStats = new Array<{ @@ -257,9 +262,10 @@ function buildServer({ response.writeHeader("Content-Type", "application/json").end( JSON.stringify({ torrentsCount: swarms.size, - peersCount: peersCount, + peersCount, servers: serversStats, memory: process.memoryUsage(), + peersCountPerInfoHash, }), ); })