UNPKG

n8n-nodes-dataforseo

Version:

DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.

442 lines 21.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPages = getPages; exports.getPagesByResource = getPagesByResource; exports.getResources = getResources; exports.getDuplicateTags = getDuplicateTags; exports.getDuplicateContent = getDuplicateContent; exports.getLinks = getLinks; exports.getRedirectChains = getRedirectChains; exports.getNonIndexablePages = getNonIndexablePages; exports.getWaterfall = getWaterfall; exports.getKeywordDensity = getKeywordDensity; exports.getMicrodata = getMicrodata; exports.getRawHtml = getRawHtml; exports.getPageScreenshot = getPageScreenshot; exports.getParsedContent = getParsedContent; exports.getLiveParsedContent = getLiveParsedContent; exports.getLiveInstantPages = getLiveInstantPages; exports.getLighthouseAuditResults = getLighthouseAuditResults; exports.getLiveLighthouseAuditResults = getLiveLighthouseAuditResults; const n8n_workflow_1 = require("n8n-workflow"); const generalFunctions_1 = require("../../../functions/generalFunctions"); const dataForSeoRequest_1 = require("../../../functions/dataForSeoRequest"); async function getResponse(ef, i, options) { const priorityUrls = ef.getNodeParameter('priority_urls', i); const parsedPriorityUrls = (0, generalFunctions_1.parseMultiOptionItems)(priorityUrls); const allowedSubdomains = ef.getNodeParameter('allowed_subdomains', i); const parsedAllowedSubdomains = (0, generalFunctions_1.parseMultiOptionItems)(allowedSubdomains); const disallowedSubdomains = ef.getNodeParameter('disallowed_subdomains', i); const parsedDisallowedSubdomains = (0, generalFunctions_1.parseMultiOptionItems)(disallowedSubdomains); const checkSpellExeptions = ef.getNodeParameter('check_spell_exceptions', i); const parsedCheckSpellExeptions = (0, generalFunctions_1.parseMultiOptionItems)(checkSpellExeptions); const checkTreshold = ef.getNodeParameter('checks_threshold', i); const parsedCheckTreshold = (0, generalFunctions_1.parseCheckThreshold)(checkTreshold); const disablePageChecks = ef.getNodeParameter('disable_page_checks', i); const parsedDisablePageChecks = (0, generalFunctions_1.parseMultiOptionItems)(disablePageChecks); const disableSitewideChecks = ef.getNodeParameter('disable_sitewide_checks', i); const params = { url: '/on_page/task_post', body: [{ target: ef.getNodeParameter('target', i), max_crawl_pages: ef.getNodeParameter('max_crawl_pages', i), start_url: ef.getNodeParameter('start_url', i) || null, force_sitewide_checks: ef.getNodeParameter('force_sitewide_checks', i), priority_urls: parsedPriorityUrls.length ? parsedPriorityUrls : null, max_crawl_depth: ef.getNodeParameter('max_crawl_depth', i) || null, crawl_delay: ef.getNodeParameter('crawl_delay', i) || null, store_raw_html: ef.getNodeParameter('store_raw_html', i), enable_content_parsing: ef.getNodeParameter('enable_content_parsing', i), support_cookies: ef.getNodeParameter('support_cookies', i), accept_language: ef.getNodeParameter('accept_language', i) || null, custom_robots_txt: ef.getNodeParameter('custom_robots_txt', i) || null, robots_txt_merge_mode: ef.getNodeParameter('robots_txt_merge_mode', i) || null, custom_user_agent: ef.getNodeParameter('custom_user_agent', i) || null, browser_preset: ef.getNodeParameter('browser_preset', i) || null, browser_screen_width: ef.getNodeParameter('browser_screen_width', i) || null, browser_screen_height: ef.getNodeParameter('browser_screen_height', i) || null, browser_screen_scale_factor: ef.getNodeParameter('browser_screen_scale_factor', i) || null, respect_sitemap: ef.getNodeParameter('respect_sitemap', i), custom_sitemap: ef.getNodeParameter('custom_sitemap', i) || null, crawl_sitemap_only: ef.getNodeParameter('crawl_sitemap_only', i), load_resources: ef.getNodeParameter('load_resources', i), enable_www_redirect_check: ef.getNodeParameter('enable_www_redirect_check', i), enable_javascript: ef.getNodeParameter('enable_javascript', i), enable_xhr: ef.getNodeParameter('enable_xhr', i), enable_browser_rendering: ef.getNodeParameter('enable_browser_rendering', i), disable_cookie_popup: ef.getNodeParameter('disable_cookie_popup', i), custom_js: ef.getNodeParameter('custom_js', i) || null, validate_micromarkup: ef.getNodeParameter('validate_micromarkup', i), allow_subdomains: ef.getNodeParameter('allow_subdomains', i), allowed_subdomains: parsedAllowedSubdomains.length ? parsedAllowedSubdomains : null, disallowed_subdomains: parsedDisallowedSubdomains.length ? parsedDisallowedSubdomains : null, check_spell: ef.getNodeParameter('check_spell', i), check_spell_language: ef.getNodeParameter('check_spell_language', i) || null, check_spell_exceptions: parsedCheckSpellExeptions.length ? parsedCheckSpellExeptions : null, calculate_keyword_density: ef.getNodeParameter('calculate_keyword_density', i), checks_threshold: Object.keys(parsedCheckTreshold).length ? parsedCheckTreshold : null, disable_sitewide_checks: disableSitewideChecks.length ? disableSitewideChecks : null, disable_page_checks: parsedDisablePageChecks.length ? parsedDisablePageChecks : null, switch_pool: ef.getNodeParameter('switch_pool', i), return_despite_timeout: ef.getNodeParameter('return_despite_timeout', i) }] }; let responseData = await (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); const taskStatus = responseData['tasks'][0]['status_code']; if (taskStatus !== 20100) { return responseData; } const taskId = responseData['tasks'][0]['id']; options.body[0].id = taskId; let responseReceived = false; let j = 0; let statusCode; while (j < 100 || !responseReceived) { (0, n8n_workflow_1.sleep)(200); responseData = await (0, dataForSeoRequest_1.dataForSeoRequest)(ef, options); statusCode = responseData['tasks'][0]['status_code']; responseReceived = statusCode != 40601 && statusCode != 40602 && statusCode != 20100; j++; } return responseData; } async function getPages(ef, i) { const filters = ef.getNodeParameter('filters', i); let parsedFilters = []; try { parsedFilters = (0, generalFunctions_1.parseFilters)(filters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const orderBy = ef.getNodeParameter('order_by', i); const parsedOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy); if (parsedOrderBy.length > 3) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than three sorting rules"); } const params = { url: '/on_page/pages', body: [{ limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null, filters: parsedFilters.length ? parsedFilters : null, order_by: parsedOrderBy.length ? parsedOrderBy : null }] }; return getResponse(ef, i, params); } async function getPagesByResource(ef, i) { const filters = ef.getNodeParameter('filters', i); let parsedFilters = []; try { parsedFilters = (0, generalFunctions_1.parseFilters)(filters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const orderBy = ef.getNodeParameter('order_by', i); const parsedOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy); if (parsedOrderBy.length > 3) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than three sorting rules"); } const params = { url: '/on_page/pages_by_resource', body: [{ url: ef.getNodeParameter('url_resource', i), limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null, filters: parsedFilters.length ? parsedFilters : null, order_by: parsedOrderBy.length ? parsedOrderBy : null }] }; return getResponse(ef, i, params); } async function getResources(ef, i) { const filters = ef.getNodeParameter('filters', i); let parsedFilters = []; try { parsedFilters = (0, generalFunctions_1.parseFilters)(filters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const orderBy = ef.getNodeParameter('order_by', i); const parsedOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy); if (parsedOrderBy.length > 3) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than three sorting rules"); } const relevantPagesFilters = ef.getNodeParameter('relevant_pages_filters', i); let parsedRelevantPagesFilters = []; try { parsedRelevantPagesFilters = (0, generalFunctions_1.parseFilters)(relevantPagesFilters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const params = { url: '/on_page/resources', body: [{ url: ef.getNodeParameter('url', i) || null, limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null, filters: parsedFilters.length ? parsedFilters : null, relevant_pages_filters: parsedRelevantPagesFilters.length ? parsedRelevantPagesFilters : null, order_by: parsedOrderBy.length ? parsedOrderBy : null }] }; return getResponse(ef, i, params); } async function getDuplicateTags(ef, i) { const params = { url: '/on_page/duplicate_tags', body: [{ type: ef.getNodeParameter('type', i), accumulator: ef.getNodeParameter('accumulator', i) || null, limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null }] }; return getResponse(ef, i, params); } async function getDuplicateContent(ef, i) { const params = { url: '/on_page/duplicate_content', body: [{ url: ef.getNodeParameter('url_required', i), similarity: ef.getNodeParameter('similarity', i) || null, limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null }] }; return getResponse(ef, i, params); } async function getLinks(ef, i) { const filters = ef.getNodeParameter('filters', i); let parsedFilters = []; try { parsedFilters = (0, generalFunctions_1.parseFilters)(filters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const params = { url: '/on_page/links', body: [{ page_from: ef.getNodeParameter('page_from', i) || null, page_to: ef.getNodeParameter('page_to', i) || null, limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null, filters: parsedFilters.length ? parsedFilters : null, }] }; return getResponse(ef, i, params); } async function getRedirectChains(ef, i) { const filters = ef.getNodeParameter('filters', i); let parsedFilters = []; try { parsedFilters = (0, generalFunctions_1.parseFilters)(filters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const params = { url: '/on_page/redirect_chains', body: [{ url: ef.getNodeParameter('url', i) || null, limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null, filters: parsedFilters.length ? parsedFilters : null, }] }; return getResponse(ef, i, params); } async function getNonIndexablePages(ef, i) { const filters = ef.getNodeParameter('filters', i); let parsedFilters = []; try { parsedFilters = (0, generalFunctions_1.parseFilters)(filters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const params = { url: '/on_page/non_indexable', body: [{ limit: ef.getNodeParameter('limit', i) || null, offset: ef.getNodeParameter('offset', i) || null, filters: parsedFilters.length ? parsedFilters : null, }] }; return getResponse(ef, i, params); } async function getWaterfall(ef, i) { const params = { url: '/on_page/waterfall', body: [{ url: ef.getNodeParameter('url_required', i) }] }; return getResponse(ef, i, params); } async function getKeywordDensity(ef, i) { const filters = ef.getNodeParameter('filters', i); let parsedFilters = []; try { parsedFilters = (0, generalFunctions_1.parseFilters)(filters); } catch (e) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value"); } const orderBy = ef.getNodeParameter('order_by', i); const parsedOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy); if (parsedOrderBy.length > 3) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than three sorting rules"); } const params = { url: '/on_page/keyword_density', body: [{ url: ef.getNodeParameter('url', i) || null, keyword_length: ef.getNodeParameter('keyword_length', i), limit: ef.getNodeParameter('limit', i) || null, filters: parsedFilters.length ? parsedFilters : null, order_by: parsedOrderBy.length ? parsedOrderBy : null }] }; return getResponse(ef, i, params); } async function getMicrodata(ef, i) { const params = { url: '/on_page/microdata', body: [{ url: ef.getNodeParameter('url_required', i) }] }; return getResponse(ef, i, params); } async function getRawHtml(ef, i) { const params = { url: '/on_page/raw_html', body: [{ url: ef.getNodeParameter('url_required', i) }] }; return getResponse(ef, i, params); } async function getPageScreenshot(ef, i) { const params = { url: '/on_page/page_screenshot', body: [{ url: ef.getNodeParameter('url_required', i), accept_language: ef.getNodeParameter('accept_language', i) || null, custom_user_agent: ef.getNodeParameter('custom_user_agent', i) || null, browser_preset: ef.getNodeParameter('browser_preset', i) || null, browser_screen_width: ef.getNodeParameter('browser_screen_width', i) || null, browser_screen_height: ef.getNodeParameter('browser_screen_height', i) || null, browser_screen_scale_factor: ef.getNodeParameter('browser_screen_scale_factor', i) || null, full_page_screenshot: ef.getNodeParameter('full_page_screenshot', i), disable_cookie_popup: ef.getNodeParameter('disable_cookie_popup', i), switch_pool: ef.getNodeParameter('switch_pool', i), ip_pool_for_scan: ef.getNodeParameter('ip_pool_for_scan', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getParsedContent(ef, i) { const params = { url: '/on_page/content_parsing', body: [{ url: ef.getNodeParameter('url_required', i), markdown_view: ef.getNodeParameter('markdown_view', i) }] }; return getResponse(ef, i, params); } async function getLiveParsedContent(ef, i) { const params = { url: '/on_page/content_parsing/live', body: [{ url: ef.getNodeParameter('url_required', i), custom_user_agent: ef.getNodeParameter('custom_user_agent', i) || null, browser_preset: ef.getNodeParameter('browser_preset', i) || null, browser_screen_width: ef.getNodeParameter('browser_screen_width', i) || null, browser_screen_height: ef.getNodeParameter('browser_screen_height', i) || null, browser_screen_scale_factor: ef.getNodeParameter('browser_screen_scale_factor', i) || null, store_raw_html: ef.getNodeParameter('store_raw_html', i), disable_cookie_popup: ef.getNodeParameter('disable_cookie_popup', i), accept_language: ef.getNodeParameter('accept_language', i), enable_javascript: ef.getNodeParameter('enable_javascript', i), enable_browser_rendering: ef.getNodeParameter('enable_browser_rendering', i), enable_xhr: ef.getNodeParameter('enable_xhr', i), switch_pool: ef.getNodeParameter('switch_pool', i), ip_pool_for_scan: ef.getNodeParameter('ip_pool_for_scan', i) || null, markdown_view: ef.getNodeParameter('markdown_view', i) }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getLiveInstantPages(ef, i) { const checkTreshold = ef.getNodeParameter('checks_threshold', i); const parsedCheckTreshold = (0, generalFunctions_1.parseCheckThreshold)(checkTreshold); const params = { url: '/on_page/instant_pages', body: [{ url: ef.getNodeParameter('url_required', i), custom_user_agent: ef.getNodeParameter('custom_user_agent', i) || null, browser_preset: ef.getNodeParameter('browser_preset', i) || null, browser_screen_width: ef.getNodeParameter('browser_screen_width', i) || null, browser_screen_height: ef.getNodeParameter('browser_screen_height', i) || null, browser_screen_scale_factor: ef.getNodeParameter('browser_screen_scale_factor', i) || null, store_raw_html: ef.getNodeParameter('store_raw_html', i), accept_language: ef.getNodeParameter('accept_language', i), load_resources: ef.getNodeParameter('load_resources', i), enable_javascript: ef.getNodeParameter('enable_javascript', i), enable_browser_rendering: ef.getNodeParameter('enable_browser_rendering', i), disable_cookie_popup: ef.getNodeParameter('disable_cookie_popup', i), return_despite_timeout: ef.getNodeParameter('return_despite_timeout', i), enable_xhr: ef.getNodeParameter('enable_xhr', i), custom_js: ef.getNodeParameter('custom_js', i) || null, validate_micromarkup: ef.getNodeParameter('validate_micromarkup', i), check_spell: ef.getNodeParameter('check_spell', i), checks_threshold: Object.keys(parsedCheckTreshold).length ? parsedCheckTreshold : null, switch_pool: ef.getNodeParameter('switch_pool', i), ip_pool_for_scan: ef.getNodeParameter('ip_pool_for_scan', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getLighthouseAuditResults(ef, i) { const categories = ef.getNodeParameter('categories', i); const audits = ef.getNodeParameter('categories', i); const parsedAudits = (0, generalFunctions_1.parseMultiOptionItems)(audits); const params = { url: '/on_page/lighthouse/task_post', body: [{ url: ef.getNodeParameter('url_required', i), for_mobile: ef.getNodeParameter('for_mobile', i), categories: categories.length ? categories : null, audits: parsedAudits.length ? parsedAudits : null, version: ef.getNodeParameter('version', i) || null, language_name: ef.getNodeParameter('language_name', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoPOSTGETRequest)(ef, params, '/on_page/lighthouse/task_get/json/'); } async function getLiveLighthouseAuditResults(ef, i) { const categories = ef.getNodeParameter('categories', i); const audits = ef.getNodeParameter('categories', i); const parsedAudits = (0, generalFunctions_1.parseMultiOptionItems)(audits); const params = { url: '/on_page/lighthouse/live/json', body: [{ url: ef.getNodeParameter('url_required', i), for_mobile: ef.getNodeParameter('for_mobile', i), categories: categories.length ? categories : null, audits: parsedAudits.length ? parsedAudits : null, version: ef.getNodeParameter('version', i) || null, language_name: ef.getNodeParameter('language_name', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } //# sourceMappingURL=on_page.js.map