From 16ca8ecefd04ff183e88e7cb2045fbb74c6df92e Mon Sep 17 00:00:00 2001 From: sua yoo Date: Thu, 2 Feb 2023 21:39:29 -0800 Subject: [PATCH] Support additional seed URLs and custom scope type (#543) --- frontend/src/components/config-details.ts | 42 +- frontend/src/pages/org/crawl-config-editor.ts | 436 ++++++++++++------ frontend/src/pages/org/types.ts | 28 +- frontend/src/shoelace.ts | 1 + 4 files changed, 336 insertions(+), 171 deletions(-) diff --git a/frontend/src/components/config-details.ts b/frontend/src/components/config-details.ts index 2b093a36..5ca14ad6 100644 --- a/frontend/src/components/config-details.ts +++ b/frontend/src/components/config-details.ts @@ -6,7 +6,7 @@ import RegexColorize from "regex-colorize"; import ISO6391 from "iso-639-1"; import LiteElement, { html } from "../utils/LiteElement"; -import type { CrawlConfig } from "../pages/org/types"; +import type { CrawlConfig, Seed, SeedConfig } from "../pages/org/types"; import { humanizeSchedule } from "../utils/cron"; /** @@ -185,7 +185,7 @@ export class ConfigDetails extends LiteElement { ` )} ${this.renderSetting( - msg("Include Linked Pages"), + msg("Include Any Linked Page"), Boolean(crawlConfig?.config.extraHops) )} `; @@ -193,21 +193,29 @@ export class ConfigDetails extends LiteElement { private renderConfirmSeededSettings = () => { const crawlConfig = this.crawlConfig!; + const seedsConfig = crawlConfig.config; + const additionalUrlList = seedsConfig.seeds.slice(1); + let primarySeedConfig: SeedConfig | Seed = seedsConfig; + let primarySeedUrl = seedsConfig.seeds[0]; + if (typeof seedsConfig.seeds[0] !== "string") { + primarySeedConfig = seedsConfig.seeds[0]; + primarySeedUrl = primarySeedConfig.url; + } + const includeUrlList = primarySeedConfig.include || seedsConfig.include; return html` - ${this.renderSetting( - msg("Primary Seed URL"), - crawlConfig?.config.seeds[0] - )} + ${this.renderSetting(msg("Primary Seed URL"), primarySeedUrl)} ${this.renderSetting( msg("Crawl Scope"), - this.scopeTypeLabels[crawlConfig?.config.scopeType] + this.scopeTypeLabels[ + primarySeedConfig.scopeType || seedsConfig.scopeType + ] )} ${this.renderSetting( msg("Extra URLs in Scope"), - crawlConfig?.config.include?.length + includeUrlList?.length ? html`