n8n-nodes-duckduckgo-search
Version:
Integrate DuckDuckGo search seamlessly into your n8n workflows with advanced pagination and human-like behavior. Get more results without hitting rate limits.
108 lines (107 loc) • 3.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.processError = exports.processVideoSearchResults = exports.processNewsSearchResults = exports.processImageSearchResults = exports.processWebSearchResults = void 0;
const utils_1 = require("./utils");
function processWebSearchResults(results, itemIndex) {
return results.map((item) => ({
json: {
title: (0, utils_1.decodeHtmlEntities)(item.title),
description: (0, utils_1.decodeHtmlEntities)(item.description),
url: item.url,
hostname: item.hostname,
favicon: item.icon,
sourceType: 'web',
},
pairedItem: {
item: itemIndex,
},
}));
}
exports.processWebSearchResults = processWebSearchResults;
function processImageSearchResults(results, itemIndex) {
return results.map((item) => ({
json: {
title: (0, utils_1.decodeHtmlEntities)(item.title),
description: null,
url: item.url,
imageUrl: item.image,
thumbnailUrl: item.thumbnail,
width: item.width,
height: item.height,
source: item.source,
sourceType: 'image',
},
pairedItem: {
item: itemIndex,
},
}));
}
exports.processImageSearchResults = processImageSearchResults;
function processNewsSearchResults(results, itemIndex) {
return results.map((item) => ({
json: {
title: (0, utils_1.decodeHtmlEntities)(item.title),
description: (0, utils_1.decodeHtmlEntities)(item.excerpt),
url: item.url,
imageUrl: item.image,
date: (0, utils_1.formatDate)(item.date),
relativeTime: item.relativeTime,
syndicate: item.syndicate,
isOld: item.isOld,
sourceType: 'news',
},
pairedItem: {
item: itemIndex,
},
}));
}
exports.processNewsSearchResults = processNewsSearchResults;
function processVideoSearchResults(results, itemIndex) {
return results.map((item) => ({
json: {
title: (0, utils_1.decodeHtmlEntities)(item.title),
description: (0, utils_1.decodeHtmlEntities)(item.description),
url: item.url,
imageUrl: item.image,
duration: item.duration,
published: item.published,
publishedOn: item.publishedOn,
publisher: item.publisher,
viewCount: item.viewCount,
sourceType: 'video',
},
pairedItem: {
item: itemIndex,
},
}));
}
exports.processVideoSearchResults = processVideoSearchResults;
function processError(error, itemData, itemIndex, debug = false, operation, options) {
const errorMessage = error.message || 'Unknown error occurred';
const errorObject = {
...itemData,
success: false,
error: errorMessage,
timestamp: new Date().toISOString(),
};
if (operation) {
errorObject.operation = operation;
}
if (debug) {
errorObject.errorDetails = {
stack: error.stack,
name: error.name,
cause: error.cause,
};
if (options) {
errorObject.requestOptions = options;
}
}
return {
json: errorObject,
pairedItem: {
item: itemIndex,
},
};
}
exports.processError = processError;