n8n-nodes-tripadvisor-reviews 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +187 -0
  3. package/dist/credentials/ApifyApi.credentials.d.ts +10 -0
  4. package/dist/credentials/ApifyApi.credentials.js +36 -0
  5. package/dist/credentials/ApifyApi.credentials.js.map +1 -0
  6. package/dist/credentials/ApifyOAuth2Api.credentials.d.ts +9 -0
  7. package/dist/credentials/ApifyOAuth2Api.credentials.js +66 -0
  8. package/dist/credentials/ApifyOAuth2Api.credentials.js.map +1 -0
  9. package/dist/docs/actions.png +0 -0
  10. package/dist/docs/actor-subtitle.png +0 -0
  11. package/dist/docs/auth.png +0 -0
  12. package/dist/docs/node-description.png +0 -0
  13. package/dist/docs/run-actor.png +0 -0
  14. package/dist/docs/trigger.png +0 -0
  15. package/dist/docs/workflow.png +0 -0
  16. package/dist/icons/apify.svg +5 -0
  17. package/dist/nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.node.d.ts +13 -0
  18. package/dist/nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.node.js +88 -0
  19. package/dist/nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.node.js.map +1 -0
  20. package/dist/nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.node.json +38 -0
  21. package/dist/nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.properties.d.ts +4 -0
  22. package/dist/nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.properties.js +371 -0
  23. package/dist/nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.properties.js.map +1 -0
  24. package/dist/nodes/ApifyTripadvisorReviews/helpers/executeActor.d.ts +5 -0
  25. package/dist/nodes/ApifyTripadvisorReviews/helpers/executeActor.js +68 -0
  26. package/dist/nodes/ApifyTripadvisorReviews/helpers/executeActor.js.map +1 -0
  27. package/dist/nodes/ApifyTripadvisorReviews/helpers/genericFunctions.d.ts +10 -0
  28. package/dist/nodes/ApifyTripadvisorReviews/helpers/genericFunctions.js +90 -0
  29. package/dist/nodes/ApifyTripadvisorReviews/helpers/genericFunctions.js.map +1 -0
  30. package/dist/nodes/ApifyTripadvisorReviews/logo.svg +5 -0
  31. package/dist/package.json +61 -0
  32. package/dist/tsconfig.tsbuildinfo +1 -0
  33. package/package.json +61 -0
