From 74055a485d0c87c1965fabe6ed2df3f633cdedfc Mon Sep 17 00:00:00 2001 From: lowlighter <22963968+lowlighter@users.noreply.github.com> Date: Thu, 19 Jan 2023 00:05:38 -0500 Subject: [PATCH] test(plugins/community/splatoon): mocks --- .github/workflows/examples.yml | 17 - .../plugins/community/splatoon/examples.yml | 6 +- source/plugins/community/splatoon/index.mjs | 5 +- .../plugins/community/splatoon/metadata.yml | 2 + .../community/splatoon/s3si/mocks/u_coop.json | 457 ++++++++++++++ .../splatoon/s3si/mocks/u_summary.json | 352 +++++++++++ .../community/splatoon/s3si/mocks/u_vs.json | 576 ++++++++++++++++++ .../templates/classic/partials/splatoon.ejs | 1 + 8 files changed, 1395 insertions(+), 21 deletions(-) create mode 100644 source/plugins/community/splatoon/s3si/mocks/u_coop.json create mode 100644 source/plugins/community/splatoon/s3si/mocks/u_summary.json create mode 100644 source/plugins/community/splatoon/s3si/mocks/u_vs.json diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 4e50ebac..0233f9f9 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -1163,23 +1163,6 @@ jobs: user: lowlighter plugins_errors_fatal: yes if: ${{ success() || failure() }} - - name: 🦑 Splatoon - Splatnet data with stat.ink integration - uses: lowlighter/metrics@master - with: - filename: metrics.plugin.splatoon.svg - token: ${{ secrets.METRICS_TOKEN }} - base: "" - plugin_splatoon: yes - plugin_splatoon_token: ${{ secrets.SPLATOON_TOKEN }} - plugin_splatoon_statink: yes - plugin_splatoon_statink_token: ${{ secrets.SPLATOON_STATINK_TOKEN }} - extras_css: | - h2 { display: none !important; } - output_action: none - delay: 120 - user: lowlighter - plugins_errors_fatal: yes - if: ${{ success() || failure() }} - name: 💹 Stock prices - Stock prices from Tesla uses: lowlighter/metrics@master with: diff --git a/source/plugins/community/splatoon/examples.yml b/source/plugins/community/splatoon/examples.yml index 1b671c80..ef2617d1 100644 --- a/source/plugins/community/splatoon/examples.yml +++ b/source/plugins/community/splatoon/examples.yml @@ -2,7 +2,7 @@ uses: lowlighter/metrics@latest with: filename: metrics.plugin.splatoon.svg - token: ${{ secrets.METRICS_TOKEN }} + token: NOT_NEEDED base: "" plugin_splatoon: yes plugin_splatoon_token: ${{ secrets.SPLATOON_TOKEN }} @@ -15,7 +15,7 @@ uses: lowlighter/metrics@latest with: filename: metrics.plugin.splatoon.svg - token: ${{ secrets.METRICS_TOKEN }} + token: NOT_NEEDED base: "" plugin_splatoon: yes plugin_splatoon_token: ${{ secrets.SPLATOON_TOKEN }} @@ -25,3 +25,5 @@ h2 { display: none !important; } test: skip: true + prod: + skip: true \ No newline at end of file diff --git a/source/plugins/community/splatoon/index.mjs b/source/plugins/community/splatoon/index.mjs index a130c071..95cc5bdc 100644 --- a/source/plugins/community/splatoon/index.mjs +++ b/source/plugins/community/splatoon/index.mjs @@ -44,6 +44,7 @@ export default async function({login, q, imports, data, account}, {enabled = fal allowed.net.push("stat.ink") } switch (source) { + case "mocks": case "local": console.debug(`metrics/compute/${login}/plugins > splatoon > skipping s3si execution`) break @@ -54,8 +55,8 @@ export default async function({login, q, imports, data, account}, {enabled = fal //Read fetched data const exported = await Promise.all( - (await imports.fs.readdir(`${imports.__module(import.meta.url)}/s3si/export`)) - .map(async file => JSON.parse(await imports.fs.readFile(`${imports.__module(import.meta.url)}/s3si/export/${file}`))), + (await imports.fs.readdir(`${imports.__module(import.meta.url)}/s3si/${source == "mocks" ? "mocks" : "export"}`)) + .map(async file => JSON.parse(await imports.fs.readFile(`${imports.__module(import.meta.url)}/s3si/${source == "mocks" ? "mocks" : "export"}/${file}`))), ) const summary = exported.filter(({type}) => type === "SUMMARY").at(0) if (!summary) diff --git a/source/plugins/community/splatoon/metadata.yml b/source/plugins/community/splatoon/metadata.yml index 86d65662..ee3cf048 100644 --- a/source/plugins/community/splatoon/metadata.yml +++ b/source/plugins/community/splatoon/metadata.yml @@ -90,10 +90,12 @@ inputs: - `splatnet` will fetch data from Splatnet using [spacemeowx2/s3si.ts](https://github.com/spacemeowx2/s3si.ts) tool - `local` will assume `s3si/export` directory already exists and is populated (use this when developping new features for this plugin to save network resources and time) + - `mocks` will use `s3si/mocks` directory (use this when developping new features for this plugin to avoid setting up a NSO token) type: string default: splatnet values: - splatnet - local + - mocks testing: yes preset: no diff --git a/source/plugins/community/splatoon/s3si/mocks/u_coop.json b/source/plugins/community/splatoon/s3si/mocks/u_coop.json new file mode 100644 index 00000000..88ec8245 --- /dev/null +++ b/source/plugins/community/splatoon/s3si/mocks/u_coop.json @@ -0,0 +1,457 @@ +{ + "type": "COOP", + "exportTime": "2023-01-19T00:00:00.000Z", + "data": { + "type": "CoopInfo", + "listNode": { + "weapons": [ + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + } + ], + "nextHistoryDetail": {}, + "previousHistoryDetail": {}, + "resultWave": 3, + "coopStage": { + "name": "Marooner's Bay" + }, + "afterGrade": { + "name": "Eggsecutive VP" + }, + "afterGradePoint": 100, + "gradePointDiff": "KEEP", + "bossResult": null, + "myResult": { + "deliverCount": 999, + "goldenDeliverCount": 88 + }, + "memberResults": [ + { + "deliverCount": 0, + "goldenDeliverCount": 0 + }, + { + "deliverCount": 0, + "goldenDeliverCount": 0 + }, + { + "deliverCount": 0, + "goldenDeliverCount": 0 + } + ] + }, + "groupInfo": { + "startTime": "2022-12-12T00:00:00Z", + "endTime": "2022-12-13T16:00:00Z", + "mode": "REGULAR", + "rule": "REGULAR", + "highestResult": { + "grade": { + "name": "Eggsecutive VP" + }, + "gradePoint": 150, + "jobScore": 120 + } + }, + "detail": { + "__typename": "CoopHistoryDetail", + "afterGrade": { + "name": "Eggsecutive VP" + }, + "myResult": { + "player": { + "__isPlayer": "CoopPlayer", + "byname": "The Usual Off the Hook Fan", + "name": "Pearl", + "nameId": "0000", + "nameplate": { + "badges": [ + null, + null, + null + ], + "background": { + "textColor": { + "a": 1, + "b": 1, + "g": 1, + "r": 1 + }, + "image": { + "url": { + "pathname": "#" + } + } + } + }, + "uniform": { + "name": "Pink Slopsuit", + "image": { + "url": { + "pathname": "#" + } + } + }, + "species": "INKLING" + }, + "weapons": [ + { + "name": "Splat Dualies", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Dark Tetra Dualies", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Dapple Dualies", + "image": { + "url": { + "pathname": "#" + } + } + } + ], + "specialWeapon": { + "name": "Booyah Bomb", + "image": { + "url": { + "pathname": "#" + } + }, + "weaponId": 20006 + }, + "defeatEnemyCount": 16, + "deliverCount": 777, + "goldenAssistCount": 0, + "goldenDeliverCount": 22, + "rescueCount": 3, + "rescuedCount": 2 + }, + "memberResults": [ + { + "player": { + "__isPlayer": "CoopPlayer", + "byname": "", + "name": "Player", + "nameId": "0000", + "nameplate": { + "badges": [ + null, + null, + null + ], + "background": { + "textColor": { + "a": 1, + "b": 1, + "g": 1, + "r": 1 + }, + "image": { + "url": { + "pathname": "#" + } + } + } + }, + "uniform": { + "name": "Orange Slopsuit", + "image": { + "url": { + "pathname": "#" + } + } + }, + "species": "INKLING" + }, + "weapons": [ + { + "name": "Jet Squelcher", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Explosher", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Dark Tetra Dualies", + "image": { + "url": { + "pathname": "#" + } + } + } + ], + "specialWeapon": { + "name": "Unknown", + "image": { + "url": { + "pathname": "#" + } + } + }, + "defeatEnemyCount": 0, + "deliverCount": 0, + "goldenAssistCount": 0, + "goldenDeliverCount": 0, + "rescueCount": 0, + "rescuedCount": 0 + } + ], + "bossResult": null, + "enemyResults": [ + { + "defeatCount": 1, + "teamDefeatCount": 1, + "popCount": 1, + "enemy": { + "name": "Flyfish", + "image": { + "url": { + "pathname": "#" + } + } + } + }, + { + "defeatCount": 2, + "teamDefeatCount": 0, + "popCount": 2, + "enemy": { + "name": "Scrapper", + "image": { + "url": { + "pathname": "#" + } + } + } + }, + { + "defeatCount": 1, + "teamDefeatCount": 0, + "popCount": 1, + "enemy": { + "name": "Steel Eel", + "image": { + "url": { + "pathname": "#" + } + } + } + }, + { + "defeatCount": 1, + "teamDefeatCount": 0, + "popCount": 1, + "enemy": { + "name": "Stinger", + "image": { + "url": { + "pathname": "#" + } + } + } + }, + { + "defeatCount": 3, + "teamDefeatCount": 0, + "popCount": 3, + "enemy": { + "name": "Drizzler", + "image": { + "url": { + "pathname": "#" + } + } + } + }, + { + "defeatCount": 2, + "teamDefeatCount": 1, + "popCount": 2, + "enemy": { + "name": "Slammin' Lid", + "image": { + "url": { + "pathname": "#" + } + } + } + }, + { + "defeatCount": 6, + "teamDefeatCount": 8, + "popCount": 6, + "enemy": { + "name": "Mudmouth", + "image": { + "url": { + "pathname": "#" + } + } + } + } + ], + "waveResults": [ + { + "waveNumber": 1, + "waterLevel": 1, + "eventWave": { + "name": "Mudmouth Eruptions" + }, + "deliverNorm": 21, + "goldenPopCount": 63, + "teamDeliverCount": 54, + "specialWeapons": [] + }, + { + "waveNumber": 2, + "waterLevel": 1, + "eventWave": { + "name": "The Mothership" + }, + "deliverNorm": 22, + "goldenPopCount": 30, + "teamDeliverCount": 26, + "specialWeapons": [ + { + "name": "Inkjet", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Inkjet", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Crab Tank", + "image": { + "url": { + "pathname": "#" + } + } + } + ] + }, + { + "waveNumber": 3, + "waterLevel": 0, + "eventWave": null, + "deliverNorm": 24, + "goldenPopCount": 28, + "teamDeliverCount": 17, + "specialWeapons": [] + } + ], + "resultWave": 3, + "playedTime": "2022-12-12T00:00:00Z", + "rule": "REGULAR", + "coopStage": { + "name": "Marooner's Bay", + "image": { + "url": { + "pathname": "#" + } + } + }, + "dangerRate": 2.22, + "scenarioCode": null, + "smellMeter": 0, + "weapons": [ + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + }, + { + "name": "Random", + "image": { + "url": { + "pathname": "#" + } + } + } + ], + "afterGradePoint": 100, + "scale": null, + "jobPoint": 0, + "jobScore": 0, + "jobRate": 1, + "jobBonus": 0, + "nextHistoryDetail": {}, + "previousHistoryDetail": {} + } + } +} \ No newline at end of file diff --git a/source/plugins/community/splatoon/s3si/mocks/u_summary.json b/source/plugins/community/splatoon/s3si/mocks/u_summary.json new file mode 100644 index 00000000..679df98b --- /dev/null +++ b/source/plugins/community/splatoon/s3si/mocks/u_summary.json @@ -0,0 +1,352 @@ +{ + "type": "SUMMARY", + "exportTime": "2023-01-19T00:00:00.000Z", + "data": { + "ConfigureAnalyticsQuery": { + "playHistory": { + "udemaeMax": "S+0", + "paintPointTotal": 999999, + "gameStartTime": "2022-09-09T00:00:00Z", + "battleNumTotal": 333, + "xMatchMaxAr": { + "rank": null + }, + "xMatchMaxCl": { + "rank": null + }, + "xMatchMaxGl": { + "rank": null + }, + "xMatchMaxLf": { + "rank": null + } + } + }, + "HistoryRecordQuery": { + "currentPlayer": { + "__isPlayer": "CurrentPlayer", + "byname": "The Usual Off the Hook Fan", + "name": "Pearl", + "nameId": "0000", + "nameplate": { + "badges": [ + null, + null, + { + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/d/d4/S3_Banner_11076.png" + } + } + ], + "background": { + "textColor": { + "a": 1, + "b": 1, + "g": 1, + "r": 1 + }, + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/6/6a/S3_Banner_901.png" + } + } + }, + "weapon": { + "name": "Splat Dualies", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/e/ec/S3_Weapon_Main_Splat_Dualies_Flat.png" + }, + "subWeapon": { + "name": "Suction Bomb", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/thumb/f/f2/S3_Weapon_Sub_Suction_Bomb_Flat.png/24px-S3_Weapon_Sub_Suction_Bomb_Flat.png" + } + }, + "specialWeapon": { + "name": "Crab Tank", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/8/88/S3_Weapon_Special_Crab_Tank.png" + } + } + }, + "headGear": { + "__isGear": "HeadGear", + "name": "Pearlescent Crown", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/3/3c/S3_Gear_Headgear_Pearlescent_Crown_S.png" + }, + "primaryGearPower": { + "name": "Last-Ditch Effort", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/c/c7/S3_Ability_Last-Ditch_Effort.png" + } + }, + "additionalGearPowers": [ + { + "name": "Quick Respawn", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/9/98/S3_Ability_Quick_Respawn.png" + } + }, + { + "name": "Quick Respawn", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/9/98/S3_Ability_Quick_Respawn.png" + } + }, + { + "name": "Quick Respawn", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/9/98/S3_Ability_Quick_Respawn.png" + } + } + ] + }, + "clothingGear": { + "__isGear": "ClothingGear", + "name": "Pearlescent Hoodie", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/4/42/S3_Gear_Clothing_Pearlescent_Hoodie.png" + }, + "primaryGearPower": { + "name": "Respawn Punisher", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/6/68/S3_Ability_Respawn_Punisher.png" + } + }, + "additionalGearPowers": [ + { + "name": "Quick Respawn", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/9/98/S3_Ability_Quick_Respawn.png" + } + }, + { + "name": "Quick Respawn", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/9/98/S3_Ability_Quick_Respawn.png" + } + }, + { + "name": "Quick Respawn", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/9/98/S3_Ability_Quick_Respawn.png" + } + } + ] + }, + "shoesGear": { + "__isGear": "ShoesGear", + "name": "Pearlescent Kicks", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/6/64/S3_Gear_Shoes_Pearlescent_Kicks.png" + }, + "primaryGearPower": { + "name": "Stealth Jump", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/5/5a/S3_Ability_Stealth_Jump.png" + } + }, + "additionalGearPowers": [ + { + "name": "Quick Super Jump", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/d/d5/S3_Ability_Quick_Super_Jump.png" + } + }, + { + "name": "Ink Resistance Up", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/6/6d/S3_Ability_Ink_Resistance_Up.png" + } + }, + { + "name": "Sub Resistance Up", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/d/d4/S3_Ability_Sub_Resistance_Up.png" + } + } + ] + }, + "userIcon": { + "url": "https://cdn-image-e0d67c509fb203858ebcb2fe3f88c2aa.baas.nintendo.com/1/3d2fd3bbdd21df80" + } + }, + "playHistory": { + "currentTime": "2023-01-01T00:00:00Z", + "gameStartTime": "2022-09-09T00:00:00Z", + "rank": 50, + "udemae": "S+0", + "xMatchRankAr": null, + "xMatchRankCl": null, + "xMatchRankGl": null, + "xMatchRankLf": null, + "udemaeMax": "S+0", + "xMatchMaxAr": { + "power": null, + "rank": null, + "rankUpdateSeasonName": null, + "powerUpdateTime": null + }, + "xMatchMaxCl": { + "power": null, + "rank": null, + "rankUpdateSeasonName": null, + "powerUpdateTime": null + }, + "xMatchMaxGl": { + "power": null, + "rank": null, + "rankUpdateSeasonName": null, + "powerUpdateTime": null + }, + "xMatchMaxLf": { + "power": null, + "rank": null, + "rankUpdateSeasonName": null, + "powerUpdateTime": null + }, + "winCountTotal": 333, + "frequentlyUsedWeapons": [ + { + "name": "Splat Dualies", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/e/ec/S3_Weapon_Main_Splat_Dualies_Flat.png" + } + } + ], + "paintPointTotal": 999999, + "badges": [], + "weaponHistory": { + "nodes": [ + { + "seasonName": "Chill Season 2022", + "isMonthly": true, + "startTime": "2022-12-01T00:00:00Z", + "endTime": "2022-12-12T01:18:48Z", + "weaponCategories": [ + { + "weaponCategory": { + "name": "Dualies", + "category": "Maneuver" + }, + "utilRatio": 1, + "weapons": [ + { + "weapon": { + "name": "Splat Dualies", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/e/ec/S3_Weapon_Main_Splat_Dualies_Flat.png" + }, + "weaponCategory": { + "category": "Maneuver" + } + }, + "utilRatio": 0.846 + }, + { + "weapon": { + "name": "Dark Tetra Dualies", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/2/2a/S3_Weapon_Main_Dark_Tetra_Dualies_Flat.png" + }, + "weaponCategory": { + "category": "Maneuver" + } + }, + "utilRatio": 0.154 + } + ] + } + ], + "weapons": [ + { + "weapon": { + "name": "Splat Dualies", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/e/ec/S3_Weapon_Main_Splat_Dualies_Flat.png" + } + }, + "utilRatio": 0.846 + }, + { + "weapon": { + "name": "Dark Tetra Dualies", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/2/2a/S3_Weapon_Main_Dark_Tetra_Dualies_Flat.png" + } + }, + "utilRatio": 0.154 + } + ] + } + ] + }, + "recentBadges": [ + { + "id": "QmFkZ2UtNTEwMDAwMQ==", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/2/20/S3_Badge_Grizzco_100K.png" + }, + "description": "100,000 Grizzco Point Club" + } + ], + "allBadges": [ + { + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/4/4a/S3_Badge_Splat_Dualies_5.png" + }, + "description": "5★ Splat Dualies User" + }, + { + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/4/47/S3_Badge_Rank_S%2B.png" + }, + "description": "S+ Rank Reached!" + }, + { + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/2/20/S3_Badge_Grizzco_100K.png" + }, + "description": "100,000 Grizzco Point Club" + } + ] + } + }, + "CoopHistoryQuery": { + "coopResult": { + "historyGroupsOnlyFirst": { + "nodes": [] + }, + "regularAverageClearWave": 2, + "regularGrade": { + "name": "Eggsecutive VP" + }, + "regularGradePoint": 100, + "monthlyGear": { + "__typename": "HeadGear", + "name": "Bream-Brim Cap", + "image": { + "url": "https://cdn.wikimg.net/en/splatoonwiki/images/6/6d/S3_Gear_Headgear_Bream-Brim_Cap.png" + } + }, + "scale": { + "gold": 0, + "silver": 0, + "bronze": 0 + }, + "pointCard": { + "defeatBossCount": 199, + "deliverCount": 1234567, + "goldenDeliverCount": 34567, + "playCount": 444, + "rescueCount": 1234, + "regularPoint": 0, + "totalPoint": 100000 + }, + "historyGroups": { + "nodes": [] + } + } + } + } +} \ No newline at end of file diff --git a/source/plugins/community/splatoon/s3si/mocks/u_vs.json b/source/plugins/community/splatoon/s3si/mocks/u_vs.json new file mode 100644 index 00000000..8ce4cf2a --- /dev/null +++ b/source/plugins/community/splatoon/s3si/mocks/u_vs.json @@ -0,0 +1,576 @@ +{ + "type": "VS", + "exportTime": "2023-01-19T00:00:00.000Z", + "data": { + "type": "VsInfo", + "bankaraMatchChallenge": { + "winCount": 3, + "loseCount": 0, + "maxWinCount": 5, + "maxLoseCount": 3, + "state": "INPROGRESS", + "isPromo": false, + "isUdemaeUp": null, + "udemaeAfter": null, + "earnedUdemaePoint": null + }, + "listNode": { + "vsMode": { + "mode": "BANKARA" + }, + "vsRule": { + "name": "Splat Zones" + }, + "vsStage": { + "name": "Inkblot Art Academy", + "image": {} + }, + "judgement": "WIN", + "player": { + "weapon": { + "name": "Splat Dualies", + "image": {} + } + }, + "knockout": "WIN", + "myTeam": { + "result": { + "paintPoint": null, + "paintRatio": null, + "score": 100 + } + }, + "udemae": "S+0", + "bankaraMatch": { + "earnedUdemaePoint": null + }, + "nextHistoryDetail": null, + "previousHistoryDetail": {} + }, + "challengeProgress": { + "index": 0, + "winCount": 3, + "loseCount": 0 + }, + "rankState": null, + "rankBeforeState": null, + "detail": { + "__typename": "VsHistoryDetail", + "vsRule": { + "name": "Splat Zones", + "rule": "AREA" + }, + "vsMode": { + "mode": "BANKARA" + }, + "player": { + "__isPlayer": "VsPlayer", + "byname": "The Usual Off the Hook Fan", + "name": "Pearl", + "nameId": "0000", + "nameplate": { + "badges": [ + null, + null, + null + ], + "background": { + "textColor": { + "a": 1, + "b": 1, + "g": 1, + "r": 1 + }, + "image": {} + } + }, + "headGear": { + "name": "Pearlescent Crown", + "image": {}, + "__isGear": "HeadGear", + "primaryGearPower": { + "name": "Last-Ditch Effort", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "clothingGear": { + "name": "Pearlescent Hoodie", + "image": {}, + "__isGear": "ClothingGear", + "primaryGearPower": { + "name": "Respawn Punisher", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "shoesGear": { + "name": "Pearlescent Kicks", + "image": {}, + "__isGear": "ShoesGear", + "primaryGearPower": { + "name": "Stealth Jump", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Quick Super Jump", + "image": {} + }, + { + "name": "Ink Resistance Up", + "image": {} + }, + { + "name": "Sub Resistance Up", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "paint": 888 + }, + "judgement": "WIN", + "myTeam": { + "color": { + "a": 1, + "b": 0.454901993, + "g": 0.176470593, + "r": 0.756862819 + }, + "judgement": "WIN", + "result": { + "paintRatio": null, + "score": 100, + "noroshi": null + }, + "tricolorRole": null, + "festTeamName": null, + "players": [ + { + "nameId": "0000", + "name": "Pearl", + "isMyself": true, + "byname": "The Usual Off the Hook Fan", + "weapon": { + "name": "Splat Dualies", + "image": {}, + "specialWeapon": { + "maskingImage": { + "width": 100, + "height": 100 + }, + "name": "Crab Tank", + "image": {} + }, + "image3d": {}, + "image2d": {}, + "image3dThumbnail": {}, + "image2dThumbnail": {}, + "subWeapon": { + "name": "Suction Bomb", + "image": {} + } + }, + "species": "INKLING", + "__isPlayer": "VsPlayer", + "nameplate": { + "badges": [ + null, + null, + null + ], + "background": { + "textColor": { + "a": 1, + "b": 1, + "g": 1, + "r": 1 + }, + "image": {} + } + }, + "headGear": { + "name": "Pearlescent Crown", + "image": {}, + "__isGear": "HeadGear", + "primaryGearPower": { + "name": "Last-Ditch Effort", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "clothingGear": { + "name": "Pearlescent Hoodie", + "image": {}, + "__isGear": "ClothingGear", + "primaryGearPower": { + "name": "Respawn Punisher", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + }, + { + "name": "Quick Respawn", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "shoesGear": { + "name": "Pearlescent Kicks", + "image": {}, + "__isGear": "ShoesGear", + "primaryGearPower": { + "name": "Stealth Jump", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Quick Super Jump", + "image": {} + }, + { + "name": "Ink Resistance Up", + "image": {} + }, + { + "name": "Sub Resistance Up", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "paint": 888, + "result": { + "kill": 8, + "death": 3, + "assist": 4, + "special": 1, + "noroshiTry": null + }, + "festDragonCert": "NONE", + "__typename": "VsPlayer" + } + ], + "order": 1 + }, + "vsStage": { + "name": "Inkblot Art Academy", + "image": {} + }, + "festMatch": null, + "knockout": "WIN", + "otherTeams": [ + { + "judgement": "LOSE", + "color": { + "a": 1, + "b": 0.133333296, + "g": 0.721568584, + "r": 0.172549993 + }, + "result": { + "paintRatio": null, + "score": 0, + "noroshi": null + }, + "tricolorRole": null, + "players": [ + { + "nameId": "0000", + "name": "Marina", + "isMyself": false, + "byname": "", + "weapon": { + "name": "Splattershot", + "image": {}, + "specialWeapon": { + "maskingImage": { + "width": 100, + "height": 100 + }, + "name": "Trizooka", + "image": {} + }, + "image3d": {}, + "image2d": {}, + "image3dThumbnail": {}, + "image2dThumbnail": {}, + "subWeapon": { + "name": "Suction Bomb", + "image": {} + } + }, + "species": "OCTOLING", + "__isPlayer": "VsPlayer", + "nameplate": { + "badges": [ + null, + null, + null + ], + "background": { + "textColor": { + "a": 1, + "b": 1, + "g": 1, + "r": 1 + }, + "image": {} + } + }, + "headGear": { + "name": "Unknown", + "thumbnailImage": {}, + "__isGear": "HeadGear", + "primaryGearPower": { + "name": "Unknown", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Unknown", + "image": {} + }, + { + "name": "Unknown", + "image": {} + }, + { + "name": "Unknown", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "clothingGear": { + "name": "Unknown", + "thumbnailImage": {}, + "__isGear": "ClothingGear", + "primaryGearPower": { + "name": "Unknown", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Unknown", + "image": {} + }, + { + "name": "Unknown", + "image": {} + }, + { + "name": "Unknown", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "shoesGear": { + "name": "Unknown", + "thumbnailImage": {}, + "__isGear": "ShoesGear", + "primaryGearPower": { + "name": "Unknown", + "image": {} + }, + "additionalGearPowers": [ + { + "name": "Unknown", + "image": {} + }, + { + "name": "Unknown", + "image": {} + }, + { + "name": "Unknown", + "image": {} + } + ], + "originalImage": {}, + "brand": { + "name": "amiibo", + "image": {}, + "usualGearPower": { + "name": "Unknown", + "desc": "Unlock this ability by battling while wearing this gear.", + "image": {}, + "isEmptySlot": true + } + } + }, + "paint": 0, + "result": { + "kill": 0, + "death": 0, + "assist": 0, + "special": 0, + "noroshiTry": null + }, + "festDragonCert": "NONE", + "__typename": "VsPlayer" + } + ], + "order": 2, + "festTeamName": null + } + ], + "bankaraMatch": { + "earnedUdemaePoint": null, + "mode": "CHALLENGE" + }, + "xMatch": null, + "duration": 69, + "playedTime": "2023-01-19T00:00:00.000Z", + "awards": [ + { + "name": "#1 Popular Target", + "rank": "GOLD" + }, + { + "name": "#1 Score Booster", + "rank": "GOLD" + }, + { + "name": "#1 Damage Taker", + "rank": "SILVER" + } + ], + "leagueMatch": null, + "nextHistoryDetail": null, + "previousHistoryDetail": {} + } + } +} \ No newline at end of file diff --git a/source/templates/classic/partials/splatoon.ejs b/source/templates/classic/partials/splatoon.ejs index f75e3757..053508e4 100644 --- a/source/templates/classic/partials/splatoon.ejs +++ b/source/templates/classic/partials/splatoon.ejs @@ -266,6 +266,7 @@ } .match:not(:last-child) { border-bottom: 2px dashed rgba(0, 0, 0, .4); + padding-bottom: 4px; } .match-details { flex-grow: 1;