JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q36792F
  • License GPL-3.0

Wrapper for CSGO stats.

Package Exports

  • m4a1.js
  • m4a1.js/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (m4a1.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

m4a1.js

NPM-Version NPM-Downloads Github Stars Issues

This a wrapper of the TRNetwork Public API for CSGO stats.

Instalattion

You gotta request a Free API key on Tracker.gg

Dependencies

axios

To install use:

npm i m4a1.js

You must call CSAPI.fetchUser before using any other method.

Methods Description
info user info
stats lifeline stats
weapons weapons stats
maps maps stats

There are constants to give a format string to maps and weapons (feel free to pr if something is missing)

const { MAPS, WEAPONS } = require('m4a1.js')
/* Maps */
MAPS['de_cbble']		// Cobblestone
MAPS['de_train']		// Train
MAPS['de_shorttrain']	// Train (wingman)
/* Weapons */
WEAPONS['ak47']			// AK-47
WEAPONS['deagle']		// Desert Eagle
WEAPONS['hkp2000']		// P2000

Example code: (Feel free to use my steamid for testing)

const { CSAPI } = require('m4a1.js')

try {

    /* 
    Username can be:
            SteamID64	(76561198137433783)
            SteamID		(iFraan_) // from url
        CANNOT BE
            Public Steam name
    */
    const user = await CSAPI.fetchUser('iFraan_', 'YourApiKey')
    
    console.log('User:', user.info())
    /*
    User: {
        platform: 'steam' ,
        steamid: '76561198137433783' ,
        name: 'fran' ,
        avatar: 'https://avatars.akamai.steamstatic.com/b5ac48b867b9ac1935fc564eaf1b43e8ac326e24_full.jpg'
    }
    */

    console.log('Stats:', user.stats())
    /*
    Stats: {
        timePlayedDisplay: '1,311h',
        timePlayed: 4722655,
        score: 248751,
        kills: 100376,
        deaths: 64971,
        kd: 1.5449354327315263,
        damage: 11336712,
        headshots: 42423,
        dominations: 649,
        shotsFired: 1308051,
        shotsHit: 299525,
        shotsAccuracy: 22.89857199757502,
        snipersKilled: 4619,
        dominationOverkills: 666,
        dominationRevenges: 177,
        bombsPlanted: 4962,
        bombsDefused: 989,
        moneyEarned: 191909700,
        hostagesRescued: 0,
        mvp: 11693,
        wins: 1466,
        ties: 0,
        matchesPlayed: 3877,
        losses: 2411,
        roundsPlayed: 68576,
        roundsWon: 1466,
        wlPercentage: 37.8,
        headshotPct: 42.3
    }
    */

    console.log('Weapons:', user.weapons())
    /*
    Weapons: {
        ak47: {
          kills: 24626,
          shotsFired: 465473,
          shotsHit: 107951,
          shotsAccuracy: 23.191678142448648
        },
        aug: {
          kills: 1253,
          shotsFired: 25473,
          shotsHit: 4664,
          shotsAccuracy: 18.309582695402977
        },
        awp: {
          kills: 8690,
          shotsFired: 32426,
          shotsHit: 9679,
          shotsAccuracy: 29.84950348485783
        },
        ...
    }
    */
    console.log('Maps:', user.maps())
    /* 
    Maps: {
        de_cbble: { 
            rounds: 1595, 
            wins: 770, 
            wr: 0.4827586206896552 
        },
        de_inferno: { 
            rounds: 14407, 
            wins: 7198, 
            wr: 0.4996182411327827 
        },
        de_nuke: { 
            rounds: 687, 
            wins: 358, 
            wr: 0.5211062590975255 
        },
        ...
    }
    */

} catch (e) {
    console.log(e)
    /* Error: We could not find the player [player]. */
}

Disclaimer

This project is fully for educational purposes.