From 268a4c5dd5820be1db4c4e1c3ddf9e6927d4d37d Mon Sep 17 00:00:00 2001
From: WebDitto <webditto@proton.me>
Date: Wed, 28 Aug 2024 18:18:31 -0300
Subject: [PATCH] fix(pt/animesgames): Fixed pt/AnimesGames images (#186)

---
 src/pt/animesgames/build.gradle               |  2 +-
 .../pt/animesgames/AnimesGames.kt             | 19 ++++++++++++++++---
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/pt/animesgames/build.gradle b/src/pt/animesgames/build.gradle
index bd2f4941..24c668fa 100644
--- a/src/pt/animesgames/build.gradle
+++ b/src/pt/animesgames/build.gradle
@@ -1,7 +1,7 @@
 ext {
     extName = 'Animes Games'
     extClass = '.AnimesGames'
-    extVersionCode = 3
+    extVersionCode = 4
 }
 
 apply from: "$rootDir/common.gradle"
diff --git a/src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt b/src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt
index d719cac8..578c3caf 100644
--- a/src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt
+++ b/src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt
@@ -61,7 +61,7 @@ class AnimesGames : ParsedAnimeHttpSource() {
     override fun latestUpdatesFromElement(element: Element) = SAnime.create().apply {
         setUrlWithoutDomain(element.attr("href"))
         title = element.selectFirst("div.tituloEP")!!.text()
-        thumbnail_url = element.selectFirst("img")?.attr("data-lazy-src")
+        thumbnail_url = element.selectFirst("img")?.getImageUrl()
     }
 
     override fun latestUpdatesNextPageSelector() = "ol.pagination > a:contains(>)"
@@ -144,7 +144,7 @@ class AnimesGames : ParsedAnimeHttpSource() {
     override fun searchAnimeFromElement(element: Element) = SAnime.create().apply {
         setUrlWithoutDomain(element.attr("href"))
         title = element.selectFirst("div.tituloAnime")!!.text()
-        thumbnail_url = element.selectFirst("img")!!.attr("src")
+        thumbnail_url = element.selectFirst("img")!!.getImageUrl()
     }
 
     override fun searchAnimeNextPageSelector(): String? {
@@ -159,7 +159,7 @@ class AnimesGames : ParsedAnimeHttpSource() {
         title = content.selectFirst("section > h1")!!.text()
             .removePrefix("Assistir ")
             .removeSuffix("Temporada Online")
-        thumbnail_url = content.selectFirst("img")?.attr("data-lazy-src")
+        thumbnail_url = content.selectFirst("img")?.getImageUrl()
         description = content.select("section.sinopseEp p").eachText().joinToString("\n")
 
         val infos = content.selectFirst("div.info > ol")!!
@@ -273,6 +273,19 @@ class AnimesGames : ParsedAnimeHttpSource() {
             .getOrNull() ?: 0L
     }
 
+    /**
+     * Tries to get the image url via various possible attributes.
+     * Taken from Tachiyomi's Madara multisrc.
+     */
+    protected open fun Element.getImageUrl(): String? {
+        return when {
+            hasAttr("data-src") -> attr("abs:data-src")
+            hasAttr("data-lazy-src") -> attr("abs:data-lazy-src")
+            hasAttr("srcset") -> attr("abs:srcset").substringBefore(" ")
+            else -> attr("abs:src")
+        }.substringBefore("?resize")
+    }
+
     companion object {
         const val PREFIX_SEARCH = "id:"