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.

39 lines
1023 B

const { pathOr, hasPath } = require('ramda');
const parseArgs = require('minimist');
const process = require('process');
const event_url = (event_id) => `https://www.facebook.com/events/${event_id}`;
const page_url = (page_id) => `https://www.facebook.com/${page_id}`;
const page_events_url = (page_id) => page_url(page_id) + '/events/';
export const parse_args = (args) => {
const argv = parseArgs(args);
const has_help_param =
hasPath(['h'], argv) || hasPath(['help'], argv) || hasPath(['?'], argv);
if (has_help_param) {
process.exit(1);
}
const away_empty_strings = (str) => str.length !== 0;
const page_id_to_page_events_url = page_events_url;
const parse_param = (param) =>
pathOr('', [param], argv)
.split(',')
.filter(away_empty_strings)
.map(page_id_to_page_events_url);
const events = pathOr(null, ['events'], argv);
return {
page_ids: [
...parse_param('page'),
...parse_param('p'),
...parse_param('pages'),
],
events,
};
};