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
JavaScript
"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