async getData(champion, preferredPosition, gameMode) { const res = await rp(`${this.base}/champion/${champion.key}/statistics${preferredPosition ? '/' + this.convertOPGGPosition(preferredPosition) : ''}`); const d = this._scrape(res, champion, gameMode, preferredPosition, true); let data = { roles: { [d.position]: d } }; for (const position of d.availablePositions) { console.log(2, `[ProviderHandler] [OP.GG] Gathering data (${position.name})`); try { data.roles[position.name] = this._scrape(await rp(position.link), champion, gameMode, position.name); delete data.roles[position.name].position; } catch(err) { console.log(`[ProviderHandler] [OP.GG] Something happened while gathering data (${position.name})`); console.error(err); } } delete data.roles[d.position].availablePositions; delete data.roles[d.position].position; return data; }
async getData(champion, preferredPosition, gameMode) { const res = await rp(`${this.base}${this.getGameMode(gameMode)}/champion/${champion.key.toLowerCase()}`); const d = this._scrape(res, champion, preferredPosition, gameMode); let data = { roles: { [d.position]: d } }; if (['ARAM', 'TWISTED_TREELINE', 'URF'].includes(gameMode)) { delete data.roles[gameMode].position; return data; } for (const position of d.availablePositions) { console.log(2, `[ProviderHandler] [METAsrc] Gathering data (${position.name})`); try { data.roles[position.position] = this._scrape(await rp(`${this.base}${this.getGameMode(gameMode)}/champion/${champion.key.toLowerCase()}/${position.metasrcPosition}`), champion, position.position, gameMode); } catch(err) { console.log(`[ProviderHandler] [METAsrc] Something happened while gathering data (${position.name})`); console.error(err); } } Object.values(data.roles).forEach(role => { delete role.availablePositions; delete role.position; }); return data; }
async getData(champion, preferredPosition, gameMode) { const res = await rp(`${this.base}champion/${champion.key}`); const d = this._scrape(res, champion, gameMode, true); let data = { roles: { [d.position]: d } }; for (const position of d.availablePositions) { console.log(2, `[Champion.GG] Gathering data (${position.name})`); try { data.roles[position.name] = this._scrape(await rp(position.link), champion, gameMode); delete data.roles[position.name].position; } catch(err) { console.log(`[ProviderHandler] [Champion.GG] Something happened while gathering data (${position.name})`); if (err.toString().includes('Data is outdated')) { throw UI.error('providers-error-outdated', this.name); } else console.error(err); } } delete data.roles[d.position].availablePositions; delete data.roles[d.position].position; return data; }