package/LICENSE.md ADDED
@@ -0,0 +1,19 @@
1
+ Copyright 2022 n8n
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,187 @@
1
+ # n8n Nodes - Apify Actor Template
2
+
3
+ This template converts Apify Actors into n8n community nodes. The generation script reads your Actor's input schema and creates the node package structure, which you can then customize and publish.
4
+ Simply provide an Actor ID, and the script generates a complete n8n community node package using your Actor's input schema—ready to customize and publish.
5
+
6
+ [Apify](https://apify.com) is a platform for building, deploying, and publishing web automation tools called Actors, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform that connects various services and APIs.
7
+
8
+ ---
9
+
10
+ ## Table of Contents
11
+
12
+ - [Setup](#setup)
13
+ - [Prerequisites](#️-prerequisites)
14
+ - [1. Generate Your Node](#1-generate-your-node)
15
+ - [2. Customize Your Node](#2-customize-your-node)
16
+ - [Actor schema constants](#actor-schema-constants)
17
+ - [Node icon](#node-icon)
18
+ - [Subtitle](#subtitle)
19
+ - [Node description](#node-description)
20
+ - [AI tool result filtering](#ai-tool-result-filtering)
21
+ - [Node discoverability](#node-discoverability)
22
+ - [Development](#development)
23
+ - [Getting help](#getting-help)
24
+
25
+ ## Setup
26
+
27
+ ### ⚙️ Prerequisites
28
+
29
+ - Node.js v23.11.1 or higher
30
+ - A valid Apify Actor ID from the [Apify Store](https://apify.com/store)
31
+
32
+ ---
33
+
34
+ ### 1. Generate Your Node
35
+
36
+ Install dependencies:
37
+
38
+ ```bash
39
+ npm install
40
+ ```
41
+
42
+ Run the generation script:
43
+
44
+ ```bash
45
+ npm run create-actor-app
46
+ ```
47
+
48
+ When prompted, enter your Actor ID. Find this in your Actor's console URL, for example, if your Actor page is `https://console.apify.com/actors/aYG0l9s7dbB7j3gbS/input`, the Actor ID is `aYG0l9s7dbB7j3gbS`.
49
+
50
+ The script fetches your Actor's metadata and input schema, generates node files with proper naming, converts Actor input fields into n8n node parameters, and creates all necessary boilerplate code.
51
+
52
+ Test the generated node:
53
+
54
+ ```bash
55
+ npm run build
56
+ npm run dev
57
+ ```
58
+
59
+ ---
60
+
61
+ ### 2. Customize Your Node
62
+
63
+ After generation, your node files will be located in:
64
+ ```
65
+ nodes/Apify<YourActorName>/
66
+ ```
67
+
68
+ For example, if you converted the **Website Content Crawler** Actor, the folder will be:
69
+ ```
70
+ nodes/ApifyWebsiteContentCrawler/
71
+ ```
72
+
73
+ #### Customization
74
+
75
+ The generated code includes five sections labeled with `SNIPPET` comments. Search for `SNIPPET` in your IDE to locate them quickly.
76
+
77
+ ##### Actor schema constants
78
+
79
+ Location: `nodes/Apify{YourActorName}/Apify{YourActorName}.node.ts`
80
+
81
+ The script generates these constants from your Actor's metadata:
82
+
83
+ ```typescript
84
+ export const ACTOR_ID = 'aYG0l9s7dbB7j3gbS'
85
+ export const CLASS_NAME = 'ApifyWebsiteContentCrawler'
86
+ export const DISPLAY_NAME = 'Apify Website Content Crawler'
87
+ export const DESCRIPTION = ''
88
+ ```
89
+
90
+ > **Tip:** Change `DISPLAY_NAME` or `DESCRIPTION` to adjust how your node appears in the n8n interface.
91
+
92
+ ---
93
+
94
+ ##### Node icon
95
+
96
+ Location: `nodes/Apify{YourActorName}/Apify{YourActorName}.node.ts`
97
+
98
+ The default configuration uses the Apify logo:
99
+
100
+ ```typescript
101
+ icon: 'file:logo.svg'
102
+ ```
103
+
104
+ Replace the SVG files in the node directory with your own branding.
105
+
106
+ ---
107
+
108
+ ##### Subtitle
109
+
110
+ Location: `nodes/Apify{YourActorName}/Apify{YourActorName}.node.ts`
111
+
112
+ The subtitle appears beneath your node in n8n workflows:
113
+
114
+ ```typescript
115
+ subtitle: 'Run Scraper',
116
+ ```
117
+
118
+ ![Actor Subtitle](./docs/actor-subtitle.png)
119
+
120
+ ---
121
+
122
+ ##### Node description
123
+
124
+ Location: `nodes/Apify{YourActorName}/Apify{YourActorName}.node.ts`
125
+
126
+ This description appears in n8n's node browser:
127
+
128
+ ```typescript
129
+ description: DESCRIPTION,
130
+ ```
131
+
132
+ ![Apify Node Description](./docs/node-description.png)
133
+
134
+ ---
135
+
136
+ ##### AI tool result filtering
137
+
138
+ Location: `nodes/Apify{YourActorName}/helpers/genericFunctions.ts`
139
+
140
+ When your node runs in AI agent workflows, reduce token usage by filtering the returned data:
141
+
142
+ ```typescript
143
+ if (isUsedAsAiTool(this.getNode().type)) {
144
+ results = results.map((item: any) => ({ markdown: item.markdown }));
145
+ }
146
+ ```
147
+
148
+ AI agents perform better with clean, focused data that takes up less context.
149
+
150
+ ---
151
+
152
+ #### Node discoverability
153
+
154
+ The `Apify{YourActorName}.node.json` file controls where your node appears in n8n:
155
+
156
+ ```json
157
+ {
158
+ "categories": ["Data & Storage", "Marketing & Content"],
159
+ "alias": ["crawler", "scraper", "website", "content"]
160
+ }
161
+ ```
162
+
163
+ Adjust `categories` to match your Actor's purpose and add relevant search keywords to `alias`.
164
+
165
+ The template includes pre-configured authentication in the `credentials/` directory. Users running n8n locally provide their Apify API token. Users on n8n cloud can authenticate via OAuth2.
166
+
167
+ ---
168
+
169
+ ## Development
170
+
171
+ Start n8n with your custom node:
172
+
173
+ ```bash
174
+ npm run dev
175
+ ```
176
+
177
+ This launches n8n at `http://localhost:5678` with hot reloading enabled. Changes to your node files automatically refresh.
178
+
179
+ ## Getting help
180
+
181
+ - [Apify API documentation](https://docs.apify.com)
182
+ - [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
183
+ - [n8n community](https://community.n8n.io/)
184
+
185
+ ---
186
+
187
+ > **Before publishing:** Update placeholder values in [package.json](package.json) (AUTHOR_NAME, AUTHOR_EMAIL, PACKAGE_DESCRIPTION) with your information.
@@ -0,0 +1,10 @@
1
+ import type { IAuthenticateGeneric, Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class ApifyApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ icon: Icon;
7
+ properties: INodeProperties[];
8
+ authenticate: IAuthenticateGeneric;
9
+ test: ICredentialTestRequest;
10
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApifyApi = void 0;
4
+ class ApifyApi {
5
+ constructor() {
6
+ this.name = 'apifyApi';
7
+ this.displayName = 'Apify API';
8
+ this.documentationUrl = 'https://docs.apify.com/platform/integrations/api#api-token';
9
+ this.icon = "file:../nodes/ApifyTripadvisorReviews/logo.svg";
10
+ this.properties = [
11
+ {
12
+ displayName: 'API Key',
13
+ name: 'apiKey',
14
+ type: 'string',
15
+ typeOptions: { password: true },
16
+ default: '',
17
+ },
18
+ ];
19
+ this.authenticate = {
20
+ type: 'generic',
21
+ properties: {
22
+ headers: {
23
+ Authorization: '=Bearer {{$credentials.apiKey}}',
24
+ },
25
+ },
26
+ };
27
+ this.test = {
28
+ request: {
29
+ method: 'GET',
30
+ url: 'https://api.apify.com/v2/me',
31
+ },
32
+ };
33
+ }
34
+ }
35
+ exports.ApifyApi = ApifyApi;
36
+ //# sourceMappingURL=ApifyApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApifyApi.credentials.js","sourceRoot":"","sources":["../../credentials/ApifyApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAQ;IAArB;QACC,SAAI,GAAG,UAAU,CAAC;QAElB,gBAAW,GAAG,WAAW,CAAC;QAE1B,qBAAgB,GAAG,4DAA4D,CAAC;QAEhF,SAAI,GAAS,gDAAgD,CAAA;QAE7D,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;aACX;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAKF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,6BAA6B;aAClC;SACD,CAAC;IACH,CAAC;CAAA;AArCD,4BAqCC"}
@@ -0,0 +1,9 @@
1
+ import type { Icon, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class ApifyOAuth2Api implements ICredentialType {
3
+ name: string;
4
+ extends: string[];
5
+ displayName: string;
6
+ icon: Icon;
7
+ documentationUrl: string;
8
+ properties: INodeProperties[];
9
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApifyOAuth2Api = void 0;
4
+ const scopes = ['profile', 'full_api_access'];
5
+ class ApifyOAuth2Api {
6
+ constructor() {
7
+ this.name = 'apifyOAuth2Api';
8
+ this.extends = ['oAuth2Api'];
9
+ this.displayName = 'Apify OAuth2 API';
10
+ this.icon = "file:../nodes/ApifyTripadvisorReviews/logo.svg";
11
+ this.documentationUrl = 'https://docs.apify.com/api/v2';
12
+ this.properties = [
13
+ {
14
+ displayName: 'Grant Type',
15
+ name: 'grantType',
16
+ type: 'hidden',
17
+ default: 'pkce',
18
+ },
19
+ {
20
+ displayName: 'Authorization URL',
21
+ name: 'authUrl',
22
+ type: 'hidden',
23
+ default: 'https://console.apify.com/authorize/oauth',
24
+ },
25
+ {
26
+ displayName: 'Access Token URL',
27
+ name: 'accessTokenUrl',
28
+ type: 'hidden',
29
+ default: 'https://console-backend.apify.com/oauth/apps/token',
30
+ },
31
+ {
32
+ displayName: 'Scope',
33
+ name: 'scope',
34
+ type: 'hidden',
35
+ default: `${scopes.join(' ')}`,
36
+ },
37
+ {
38
+ displayName: 'Auth URI Query Parameters',
39
+ name: 'authQueryParameters',
40
+ type: 'hidden',
41
+ default: '',
42
+ },
43
+ {
44
+ displayName: 'Authentication',
45
+ name: 'authentication',
46
+ type: 'hidden',
47
+ default: 'header',
48
+ },
49
+ {
50
+ displayName: 'Client ID',
51
+ name: 'clientId',
52
+ type: 'hidden',
53
+ default: '',
54
+ },
55
+ {
56
+ displayName: 'Client Secret',
57
+ name: 'clientSecret',
58
+ type: 'hidden',
59
+ default: '',
60
+ typeOptions: { password: true },
61
+ },
62
+ ];
63
+ }
64
+ }
65
+ exports.ApifyOAuth2Api = ApifyOAuth2Api;
66
+ //# sourceMappingURL=ApifyOAuth2Api.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApifyOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/ApifyOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAE9C,MAAa,cAAc;IAA3B;QACC,SAAI,GAAG,gBAAgB,CAAC;QAExB,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QAExB,gBAAW,GAAG,kBAAkB,CAAC;QAEjC,SAAI,GAAS,gDAAgD,CAAA;QAG7D,qBAAgB,GAAG,+BAA+B,CAAC;QAEnD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;aACf;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,2CAA2C;aACpD;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,oDAAoD;aAC7D;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aAC9B;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,QAAQ;aACjB;YACD;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC/B;SACD,CAAC;IACH,CAAC;CAAA;AA/DD,wCA+DC"}
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 150 150" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M86.0214 0H147.727C148.982 0 150 1.01753 150 2.27273V96.5744C150 98.8332 147.062 99.7089 145.826 97.8188L84.1196 3.51714C83.1305 2.00559 84.215 0 86.0214 0Z" fill="#246DFF"/>
3
+ <path d="M63.9786 0H2.27273C1.01753 0 0 1.01753 0 2.27273V96.5744C0 98.8332 2.93774 99.7089 4.1745 97.8188L65.8804 3.51714C66.8695 2.00559 65.785 0 63.9786 0Z" fill="#20A34E"/>
4
+ <path d="M73.9429 75.5012L3.84485 146.126C2.42137 147.56 3.43724 150 5.45792 150H144.6C146.612 150 147.632 147.578 146.225 146.139L77.1811 75.5135C76.2942 74.6063 74.8365 74.6008 73.9429 75.5012Z" fill="#F86606"/>
5
+ </svg>
@@ -0,0 +1,13 @@
1
+ import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare const ACTOR_ID: string;
3
+ export declare const PACKAGE_NAME: string;
4
+ export declare const CLASS_NAME: string;
5
+ export declare const ClassNameCamel: string;
6
+ export declare const X_PLATFORM_HEADER_ID: string;
7
+ export declare const X_PLATFORM_APP_HEADER_ID: string;
8
+ export declare const DISPLAY_NAME: string;
9
+ export declare const DESCRIPTION: string;
10
+ export declare class ApifyTripadvisorReviews implements INodeType {
11
+ description: INodeTypeDescription;
12
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
13
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApifyTripadvisorReviews = exports.DESCRIPTION = exports.DISPLAY_NAME = exports.X_PLATFORM_APP_HEADER_ID = exports.X_PLATFORM_HEADER_ID = exports.ClassNameCamel = exports.CLASS_NAME = exports.PACKAGE_NAME = exports.ACTOR_ID = void 0;
4
+ const ApifyTripadvisorReviews_properties_1 = require("./ApifyTripadvisorReviews.properties");
5
+ const executeActor_1 = require("./helpers/executeActor");
6
+ exports.ACTOR_ID = 'LmG7QSGPFvMVX5ovX';
7
+ exports.PACKAGE_NAME = 'n8n-nodes-tripadvisor-reviews';
8
+ exports.CLASS_NAME = 'ApifyTripadvisorReviews';
9
+ exports.ClassNameCamel = exports.CLASS_NAME.charAt(0).toLowerCase() + exports.CLASS_NAME.slice(1);
10
+ exports.X_PLATFORM_HEADER_ID = 'n8n';
11
+ exports.X_PLATFORM_APP_HEADER_ID = 'tripadvisor-reviews-app';
12
+ exports.DISPLAY_NAME = 'Apify Tripadvisor Reviews';
13
+ exports.DESCRIPTION = 'Scrape reviews from Tripadvisor for Hotels and Restaurants. Filter by language, rating, traveller type, and time of year. Sort by most recent or most detailed. Fast and efficient.';
14
+ class ApifyTripadvisorReviews {
15
+ constructor() {
16
+ this.description = {
17
+ displayName: exports.DISPLAY_NAME,
18
+ name: exports.ClassNameCamel,
19
+ icon: 'file:logo.svg',
20
+ group: ['transform'],
21
+ version: [1],
22
+ defaultVersion: 1,
23
+ subtitle: 'Run Scraper',
24
+ description: exports.DESCRIPTION,
25
+ defaults: {
26
+ name: exports.DISPLAY_NAME,
27
+ },
28
+ inputs: ["main"],
29
+ outputs: ["main"],
30
+ usableAsTool: true,
31
+ credentials: [
32
+ {
33
+ displayName: 'Apify API key connection',
34
+ name: 'apifyApi',
35
+ required: false,
36
+ displayOptions: {
37
+ show: {
38
+ authentication: ['apifyApi'],
39
+ },
40
+ },
41
+ },
42
+ {
43
+ displayName: 'Apify OAuth2 connection',
44
+ name: 'apifyOAuth2Api',
45
+ required: false,
46
+ displayOptions: {
47
+ show: {
48
+ authentication: ['apifyOAuth2Api'],
49
+ },
50
+ },
51
+ },
52
+ ],
53
+ properties: ApifyTripadvisorReviews_properties_1.properties,
54
+ };
55
+ }
56
+ async execute() {
57
+ const items = this.getInputData();
58
+ const returnData = [];
59
+ for (let i = 0; i < items.length; i++) {
60
+ try {
61
+ const data = await executeActor_1.runActor.call(this, i);
62
+ const addPairedItem = (item) => ({
63
+ ...item,
64
+ pairedItem: { item: i },
65
+ });
66
+ if (Array.isArray(data)) {
67
+ returnData.push(...data.map(addPairedItem));
68
+ }
69
+ else {
70
+ returnData.push(addPairedItem(data));
71
+ }
72
+ }
73
+ catch (error) {
74
+ if (this.continueOnFail()) {
75
+ returnData.push({
76
+ json: { error: error.message },
77
+ pairedItem: { item: i },
78
+ });
79
+ continue;
80
+ }
81
+ throw error;
82
+ }
83
+ }
84
+ return [returnData];
85
+ }
86
+ }
87
+ exports.ApifyTripadvisorReviews = ApifyTripadvisorReviews;
88
+ //# sourceMappingURL=ApifyTripadvisorReviews.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApifyTripadvisorReviews.node.js","sourceRoot":"","sources":["../../../nodes/ApifyTripadvisorReviews/ApifyTripadvisorReviews.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ {
2
+ "node": "n8n-nodes-tripadvisor-reviews",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": [
6
+ "Development",
7
+ "Marketing & Content",
8
+ "Sales",
9
+ "Analytics",
10
+ "Utility",
11
+ "Data & Storage"
12
+ ],
13
+ "resources": {
14
+ "credentialDocumentation": [
15
+ {
16
+ "url": "https://docs.apify.com/platform/integrations/n8n"
17
+ }
18
+ ],
19
+ "primaryDocumentation": [
20
+ {
21
+ "url": "https://apify.com/datasaurus/tripadvisor-reviews"
22
+ }
23
+ ]
24
+ },
25
+ "alias": [
26
+ "apify",
27
+ "actor",
28
+ "serp",
29
+ "llm",
30
+ "ai agent",
31
+ "scrape",
32
+ "crawler",
33
+ "web",
34
+ "dataset",
35
+ "search",
36
+ "data extraction"
37
+ ]
38
+ }
@@ -0,0 +1,4 @@
1
+ import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
2
+ export declare function buildActorInput(context: IExecuteFunctions, itemIndex: number, defaultInput: Record<string, any>): Record<string, any>;
3
+ export declare const actorProperties: INodeProperties[];
4
+ export declare const properties: INodeProperties[];