Comparing version 1.4.1 to 1.5.0
@@ -203,6 +203,25 @@ 'use strict'; | ||
function extractCompetitiveRank(options, p) { | ||
return normalizeValue(options, p('.masthead-player .competitive-rank .h5').text()); | ||
function extractCompetitiveRanks(options, p) { | ||
// Role ranks don't appear to have identifying elements, so we must rely on the | ||
// order they appear in the DOM | ||
const roleRanks = p('.masthead-player-progression div.competitive-rank-level'); | ||
return { | ||
tank: normalizeValue(options, roleRanks.eq(0).text()), | ||
damage: normalizeValue(options, roleRanks.eq(1).text()), | ||
support: normalizeValue(options, roleRanks.eq(2).text()) | ||
}; | ||
} | ||
function extractEndorsementLevel(options, p) { | ||
return normalizeValue(options, p('.EndorsementIcon-tooltip .u-center').first().text()); | ||
} | ||
function extractGamesWon(options, p) { | ||
const rawValue = p('.masthead-detail.h4 span').text(); | ||
// Remove 'X games won' trailing text | ||
return normalizeValue(options, rawValue.replace(/[^0-9]/g, '')); | ||
} | ||
function gatherAchievements(options, p) { | ||
@@ -227,3 +246,5 @@ const achievements = []; | ||
stats.competitiveRank = extractCompetitiveRank(options, p); | ||
stats.competitiveRank = extractCompetitiveRanks(options, p); | ||
stats.endorsementLevel = extractEndorsementLevel(options, p); | ||
stats.gamesWon = extractGamesWon(options, p); | ||
stats.achievements = gatherAchievements(options, p); | ||
@@ -230,0 +251,0 @@ |
@@ -0,1 +1,22 @@ | ||
# 1.5.0 | ||
1.5.0 | ||
- Adds support for role queue ranks in `playerStats` method | ||
```json | ||
{ | ||
stats: { | ||
competitiveRank: { | ||
support: 1234, | ||
tank: 1234, | ||
damage: 1234 | ||
} | ||
} | ||
} | ||
``` | ||
- Adds `endorsementLevel` to `playerStats` | ||
- Adds `gamesWon` to `playerStats` | ||
# 1.4.0 & 1.4.1(May 14th 2019) | ||
@@ -2,0 +23,0 @@ |
{ | ||
"name": "oversmash", | ||
"version": "1.4.1", | ||
"version": "1.5.0", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "homepage": "https://github.com/filp/oversmash", |
import assert from 'assert' | ||
import oversmash from '../lib' | ||
// Test names taken from masteroverwatch top lists at random. If you see yourself | ||
// and would rather not be here, please open an issue! | ||
async function testPlayerProfile (ow) { | ||
const p = await ow.player('BOB#29739') | ||
const p = await ow.player('FATCOTTON420#2476') | ||
assert.equal(p.name, 'BOB-29739') | ||
assert.equal(p.name, 'FATCOTTON420-2476') | ||
assert.equal(p.accounts.length, 1) | ||
@@ -15,9 +12,15 @@ } | ||
async function testPlayerStats (ow) { | ||
const p = await ow.playerStats('BOB-29739', 'pc') | ||
const p = await ow.playerStats('FATCOTTON420-2476', 'pc') | ||
assert.equal(p.name, 'BOB-29739') | ||
assert.equal(p.name, 'FATCOTTON420-2476') | ||
assert.equal(p.platform, 'pc') | ||
assert(p.stats.endorsementLevel > 0) | ||
assert(p.stats.gamesWon > 2000) | ||
assert(p.stats.competitiveRank.tank > 0) | ||
assert(p.stats.competitiveRank.damage > 0) | ||
assert(p.stats.competitiveRank.support > 0) | ||
// Make sure diacritics replacement is working as intended: | ||
assert(p.stats.competitiveRank > 0) | ||
assert(p.stats.quickplay.lucio.combat.all_damage_done > 0) | ||
@@ -24,0 +27,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
21880
336