You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
836 B
42 lines
836 B
const { |
|
by_date, |
|
event_date_to_date_obj, |
|
parse_args, |
|
read_previous_events, |
|
to_unique_events, |
|
write_events, |
|
} = require('./logic'); |
|
|
|
const { get_page_events } = require('./facebook-page-events'); |
|
|
|
const options = parse_args(process.argv.slice(2)); |
|
|
|
(async () => { |
|
let events = []; |
|
let prev_events = []; |
|
|
|
try { |
|
events = await get_page_events(options); |
|
prev_events = await read_previous_events(options.events); |
|
} catch (e) { |
|
console.error(e); |
|
} |
|
|
|
events = events |
|
.reduce(to_unique_events, prev_events) |
|
.map(event_date_to_date_obj) |
|
.sort(by_date); |
|
|
|
if (options.output === null) { |
|
console.log(JSON.stringify(events)); |
|
process.exit(); |
|
} |
|
|
|
try { |
|
await write_events(options.output, events); |
|
process.exit(); |
|
} catch (e) { |
|
console.error(e); |
|
process.exit(1); |
|
} |
|
})();
|
|
|