UNPKG

@accounter/modern-poalim-scraper

Version:
46 lines 2.19 kB
import { chromium } from 'playwright'; import { getAccounts } from './accounts.js'; import { getCreditCardTransactions } from './credit-card-transactions.js'; import { getCreditCards } from './credit-cards.js'; import { getForeignTransactions } from './foreign-transactions.js'; import { getIlsTransactions } from './ils-transactions.js'; import { loginAndGetUserData } from './login-fetch-user-data.js'; const DEFAULT_OPTIONS = { fetchIlsTransactions: true, fetchForeignTransactions: true, fetchCreditCards: true, fetchInvestments: true, validateSchema: false, }; export async function otsarHahayal(credentials, userOptions) { const now = new Date(); const fromDate = new Date(now.getFullYear(), now.getMonth() - 24, now.getDate() + 1).toISOString(); const options = { ...DEFAULT_OPTIONS, fromDate, toDate: now.toISOString(), ...userOptions }; const browser = await chromium.launch({ headless: options.headless === true }); const context = await browser.newContext({ acceptDownloads: true }); const page = await context.newPage(); // after 5 min close the browser to prevent hanging in case of unforeseen issues const timeoutId = setTimeout(async () => { console.warn('Otsar Hahayal scraper timed out after 5 minutes. Closing browser.'); await browser.close(); }, 5 * 60 * 1000); const headers = await loginAndGetUserData(credentials, page); return { // accounts getAccounts: async () => getAccounts(page, options), // local transactions ilsTransactions: async (account) => getIlsTransactions(page, headers, options, account), // foreign transactions foreignTransactions: async () => getForeignTransactions(page, options), // credit cards getCreditCards: async () => getCreditCards(page, options, headers), // credit card transactions getCreditCardTransactions: async (card, month) => getCreditCardTransactions(page, headers, options, card, month), // investments close: async () => { clearTimeout(timeoutId); await browser.close(); }, }; } //# sourceMappingURL=index.js.map