Przeglądaj źródła

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

Pablo Barrera Yaksic 11 miesięcy temu
rodzic
commit
0895d49125
2 zmienionych plików z 5 dodań i 2 usunięć
  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)