Просмотр исходного кода

df added url prefix
extra validation to url and image prefix to not be already en in their respectives urls

Pablo Barrera Yaksic 11 месяцев назад
Родитель
Сommit
0895d49125
2 измененных файлов с 5 добавлено и 2 удалено
  1. 1 0
      src/portales/df/handler.ts
  2. 4 2
      src/utils/scraper-articles.ts

+ 1 - 0
src/portales/df/handler.ts

@@ -11,6 +11,7 @@ export const handler: Handler = new Portal(
   config.MASTODON_KEY_DF,
   {
     url: config.DF,
+    linkPrefix: "https://www.df.cl",
     articlesSelector: "article",
     titleSelector: "h3 a",
     linkSelector: "h3 a",

+ 4 - 2
src/utils/scraper-articles.ts

@@ -49,7 +49,9 @@ export default class ScraperArticles {
   private getLink (article: AnyNode): string {
     const selector = this._options.linkSelector ?? "";
     const url = selector !== "" ? this.getProperty(article, selector, Props.LINK) : this._options.url
-    return this._options.linkPrefix !== undefined ? (this._options.linkPrefix + url).trim() : url.trim();
+    return this._options.linkPrefix !== undefined && url.includes(this._options.linkPrefix)
+     ? (this._options.linkPrefix + url).trim() 
+     : url.trim();
   }
 
   private async getImage (article: AnyNode): Promise<File | null> {
@@ -58,7 +60,7 @@ export default class ScraperArticles {
     let imgUrl = selector !== "" ? this.getProperty(article, selector, Props.IMAGE) : "";
 
     if (imgUrl !== "") {
-      if (this._options.imagePrefix) {
+      if (this._options.imagePrefix && imgUrl.includes(this._options.imagePrefix)) {
         imgUrl = this._options.imagePrefix + imgUrl;
       }
       imgFile = this._scraper.scrapeFile(imgUrl)