Skip to content

Commit 7e104b3

Browse files
committed
fixes
1 parent 04bc415 commit 7e104b3

File tree

3 files changed

+90
-90
lines changed

3 files changed

+90
-90
lines changed

js/botasaurus-server-js/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/botasaurus-server-js/package.json

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
11
{
22
"name": "botasaurus-server",
3-
"version": "4.1.98",
3+
"version": "4.1.99",
44
"description": "controls adder for botasaurus.",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
77
"exports": {
88
".": "./dist/index.js",
99
"./validation": "./dist/validation.js",
10-
"./null-utils": "./dist/null-utils.js",
11-
"./views": "./dist/views.js",
10+
"./executor": "./dist/executor.js",
11+
"./task-helper": "./dist/task-helper.js",
12+
"./filters": "./dist/filters.js",
1213
"./sorts": "./dist/sorts.js",
13-
"./task-results": "./dist/task-results.js",
14-
"./convert-to-english": "./dist/convert-to-english.js",
14+
"./views": "./dist/views.js",
15+
"./scraper-type": "./dist/scraper-type.js",
16+
"./errors": "./dist/errors.js",
1517
"./change-case": "./dist/change-case.js",
16-
"./task-helper": "./dist/task-helper.js",
17-
"./routes-db-logic": "./dist/routes-db-logic.js",
18-
"./server": "./dist/server.js",
18+
"./writer": "./dist/writer.js",
19+
"./writer-http": "./dist/writer-http.js",
1920
"./task-routes": "./dist/task-routes.js",
20-
"./ndjson": "./dist/ndjson.js",
21-
"./executor": "./dist/executor.js",
21+
"./utils": "./dist/utils.js",
22+
"./convert-to-english": "./dist/convert-to-english.js",
2223
"./api-config": "./dist/api-config.js",
23-
"./run": "./dist/run.js",
24+
"./ndjson": "./dist/ndjson.js",
25+
"./task-results": "./dist/task-results.js",
26+
"./controls-adapter": "./dist/controls-adapter.js",
27+
"./null-utils": "./dist/null-utils.js",
2428
"./task-executor": "./dist/task-executor.js",
25-
"./filters": "./dist/filters.js",
29+
"./download": "./dist/download.js",
30+
"./routes-db-logic": "./dist/routes-db-logic.js",
2631
"./db-setup": "./dist/db-setup.js",
32+
"./ui": "./dist/ui.js",
2733
"./models": "./dist/models.js",
28-
"./controls-adapter": "./dist/controls-adapter.js",
34+
"./paths": "./dist/paths.js",
2935
"./env": "./dist/env.js",
36+
"./server": "./dist/server.js",
3037
"./ndjson-http": "./dist/ndjson-http.js",
31-
"./errors": "./dist/errors.js",
32-
"./apply-pagination": "./dist/apply-pagination.js",
33-
"./utils": "./dist/utils.js",
34-
"./writer-http": "./dist/writer-http.js",
35-
"./download": "./dist/download.js",
36-
"./writer": "./dist/writer.js",
37-
"./ui": "./dist/ui.js",
38-
"./scraper-type": "./dist/scraper-type.js",
39-
"./paths": "./dist/paths.js"
38+
"./run": "./dist/run.js",
39+
"./apply-pagination": "./dist/apply-pagination.js"
4040
},
4141
"typesVersions": {
4242
"*": {
@@ -46,95 +46,95 @@
4646
"validation": [
4747
"dist/validation.d.ts"
4848
],
49-
"null-utils": [
50-
"dist/null-utils.d.ts"
49+
"executor": [
50+
"dist/executor.d.ts"
5151
],
52-
"views": [
53-
"dist/views.d.ts"
52+
"task-helper": [
53+
"dist/task-helper.d.ts"
54+
],
55+
"filters": [
56+
"dist/filters.d.ts"
5457
],
5558
"sorts": [
5659
"dist/sorts.d.ts"
5760
],
58-
"task-results": [
59-
"dist/task-results.d.ts"
61+
"views": [
62+
"dist/views.d.ts"
6063
],
61-
"convert-to-english": [
62-
"dist/convert-to-english.d.ts"
64+
"scraper-type": [
65+
"dist/scraper-type.d.ts"
66+
],
67+
"errors": [
68+
"dist/errors.d.ts"
6369
],
6470
"change-case": [
6571
"dist/change-case.d.ts"
6672
],
67-
"task-helper": [
68-
"dist/task-helper.d.ts"
69-
],
70-
"routes-db-logic": [
71-
"dist/routes-db-logic.d.ts"
73+
"writer": [
74+
"dist/writer.d.ts"
7275
],
73-
"server": [
74-
"dist/server.d.ts"
76+
"writer-http": [
77+
"dist/writer-http.d.ts"
7578
],
7679
"task-routes": [
7780
"dist/task-routes.d.ts"
7881
],
79-
"ndjson": [
80-
"dist/ndjson.d.ts"
82+
"utils": [
83+
"dist/utils.d.ts"
8184
],
82-
"executor": [
83-
"dist/executor.d.ts"
85+
"convert-to-english": [
86+
"dist/convert-to-english.d.ts"
8487
],
8588
"api-config": [
8689
"dist/api-config.d.ts"
8790
],
88-
"run": [
89-
"dist/run.d.ts"
91+
"ndjson": [
92+
"dist/ndjson.d.ts"
93+
],
94+
"task-results": [
95+
"dist/task-results.d.ts"
96+
],
97+
"controls-adapter": [
98+
"dist/controls-adapter.d.ts"
99+
],
100+
"null-utils": [
101+
"dist/null-utils.d.ts"
90102
],
91103
"task-executor": [
92104
"dist/task-executor.d.ts"
93105
],
94-
"filters": [
95-
"dist/filters.d.ts"
106+
"download": [
107+
"dist/download.d.ts"
108+
],
109+
"routes-db-logic": [
110+
"dist/routes-db-logic.d.ts"
96111
],
97112
"db-setup": [
98113
"dist/db-setup.d.ts"
99114
],
115+
"ui": [
116+
"dist/ui.d.ts"
117+
],
100118
"models": [
101119
"dist/models.d.ts"
102120
],
103-
"controls-adapter": [
104-
"dist/controls-adapter.d.ts"
121+
"paths": [
122+
"dist/paths.d.ts"
105123
],
106124
"env": [
107125
"dist/env.d.ts"
108126
],
127+
"server": [
128+
"dist/server.d.ts"
129+
],
109130
"ndjson-http": [
110131
"dist/ndjson-http.d.ts"
111132
],
112-
"errors": [
113-
"dist/errors.d.ts"
133+
"run": [
134+
"dist/run.d.ts"
114135
],
115136
"apply-pagination": [
116137
"dist/apply-pagination.d.ts"
117-
],
118-
"utils": [
119-
"dist/utils.d.ts"
120-
],
121-
"writer-http": [
122-
"dist/writer-http.d.ts"
123-
],
124-
"download": [
125-
"dist/download.d.ts"
126-
],
127-
"writer": [
128-
"dist/writer.d.ts"
129-
],
130-
"ui": [
131-
"dist/ui.d.ts"
132-
],
133-
"scraper-type": [
134-
"dist/scraper-type.d.ts"
135-
],
136-
"paths": [
137-
"dist/paths.d.ts"
138138
]
139139
}
140140
},

js/botasaurus-server-js/src/api-config.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,13 @@ function addScraperRoutes(app: FastifyInstance, apiBasePath: string) {
136136
// Register all aliases if they exist
137137
if (aliases.length > 0) {
138138
aliases.forEach(alias => {
139-
const fullAliasPath = `${apiBasePath}${cleanBasePath(alias)}`
139+
const fullAliasPath = `${apiBasePath}${alias}`
140140
app.get(fullAliasPath, scrapingFunction)
141141
})
142142
}
143143
})
144144
}
145-
export function buildApp(scrapers:any[], apiBasePath: string): FastifyInstance {
145+
export function buildApp(scrapers:any[], apiBasePath: string, routeAliases:any): FastifyInstance {
146146
const app = fastify({logger: true});
147147

148148
// Add CORS handling
@@ -175,7 +175,7 @@ export function buildApp(scrapers:any[], apiBasePath: string): FastifyInstance {
175175

176176
// Routes
177177
app.get(apiBasePath || "/", (_, reply) => {
178-
const html = `<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><link rel="icon" href="https://botasaurus-api.omkar.cloud/favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="theme-color" content="#000000"><meta name="description" content="API documentation for using web scrapers"><link rel="apple-touch-icon" href="https://botasaurus-api.omkar.cloud/logo192.png"><title>Api Docs</title><script>window.scrapers=${JSON.stringify(scrapers)};window.apiBasePath="${apiBasePath || ''}";</script><script defer="defer" src="https://botasaurus-api.omkar.cloud/static/js/main.7693ffcb.js"></script><link href="https://botasaurus-api.omkar.cloud/static/css/main.69260e80.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>`;
178+
const html = `<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><link rel="icon" href="https://botasaurus-api.omkar.cloud/favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="theme-color" content="#000000"><meta name="description" content="API documentation for using web scrapers"><link rel="apple-touch-icon" href="https://botasaurus-api.omkar.cloud/logo192.png"><title>Api Docs</title><script>window.scrapers=${JSON.stringify(scrapers)};window.apiBasePath="${apiBasePath || ''}";window.routeAliases=${JSON.stringify(routeAliases)};</script><script defer="defer" src="https://botasaurus-api.omkar.cloud/static/js/main.7693ffcb.js"></script><link href="https://botasaurus-api.omkar.cloud/static/css/main.69260e80.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>`;
179179

180180
return reply.type('text/html').send(html);
181181
});
@@ -329,12 +329,12 @@ export function buildApp(scrapers:any[], apiBasePath: string): FastifyInstance {
329329
return app;
330330
}
331331
let server: FastifyInstance;
332-
async function startServer(port:number, scrapers:any[], apiBasePath: string): Promise<void> {
332+
async function startServer(port:number, scrapers:any[], apiBasePath: string, routeAliases:any): Promise<void> {
333333
try {
334334
if (server) {
335335
await stopServer()
336336
}
337-
server = buildApp(scrapers, apiBasePath);
337+
server = buildApp(scrapers, apiBasePath, routeAliases);
338338

339339
await server.listen({port,
340340
host: '0.0.0.0' // bind on all interfaces
@@ -450,24 +450,24 @@ class ApiConfig {
450450

451451

452452
/**
453-
* Adds aliases for a specific scraper's routes.
454-
* @param {Scraper} scraper - The scraper instance to add aliases for
455-
* @param {...string} aliases - One or more alias paths (e.g., '/hotels', '/lodging')
453+
* Adds an alias for a specific scraper's route.
454+
* @param {Function} scraper - The scraper function to add an alias for
455+
* @param {string} alias - Alias path (e.g., '/hotels/search')
456456
* @example
457-
* ApiConfig.addScraperAliases(hotelScraper, '/hotels', '/resort');
457+
* ApiConfig.addScraperAlias(hotelsSearchScraper, '/hotels/search');
458458
*/
459-
static addScraperAliases(scraper: Function, ...aliases: string[]): void {
459+
static addScraperAlias(scraper: Function, alias: string): void {
460+
if (!alias) return;
461+
460462
if (!this.routeAliases.has(scraper)) {
461-
this.routeAliases.set(scraper, aliases);
463+
this.routeAliases.set(scraper, [cleanBasePath(alias)]);
462464
} else {
463-
const aliasArray = this.routeAliases.get(scraper)!;
464-
aliases.forEach(alias => {
465-
if (alias && !aliasArray.includes(alias)) {
466-
aliasArray.push(alias);
465+
const aliasArray = this.routeAliases.get(scraper)!;
466+
if (!aliasArray.includes(alias)) {
467+
aliasArray.push(cleanBasePath(alias));
467468
}
468-
});
469-
}
470-
}
469+
}
470+
}
471471
}
472472

473473
export default ApiConfig ;

0 commit comments

Comments
 (0)