Skip to content

Commit

Permalink
feat #24: Update Daily scrapper to fetch prices
Browse files Browse the repository at this point in the history
  • Loading branch information
BonDoQ committed Mar 29, 2024
1 parent 3551038 commit bbfbae0
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
2 changes: 2 additions & 0 deletions cron/src/futbin-scrapper/helpers/directus.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ export interface DPlayer {
league_id?: number;
card_id?: number;
img?: string;
pc_price?: number;
ps_price?: number;
overall_pace?: number;
overall_shooting?: number;
overall_passing?: number;
Expand Down
19 changes: 19 additions & 0 deletions cron/src/futbin-scrapper/helpers/player-html-mapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,3 +159,22 @@ export const KeeperHTMLScrapper: IPlayerMapper<DPlayer> = {
gk_overall_speed: basicParser('#main-speed-val-0 .stat_val', 'number'),
gk_overall_positioning: basicParser('#main-gkpositioning-val-0 .stat_val', 'number'),
};

export const getPlayerPrice = async (id: number) => {
const headers = {
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-US,en;q=0.9',
Connection: 'keep-alive',
'User-Agent': 'Futbin/6.2.4 (iPhone; iOS 17.4; Scale/3.00)',
};

const url = `https://www.futbin.com/24/getTp?pid=${id}&type=player`;
const res = await fetch(url, { headers });

const { data } = await res.json();

return {
ps: data.p[0],
pc: data.p[2],
};
};
7 changes: 6 additions & 1 deletion cron/src/futbin-scrapper/player-html-scrapper.service.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Injectable, Logger } from '@nestjs/common';
import { webkit } from 'playwright';
import prettyHrtime from 'pretty-hrtime';
import { KeeperHTMLScrapper, PlayerHTMLScrapper } from './helpers/player-html-mapper';
import { KeeperHTMLScrapper, PlayerHTMLScrapper, getPlayerPrice } from './helpers/player-html-mapper';
import { scrapSleep } from './helpers/utils';
import { DirectusService } from './directus.service';
import { DPlayer } from './helpers/directus.schema';
Expand Down Expand Up @@ -34,6 +34,11 @@ export class PlayerHTMLScrapperService {
}
}

const prices = await getPlayerPrice(playerId);

player['ps_price'] = prices.ps;
player['pc_price'] = prices.pc;

return await this.directusService.enrichPlayer(playerId, { id: playerId, ...player });
} catch (error) {
this.logger.error(`Error enriching player ${playerId}`, error);
Expand Down

0 comments on commit bbfbae0

Please sign in to comment.