|
|
|
@ -9,7 +9,7 @@ const get_upcoming_events = pathOr( |
|
|
|
'data.page.upcoming_events'.split('.'), |
|
|
|
'data.page.upcoming_events'.split('.'), |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
const merge_edges = unionWith(eqBy(prop('id'))); |
|
|
|
const merge_edges = unionWith(eqBy(prop('event_id'))); |
|
|
|
|
|
|
|
|
|
|
|
const load_page = async (page, event_page) => { |
|
|
|
const load_page = async (page, event_page) => { |
|
|
|
try { |
|
|
|
try { |
|
|
|
@ -43,6 +43,31 @@ const event_ids = pathOr('', ['event_ids'], argv) |
|
|
|
.filter((str) => str.length !== 0) |
|
|
|
.filter((str) => str.length !== 0) |
|
|
|
.map((event_id) => `https://www.facebook.com/events/${event_id}`); |
|
|
|
.map((event_id) => `https://www.facebook.com/events/${event_id}`); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const get_city_name = (event) => |
|
|
|
|
|
|
|
pathOr('', 'event_place.city.contextual_name'.split('.'), event); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const get_event_host = (event) => |
|
|
|
|
|
|
|
pathOr('', 'event_place.contextual_name'.split('.'), event); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const edge_to_node = (edge) => edge.node; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const map_event = (edge) => { |
|
|
|
|
|
|
|
const event = edge.node; |
|
|
|
|
|
|
|
const ticket_url = pathOr('', ['event_buy_ticket_url'], event); |
|
|
|
|
|
|
|
const city = get_city_name(event); |
|
|
|
|
|
|
|
const host = get_event_host(event); |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
date: event.time_range, |
|
|
|
|
|
|
|
name: event.name, |
|
|
|
|
|
|
|
event_id: event.id, |
|
|
|
|
|
|
|
ticket_url, |
|
|
|
|
|
|
|
location: { |
|
|
|
|
|
|
|
host: host, |
|
|
|
|
|
|
|
location: city, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
(async () => { |
|
|
|
(async () => { |
|
|
|
const browser = await puppeteer.launch({ |
|
|
|
const browser = await puppeteer.launch({ |
|
|
|
headless: true, |
|
|
|
headless: true, |
|
|
|
@ -54,9 +79,10 @@ const event_ids = pathOr('', ['event_ids'], argv) |
|
|
|
for (let page_id of page_ids) { |
|
|
|
for (let page_id of page_ids) { |
|
|
|
const page = await browser.newPage(); |
|
|
|
const page = await browser.newPage(); |
|
|
|
const data = await load_page(page, page_id); |
|
|
|
const data = await load_page(page, page_id); |
|
|
|
const edges = data.edges.map((edge) => edge.node); |
|
|
|
const edges = data.edges.map(map_event); |
|
|
|
events = merge_edges(edges, events); |
|
|
|
events = merge_edges(edges, events); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
console.log(JSON.stringify(events)); |
|
|
|
console.log(JSON.stringify(events)); |
|
|
|
process.exit(); |
|
|
|
process.exit(); |
|
|
|
})(); |
|
|
|
})(); |
|
|
|
|