diff --git a/docker-compose.yml b/docker-compose.yml index 53f1a76..7a658f9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: - NODE_ENV=production volumes: - ./:/home/node/app - command: "npx nodemon --exec npm start" + command: "npx nodemon --exec npm run debug-cache" depends_on: - redis diff --git a/index.mjs b/index.mjs index 57e9405..43e2c82 100644 --- a/index.mjs +++ b/index.mjs @@ -16,9 +16,9 @@ const config = { client: "redis://redis:6379", // leave null if client is local ttls: { byMethod: { - [METHOD_KEY.SUMMONER.GET_BY_SUMMONER_NAME]: 24 * 60 * 60 * 100, // 1 day - [METHOD_KEY.MATCH_V5.GET_IDS_BY_PUUID]: 24 * 60 * 60 * 100, // 1 day - [METHOD_KEY.MATCH_V5.GET_MATCH_BY_ID]: 24 * 60 * 60 * 100, // 1 day + [METHOD_KEY.SUMMONER.GET_BY_SUMMONER_NAME]: 7 * 24 * 60 * 60 * 1000, // 7 day + [METHOD_KEY.MATCH_V5.GET_IDS_BY_PUUID]: 7 * 24 * 60 * 60 * 1000, // 7 day + [METHOD_KEY.MATCH_V5.GET_MATCH_BY_ID]: 7 * 24 * 60 * 60 * 1000, // 7 day // TODO: Figure out if I can get more games with old API? // [METHOD_KEY.MATCH.GET_MATCHLIST_BY_ACCOUNT]: 24 * 60 * 60 * 100, // ms }, @@ -61,11 +61,11 @@ for (const matchId of commonGameIds) { commonGames.push(game); } -console.log(`Common Game Data Found: ${commonGameIds.length}`); +console.log(`\nCommon Game Data Found: ${commonGameIds.length}`); commonGames.reverse(); -let gameData = commonGames +let gameData0 = commonGames .map(({ info, metadata }) => ({ id: metadata.matchId, data: info.participants @@ -116,20 +116,65 @@ let gameData = commonGames ...rest, win: data[0].win, data: data.reduce((acc, playerData) => { - acc[playerData.summonerName] = playerData.positionEstimate; + acc[playerData.summonerName] = { + position: playerData.positionEstimate, + champion: playerData.championName, + }; return acc; }, {}), }; }); -gameData.forEach((g) => console.log(JSON.stringify(g, null, " "))); +console.log(`\nBot Lane Duo Matches Found: ${gameData0.length}`); + +const wins0 = gameData0.filter(({ win }) => win).length; +const losses0 = gameData0.filter(({ win }) => !win).length; +console.log(`Wins: ${wins0}`); +console.log(`Losses: ${losses0}`); +console.log(`W/L: ${(wins0 / (wins0 + losses0)).toFixed(2)}`); + +let gameData = gameData0.filter( + ({ data }) => data["RavenShade"].champion !== "Smolder", +); + +console.log(`\nBot Lane Duo Matches Found (No Smolder): ${gameData.length}`); + +const rawWins = gameData.filter(({ win }) => win); +const rawLosses = gameData.filter(({ win }) => !win); +const winData = rawWins.map((win) => win.data); +const lossData = rawLosses.map((loss) => loss.data); +const wins = rawWins.length; +const losses = rawLosses.length; +console.log(`Wins: ${wins}`); +console.log(`Losses: ${losses}`); +console.log(`W/L: ${(wins / (wins + losses)).toFixed(2)}`); + +console.log("\nwins"); +winData + .map((d) => + Object.entries(d).map(([summoner, { champion }]) => ({ + summoner, + champion, + })), + ) + .forEach((g) => console.log(JSON.stringify(g, null, ""))); + +console.log("\nlosses"); +lossData + .map((d) => + Object.entries(d).map(([summoner, { champion }]) => ({ + summoner, + champion, + })), + ) + .forEach((g) => console.log(JSON.stringify(g, null, ""))); /** * @param {string} puuid * @returns {Promise} */ async function get_games_by_puuid(puuid) { - const COUNT = 100; + const COUNT = 20; let games = []; diff --git a/package.json b/package.json index a1c215f..388a099 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "main": "index.mjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "start": "DEBUG=riotapi* node --no-deprecation index.mjs" + "start": "node --no-deprecation index.mjs", + "debug-cache": "DEBUG=riotapi* node --no-deprecation index.mjs" }, "author": "", "license": "MIT",