From 9e8dc500d979314d90431f909a067d092dfa2f32 Mon Sep 17 00:00:00 2001 From: gigobyte Date: Tue, 2 Mar 2021 18:37:43 +0200 Subject: [PATCH] Fix TBD teams in getEvent --- src/endpoints/getEvent.ts | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/endpoints/getEvent.ts b/src/endpoints/getEvent.ts index 3718ce4f..35f388d5 100644 --- a/src/endpoints/getEvent.ts +++ b/src/endpoints/getEvent.ts @@ -1,4 +1,4 @@ -import { FullEvent } from '../models/FullEvent' +import { EventTeam, FullEvent } from '../models/FullEvent' import { HLTVConfig } from '../config' import { fetchPage, @@ -9,6 +9,8 @@ import { import { popSlashSource } from '../utils/parsing' import { checkForRateLimiting } from '../utils/checkForRateLimiting' +const notNull = (x: T | null): x is T => x !== null + export const getEvent = (config: HLTVConfig) => async ({ id }: { @@ -34,16 +36,25 @@ export const getEvent = (config: HLTVConfig) => async ({ code: popSlashSource($('img.flag'))!.split('.')[0] } - const teams = toArray($('.team-box')).map((teamEl) => ({ - name: teamEl.find('.logo').attr('title')!, - id: - Number(teamEl.find('.team-name a').attr('href')!.split('/')[2]) || - undefined, - reasonForParticipation: teamEl.find('.sub-text').text().trim() || undefined, - rankDuringEvent: - Number(teamEl.find('.event-world-rank').text().replace('#', '')) || - undefined - })) + const teams: EventTeam[] = toArray($('.team-box')) + .map((teamEl) => { + if (!teamEl.find('.team-name a').length) { + return null + } + + return { + name: teamEl.find('.logo').attr('title')!, + id: + Number(teamEl.find('.team-name a').attr('href')!.split('/')[2]) || + undefined, + reasonForParticipation: + teamEl.find('.sub-text').text().trim() || undefined, + rankDuringEvent: + Number(teamEl.find('.event-world-rank').text().replace('#', '')) || + undefined + } + }) + .filter(notNull) const relatedEvents = toArray($('.related-event')).map((eventEl) => ({ name: eventEl.find('.event-name').text(),