This piece of JS aims to scrap a playoverwatch.com profile page and to produce a JSON digest of the stats found in it for a specific account. When getting a profile's stats, one can choose between regions & game mode, just like on the page itself. The JSON produced is basically a "distraction free" version of what is seen on the page.
Right now, the tool focuses on the Career stats
section and can be used for the quickplay
& competitive
game modes for any region you wish
Originally, I wrote this tool to allow me to track very specific stats (like my K/D ratio) without all the clutter existing applications provide
Note : this is still hugely WIP but, provided it is transpiled, it should be useable on a small app. As Blizzard does not seem to allow cross-origin for playoverwatch.com, this probably means that the requesting will have to be done server-side before handing the parsed data over to a user-facing app.
Here's an example for one character
{
...
Pharah:
{ 'Hero Specific':
{ 'Rocket Direct Hits': '12',
'Rocket Direct Hits - Most in Game': '12',
'Rocket Direct Hits - Average': '90.38' },
Combat:
{ 'Shots Fired': '27',
'Shots Hit': '21',
'Damage Done': '2,287',
'Weapon Accuracy': '77%' },
Best:
{ 'Damage Done - Most in Life': '1,733',
'Weapon Accuracy - Best in Game': '77%',
'Damage Done - Most in Game': '2,287',
'Objective Time - Most in Game': '00:14' },
Average:
{ 'Deaths - Average': '7.53',
'Objective Time - Average': '01:47',
'Damage Done - Average': '17,224.04' },
Deaths: { Death: '1', 'Environmental Death': '1' },
'Match Awards': { 'Medals - Silver': '0', 'Medals - Gold': '0', Medals: '1' },
Game:
{ 'Time Played': '1 minute',
'Games Played': '0',
'Objective Time': '00:14' },
Miscellaneous: { 'Games Lost': '0' } },
...
}
The stats collected also include the All heroes
section (as seen on the original page).
import OverScrap from 'overscrap'
const overscrap = new OverScrap();
overscrap.loadDataFromProfile('Hoshin#2365', 'eu', 'competitive')
.then(playerStats => {
// from then on, the `playerStats` object contains all heroes data parsed & organized as shown in the previous section
})
npm run start <Battle tag> [ region [ game mode ] ]
#^this'll output the raw JSON parsed from the playoverwatch profile page