Skip to content

Commit

Permalink
Add extras datas : Season,Prestige & Tiers .This Resolves #5
Browse files Browse the repository at this point in the history
  • Loading branch information
gclement authored and gclement committed Apr 22, 2017
1 parent ef99b8c commit a3abc85
Show file tree
Hide file tree
Showing 3 changed files with 229 additions and 2 deletions.
45 changes: 45 additions & 0 deletions lib/overwatch.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,21 @@ const PLATFORMS = {
Playstation: "psn",
PC: "pc"
}
const RANKS = {
"1" : [], //// Season 1
"2" : [ //// Season 2
'Bronze',
'Silver',
'Gold',
'Platinum',
'Diamond',
'Master',
'Grandmaster',
'Top500'
]
}

const TIERS = require('./registry/ranking');

let OverwatchProvider = function () {
var self = this;
Expand Down Expand Up @@ -73,15 +88,43 @@ let OverwatchProvider = function () {
return searchUrl + nickname;
};

let parseSeason = (url) => {
if (!url)
return {};
var m = url.match(/season\-([0-9])\/rank-([0-9])/);

if(!m || m.length <= 1)
return {};

return { id : parseInt(m[1]), rank : parseInt(m[2])};
}

let parseTiers = (img) => {
if(!img)
return '';

var m = img.match(/playerlevelrewards\/(.*)_Border.png/);

if(!m || m.length <= 1)
return '';

return TIERS[m[1]];
}

let parseProfile = ($) => {
var stats = {};
stats.nick = $('.header-masthead').text();
stats.level = parseInt($('div.player-level div').first().text());
stats.avatar = $('.player-portrait').attr('src');
stats.rank = parseInt($('div.competitive-rank > div').first().text());
stats.tier = parseTiers($('.player-level').attr('style').replace(/^url|[\(\)]/g, ''));

if (stats.rank)
{
stats.rankPicture = $('div.competitive-rank > img').attr('src');
stats.season = parseSeason(stats.rankPicture);
stats.ranking = stats.season ? RANKS[stats.season.id][stats.season.rank] : '';
}

stats.platform = $('#profile-platforms > a').text();

Expand All @@ -95,6 +138,8 @@ let OverwatchProvider = function () {
stats[item.find('.card-copy').text().sanitize()] = item.find('.card-heading').text().cast();
});

stats.masteringHeroe = $('#overview-section > .masthead-hero-image').attr(`data-hero-${gameType}`);

return stats;
}

