From fcf6ee1884ddeef2f7c1500516c4d2d119f3ff65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Sverre=20Lien=20Sell=C3=A6g?= Date: Sun, 20 Mar 2022 18:49:11 +0100 Subject: [PATCH] simplify --- src/darma.mjs | 148 +++++++++++--------------------------------------- 1 file changed, 33 insertions(+), 115 deletions(-) diff --git a/src/darma.mjs b/src/darma.mjs index 8d5e085..fb89183 100644 --- a/src/darma.mjs +++ b/src/darma.mjs @@ -1,94 +1,40 @@ -import { hasPath, pathOr, props, last } from 'ramda'; import { do_request } from './facebook-request.mjs'; const sleep = (s) => new Promise((res) => setTimeout(res, s * 1000)); -const doPageEventsTabPastEventsCardRendererQuery = async ({ pageID }) => { +/// PageEventsTabPastEventsCardRendererQuery +export const past_render_query = async ({ pageID }) => { const doc_id = '4421910857857782'; - const renderer_query_result = await do_request(doc_id, { pageID }); - const page = pathOr( - null, - ['data', 'page', 'past_events'], - renderer_query_result - ); - - if (page === null) { - console.error('doPageEventsTabPastEventsCardRendererQuery returned null.'); - } - + const resp = await do_request(doc_id, { pageID }); + const page = resp?.data?.page?.past_events ?? null; return page; }; -const doPageEventsTabUpcomingEventsCardRendererQuery = async ({ pageID }) => { - const doc_id = '5182274978466320'; - const renderer_query_result = await do_request(doc_id, { pageID }); - const page = pathOr( - null, - ['data', 'page', 'upcoming_events'], - renderer_query_result - ); - - if (page === null) { - console.error( - 'doPageEventsTabUpcomingEventsCardRendererQuery returned null.' - ); - } - +/// PageEventsTabPastEventsCardPaginationQuery +export const past_pagination_query = async ({ pageID, cursor }) => { + const doc_id = '6953034388071359'; + const count = 9; + const resp = await do_request(doc_id, { pageID, cursor, count }); + const page = resp?.data?.page?.past_events ?? null; return page; }; -const doPageEventsTabPastEventsCardPaginationQuery = async ({ - pageID, - cursor -}) => { - const doc_id = '6953034388071359'; - let count = 9; - const renderer_query_result = await do_request(doc_id, { - pageID, - cursor, - count - }); - const page = pathOr( - null, - ['data', 'page', 'past_events'], - renderer_query_result - ); - - if (page === null) { - console.error( - 'doPageEventsTabPastEventsCardPaginationQuery returned null.' - ); - } - +/// PageEventsTabUpcomingEventsCardRendererQuery +export const upcoming_render_query = async ({ pageID }) => { + const doc_id = '5182274978466320'; + const resp = await do_request(doc_id, { pageID }); + const page = resp?.data?.page?.upcoming_events ?? null; return page; }; -const doPageEventsTabUpcomingEventsCardPaginationQuery = async ({ - pageID, - cursor -}) => { +// PageEventsTabUpcomingEventsCardPaginationQuery +export const upcoming_pagination_query = async ({ pageID, cursor }) => { const doc_id = '6985622308176123'; let count = 9; - const renderer_query_result = await do_request(doc_id, { - pageID, - cursor, - count - }); - const page = pathOr( - null, - ['data', 'page', 'upcoming_events'], - renderer_query_result - ); - - if (page === null) { - console.error( - 'doPageEventsTabUpcomingEventsCardPaginationQuery returned null.' - ); - } - + const resp = await do_request(doc_id, { pageID, cursor, count }); + const page = resp?.data?.page?.upcoming_events ?? null; return page; }; -// doPageEventsTabPastEventsCardPaginationQuery const get_page_events = async ({ pageID, get_past_events, @@ -97,7 +43,7 @@ const get_page_events = async ({ let past_events = []; if (get_past_events) { - const result = await doPageEventsTabPastEventsCardRendererQuery({ pageID }); + const result = await past_render_query({ pageID }); if (result !== null) { let { has_next_page, end_cursor: cursor } = result.page_info; @@ -105,16 +51,15 @@ const get_page_events = async ({ let { edges } = result; while (has_next_page) { sleep(2); - const paginationResult = - await doPageEventsTabPastEventsCardPaginationQuery({ - cursor, - pageID - }); + const paginationResult = await past_pagination_query({ + cursor, + pageID + }); if (paginationResult === null) { break; } edges = [...edges, ...paginationResult.edges]; - has_next_page = paginationResult.page_info.has_next_page; + has_next_page = paginationResult?.page_info?.has_next_page ?? false; cursor = paginationResult.page_info.end_cursor; } past_events = [...edges]; @@ -124,27 +69,23 @@ const get_page_events = async ({ let upcoming_events = []; if (get_upcoming_events) { - const result = await doPageEventsTabUpcomingEventsCardRendererQuery({ - pageID - }); + const result = await upcoming_render_query({ pageID }); if (result !== null) { upcoming_events = []; let { has_next_page, end_cursor: cursor } = result.page_info; let { edges } = result; while (has_next_page) { sleep(2); - const paginationResult = - await doPageEventsTabUpcomingEventsCardPaginationQuery({ - cursor, - pageID - }); + const paginationResult = await upcoming_pagination_query({ + cursor, + pageID + }); if (paginationResult === null) { break; } edges = [...edges, ...paginationResult.edges]; - - has_next_page = paginationResult.page_info.has_next_page; - cursor = paginationResult.page_info.end_cursor; + has_next_page = paginationResult?.page_info?.has_next_page ?? false; + cursor = paginationResult?.page_info?.end_cursor; } upcoming_events = [...edges]; } @@ -153,27 +94,4 @@ const get_page_events = async ({ return [...upcoming_events, ...past_events].map(({ node }) => node); }; -/// const events = { -/// edges: [ -/// { -/// node: { -/// __typename: "Event", -/// }, -/// cursor: -/// "AQHRC7ZNKEqDS75jWJfLUWromnLVgAOGzVAZE7c7CcKfoEaLCcXFSvhMvoxN8yk_Yq6fFMTWjuHjitD5sE1IzW68sw", -/// }, -/// ], -/// page_info: { -/// has_next_page: true, -/// end_cursor: -/// "AQHRAh7tKZowf3mdyxtYISP1LNVo45rFI8HJ4nT5SuVgl0NBUfZFslx5qy1eba3YXhdjJ-S2vfojcTGF4ygnt_DQiQ", -/// }, -/// }; - -(async () => { - const res = await get_page_events({ - pageID: '149127815110411', - get_upcoming_events: true - }); - console.log(res); -})(); +export default get_page_events;