const { by_date, event_date_to_date_obj, merge_events, parse_args, read_previous_events, to_unique_events, } = require('./logic'); const { open_browser, get_page_events } = require('./browser'); const { events: event_file, get_past_events, get_upcoming_events, output, page_ids, headless, } = parse_args(process.argv.slice(2)); (async () => { let events = []; try { const browser = await open_browser({ headless }); for (let page_id of page_ids) { let page_events = []; page_events = await get_page_events( browser, page_id, get_upcoming_events, get_past_events, ); events = merge_events(events, page_events); } } catch (e) { console.error(e); } const previous_events = await read_previous_events(event_file); let all_events = events .reduce(to_unique_events, previous_events) .map(event_date_to_date_obj) .sort(by_date); if (output === null) { console.log(JSON.stringify(all_events)); process.exit(); } })();