This commit is contained in:
Tobias Klemp
2025-11-02 20:40:27 +01:00
commit e7bd070b3e
67 changed files with 3205 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
import { Effect } from 'effect'
import type { Page } from 'puppeteer'
import { CrawlerElementNotFoundError } from '../..'
const STOCK_LEVEL_BADGE_SELECTOR =
'.modellfilter_row > .modellfilter_head > .colored_label_wrapper'
export const getStockLevel = (page: Page) =>
Effect.gen(function* () {
return yield* Effect.tryPromise({
try: () =>
page.evaluate((STOCK_LEVEL_BADGE_SELECTOR) => {
const stockLevelBadge: HTMLDivElement | null = document.querySelector(
STOCK_LEVEL_BADGE_SELECTOR,
)
if (!stockLevelBadge) {
throw new Error('Could not find stock level')
}
return stockLevelBadge.innerText
}, STOCK_LEVEL_BADGE_SELECTOR),
catch: (cause) =>
new CrawlerElementNotFoundError({
message: `Could not parse stock level, ${cause}`,
cause,
}),
})
})