Browse Source

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

Pablo Barrera Yaksic 10 months ago
parent
commit
0895d49125
2 changed files with 5 additions and 2 deletions
  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)