Expand Down
182 changes: 182 additions & 0 deletions lib/registry/ranking.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
module.exports = PRESTIGE = {
"0x0250000000000918": 0,
"0x0250000000000919": 0,
"0x025000000000091A": 0,
"0x025000000000091B": 0,
"0x025000000000091C": 0,
"0x025000000000091D": 0,
"0x025000000000091E": 0,
"0x025000000000091F": 0,
"0x0250000000000920": 0,
"0x0250000000000921": 0,
"0x0250000000000922": 1,
"0x0250000000000924": 1,
"0x0250000000000925": 1,
"0x0250000000000926": 1,
"0x025000000000094C": 1,
"0x0250000000000927": 1,
"0x0250000000000928": 1,
"0x0250000000000929": 1,
"0x025000000000092B": 1,
"0x0250000000000950": 1,
"0x025000000000092A": 2,
"0x025000000000092C": 2,
"0x0250000000000937": 2,
"0x025000000000093B": 2,
"0x0250000000000933": 2,
"0x0250000000000923": 2,
"0x0250000000000944": 2,
"0x0250000000000948": 2,
"0x025000000000093F": 2,
"0x0250000000000951": 2,
"0x025000000000092D": 3,
"0x0250000000000930": 3,
"0x0250000000000934": 3,
"0x0250000000000938": 3,
"0x0250000000000940": 3,
"0x0250000000000949": 3,
"0x0250000000000952": 3,
"0x025000000000094D": 3,
"0x0250000000000945": 3,
"0x025000000000093C": 3,
"0x025000000000092E": 4,
"0x0250000000000931": 4,
"0x0250000000000935": 4,
"0x025000000000093D": 4,
"0x0250000000000946": 4,
"0x025000000000094A": 4,
"0x0250000000000953": 4,
"0x025000000000094E": 4,
"0x0250000000000939": 4,
"0x0250000000000941": 4,
"0x025000000000092F": 5,
"0x0250000000000932": 5,
"0x025000000000093E": 5,
"0x0250000000000936": 5,
"0x025000000000093A": 5,
"0x0250000000000942": 5,
"0x0250000000000947": 5,
"0x025000000000094F": 5,
"0x025000000000094B": 5,
"0x0250000000000954": 5,
"0x0250000000000956": 6,
"0x025000000000095C": 6,
"0x025000000000095D": 6,
"0x025000000000095E": 6,
"0x025000000000095F": 6,
"0x0250000000000960": 6,
"0x0250000000000961": 6,
"0x0250000000000962": 6,
"0x0250000000000963": 6,
"0x0250000000000964": 6,
"0x0250000000000957": 7,
"0x0250000000000965": 7,
"0x0250000000000966": 7,
"0x0250000000000967": 7,
"0x0250000000000968": 7,
"0x0250000000000969": 7,
"0x025000000000096A": 7,
"0x025000000000096B": 7,
"0x025000000000096C": 7,
"0x025000000000096D": 7,
"0x0250000000000958": 8,
"0x025000000000096E": 8,
"0x025000000000096F": 8,
"0x0250000000000970": 8,
"0x0250000000000971": 8,
"0x0250000000000972": 8,
"0x0250000000000973": 8,
"0x0250000000000974": 8,
"0x0250000000000975": 8,
"0x0250000000000976": 8,
"0x0250000000000959": 9,
"0x0250000000000977": 9,
"0x0250000000000978": 9,
"0x0250000000000979": 9,
"0x025000000000097A": 9,
"0x025000000000097B": 9,
"0x025000000000097C": 9,
"0x025000000000097D": 9,
"0x025000000000097E": 9,
"0x025000000000097F": 9,
"0x025000000000095A": 10,
"0x0250000000000980": 10,
"0x0250000000000981": 10,
"0x0250000000000982": 10,
"0x0250000000000983": 10,
"0x0250000000000984": 10,
"0x0250000000000985": 10,
"0x0250000000000986": 10,
"0x0250000000000987": 10,
"0x0250000000000988": 10,
"0x025000000000095B": 11,
"0x0250000000000989": 11,
"0x025000000000098A": 11,
"0x025000000000098B": 11,
"0x025000000000098C": 11,
"0x025000000000098D": 11,
"0x025000000000098E": 11,
"0x025000000000098F": 11,
"0x0250000000000991": 11,
"0x0250000000000990": 11,
"0x0250000000000992": 12,
"0x0250000000000993": 12,
"0x0250000000000994": 12,
"0x0250000000000995": 12,
"0x0250000000000996": 12,
"0x0250000000000997": 12,
"0x0250000000000998": 12,
"0x0250000000000999": 12,
"0x025000000000099A": 12,
"0x025000000000099B": 12,
"0x025000000000099C": 13,
"0x025000000000099D": 13,
"0x025000000000099E": 13,
"0x025000000000099F": 13,
"0x02500000000009A0": 13,
"0x02500000000009A1": 13,
"0x02500000000009A2": 13,
"0x02500000000009A3": 13,
"0x02500000000009A4": 13,
"0x02500000000009A5": 13,
"0x02500000000009A6": 14,
"0x02500000000009A7": 14,
"0x02500000000009A8": 14,
"0x02500000000009A9": 14,
"0x02500000000009AA": 14,
"0x02500000000009AB": 14,
"0x02500000000009AC": 14,
"0x02500000000009AD": 14,
"0x02500000000009AE": 14,
"0x02500000000009AF": 14,
"0x02500000000009B0": 15,
"0x02500000000009B1": 15,
"0x02500000000009B2": 15,
"0x02500000000009B3": 15,
"0x02500000000009B4": 15,
"0x02500000000009B5": 15,
"0x02500000000009B6": 15,
"0x02500000000009B7": 15,
"0x02500000000009B8": 15,
"0x02500000000009B9": 15,
"0x02500000000009BA": 16,
"0x02500000000009BB": 16,
"0x02500000000009BC": 16,
"0x02500000000009BD": 16,
"0x02500000000009BE": 16,
"0x02500000000009BF": 16,
"0x02500000000009C0": 16,
"0x02500000000009C1": 16,
"0x02500000000009C2": 16,
"0x02500000000009C3": 16,
"0x02500000000009C4": 17,
"0x02500000000009C5": 17,
"0x02500000000009C6": 17,
"0x02500000000009C7": 17,
"0x02500000000009C8": 17,
"0x02500000000009C9": 17,
"0x02500000000009CA": 17,
"0x02500000000009CB": 17,
"0x02500000000009CC": 17,
"0x02500000000009CD": 17
}
4 changes: 2 additions & 2 deletions specs/mocktest.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ var ow = require('../index.js');
ow.search('Zeya-2303')
.then((data) => console.dir(data, {depth : 3, colors : true}) );

ow.getAll('pc', 'eu', 'Zeya-2303')
.then((data) => console.dir(data, {depth : 2, colors : true}) );
ow.getOverall('pc', 'eu', 'Zeya-2303')
.then((data) => console.dir(data, {depth : 2, colors : true}) );

0 comments on commit a3abc85

Please sign in to comment.