diff --git a/src/pt/portugamangas/AndroidManifest.xml b/src/pt/portugamangas/AndroidManifest.xml
deleted file mode 100644
index 3c3e17ea0..000000000
--- a/src/pt/portugamangas/AndroidManifest.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <application>
-        <activity
-            android:name=".pt.portugamangas.PortugaMangasUrlActivity"
-            android:excludeFromRecents="true"
-            android:exported="true"
-            android:theme="@android:style/Theme.NoDisplay">
-            <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.BROWSABLE" />
-
-                <data android:host="portugamanga.online" />
-                <data android:scheme="https" />
-                <data android:pathPattern="/mangas/..*" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/src/pt/portugamangas/build.gradle b/src/pt/portugamangas/build.gradle
deleted file mode 100644
index c4293d0b3..000000000
--- a/src/pt/portugamangas/build.gradle
+++ /dev/null
@@ -1,13 +0,0 @@
-ext {
-    extName = 'Portuga Mangas'
-    extClass = '.PortugaMangas'
-    extVersionCode = 2
-    isNsfw = true
-}
-
-apply from: "$rootDir/common.gradle"
-
-dependencies {
-    implementation(project(':lib:randomua'))
-}
-
diff --git a/src/pt/portugamangas/res/mipmap-hdpi/ic_launcher.png b/src/pt/portugamangas/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 96f9a1506..000000000
Binary files a/src/pt/portugamangas/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/portugamangas/res/mipmap-mdpi/ic_launcher.png b/src/pt/portugamangas/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 67ec754e6..000000000
Binary files a/src/pt/portugamangas/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/portugamangas/res/mipmap-xhdpi/ic_launcher.png b/src/pt/portugamangas/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index f6e0c4ac7..000000000
Binary files a/src/pt/portugamangas/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/portugamangas/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/portugamangas/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 0fdc97bca..000000000
Binary files a/src/pt/portugamangas/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/portugamangas/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/portugamangas/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index e2d47ccfd..000000000
Binary files a/src/pt/portugamangas/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/portugamangas/src/eu/kanade/tachiyomi/extension/pt/portugamangas/PortugaMangas.kt b/src/pt/portugamangas/src/eu/kanade/tachiyomi/extension/pt/portugamangas/PortugaMangas.kt
deleted file mode 100644
index d100950a7..000000000
--- a/src/pt/portugamangas/src/eu/kanade/tachiyomi/extension/pt/portugamangas/PortugaMangas.kt
+++ /dev/null
@@ -1,200 +0,0 @@
-package eu.kanade.tachiyomi.extension.pt.portugamangas
-
-import android.app.Application
-import android.content.SharedPreferences
-import androidx.preference.PreferenceScreen
-import eu.kanade.tachiyomi.lib.randomua.addRandomUAPreferenceToScreen
-import eu.kanade.tachiyomi.lib.randomua.getPrefCustomUA
-import eu.kanade.tachiyomi.lib.randomua.getPrefUAType
-import eu.kanade.tachiyomi.lib.randomua.setRandomUserAgent
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
-import eu.kanade.tachiyomi.source.ConfigurableSource
-import eu.kanade.tachiyomi.source.model.FilterList
-import eu.kanade.tachiyomi.source.model.MangasPage
-import eu.kanade.tachiyomi.source.model.Page
-import eu.kanade.tachiyomi.source.model.SChapter
-import eu.kanade.tachiyomi.source.model.SManga
-import eu.kanade.tachiyomi.source.online.ParsedHttpSource
-import eu.kanade.tachiyomi.util.asJsoup
-import okhttp3.HttpUrl.Companion.toHttpUrl
-import okhttp3.OkHttpClient
-import okhttp3.Request
-import okhttp3.Response
-import org.jsoup.nodes.Document
-import org.jsoup.nodes.Element
-import uy.kohesive.injekt.Injekt
-import uy.kohesive.injekt.api.get
-import java.text.SimpleDateFormat
-import java.util.Locale
-import java.util.concurrent.TimeUnit
-
-class PortugaMangas : ParsedHttpSource(), ConfigurableSource {
-    override val name = "Portuga Mangas"
-
-    override val baseUrl = "https://portugamanga.online"
-
-    override val lang = "pt-BR"
-
-    override val supportsLatest = true
-
-    private val preferences: SharedPreferences =
-        Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
-
-    override val client: OkHttpClient =
-        network.cloudflareClient.newBuilder()
-            .setRandomUserAgent(
-                preferences.getPrefUAType(),
-                preferences.getPrefCustomUA(),
-            )
-            .rateLimitHost(baseUrl.toHttpUrl(), 1, 2, TimeUnit.SECONDS)
-            .build()
-
-    override fun popularMangaRequest(page: Int): Request = GET(baseUrl, headers)
-
-    override fun popularMangaSelector(): String = "div#maisLidos > div.itemmanga"
-
-    override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
-        title = element.selectFirst("h3")!!.text()
-        thumbnail_url = element.selectFirst("img")?.srcAttr()
-        setUrlWithoutDomain(element.attr("href"))
-    }
-
-    override fun popularMangaNextPageSelector(): String? = null
-
-    override fun latestUpdatesRequest(page: Int): Request {
-        val url = baseUrl.toHttpUrl().newBuilder()
-            .addQueryParameter("pagina", "$page")
-            .build()
-        return GET(url, headers)
-    }
-
-    override fun latestUpdatesSelector() = "div.atualizacao"
-
-    override fun latestUpdatesFromElement(element: Element): SManga = SManga.create().apply {
-        title = element.selectFirst("a > h3")!!.text()
-        thumbnail_url = element.selectFirst("div > img")?.absUrl("src")
-        setUrlWithoutDomain(element.selectFirst("a")!!.attr("href"))
-    }
-
-    override fun latestUpdatesNextPageSelector(): String? = "ul.pagination [aria-label=Next]"
-
-    override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
-        val url = "$baseUrl/mangas".toHttpUrl().newBuilder()
-            .addQueryParameter("busca", query)
-            .addQueryParameter("pagina", "$page")
-            .build()
-        return GET(url, headers)
-    }
-
-    private fun hasNextPage(currentPage: Int, document: Document): Boolean {
-        val pageAmount = document.select("ul.pagination li:not([aria-hidden])").size
-        return pageAmount != currentPage && currentPage != -1
-    }
-
-    private fun searchMangaParse(document: Document): List<SManga> =
-        document.select(searchMangaSelector()).map { searchMangaFromElement(it) }
-
-    override fun searchMangaParse(response: Response): MangasPage {
-        val currentPage = response.request.url.queryParameter("pagina")?.toInt() ?: -1
-        val document = response.asJsoup()
-        return MangasPage(searchMangaParse(document), hasNextPage(currentPage, document))
-    }
-
-    override fun searchMangaSelector(): String = "div.mangas"
-
-    override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply {
-        title = element.selectFirst("h3")!!.ownText()
-        thumbnail_url = getMangaThumbnailUrlInSearch(element)
-        setUrlWithoutDomain(element.selectFirst("a")!!.attr("href"))
-    }
-
-    private fun getMangaThumbnailUrlInSearch(element: Element): String? =
-        element.selectFirst(searchMangaThumbnailSelector())?.attr("src")?.toAbsURL()
-
-    private fun searchMangaThumbnailSelector(): String = "img"
-
-    override fun searchMangaNextPageSelector(): String? = "ul.pagination li:last-child"
-
-    override fun getMangaUrl(manga: SManga): String = baseUrl + manga.url
-
-    private fun getMangaStatus(document: Document): String =
-        document.selectFirst("h5.cg_color > a.label.label-success")?.text() ?: ""
-
-    override fun mangaDetailsParse(document: Document): SManga {
-        return SManga.create().apply {
-            title = document.selectFirst("h1")!!.text()
-            description = document.selectFirst("#manga_capitulo_descricao")?.text()
-            thumbnail_url = document.selectFirst("div.manga .row .row div.text-right img")?.absUrl("src")
-            genre = document.select("h5.cg_color > a.label.label-warning")
-                .map { it?.text() ?: "" }
-                .filter { it.isNotBlank() }
-                .joinToString()
-
-            status = when (getMangaStatus(document)) {
-                PAGE_STATUS_ONGOING -> SManga.ONGOING
-                PAGE_STATUS_COMPLETED -> SManga.COMPLETED
-                else -> SManga.UNKNOWN
-            }
-            setUrlWithoutDomain(document.location())
-        }
-    }
-
-    override fun chapterListSelector() = "ul#capitulos > li"
-
-    private fun dateUploadParse(content: String): Long {
-        val date = content.replace("[()]".toRegex(), "")
-        return if (date.isNotBlank()) { date.toDate() } else { 0L }
-    }
-
-    private fun chapterNameParse(content: String): String =
-        content.replace(DATE_PATTERN, "")
-
-    override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
-        name = chapterNameParse(element.selectFirst("a > div")!!.ownText())
-        date_upload = dateUploadParse(element.selectFirst("a > div span")?.ownText() ?: "")
-        setUrlWithoutDomain(element.selectFirst("a")!!.absUrl("href"))
-    }
-
-    override fun pageListParse(document: Document): List<Page> {
-        val elements = document.select("div#capitulos_images img")
-        return elements.mapIndexed { i, el ->
-            Page(i + 1, document.location(), el.srcAttr())
-        }
-    }
-
-    override fun imageUrlParse(document: Document) = ""
-
-    override fun imageRequest(page: Page): Request {
-        val newHeaders = headersBuilder()
-            .set("Referer", page.url)
-            .build()
-        return GET(page.imageUrl!!, newHeaders)
-    }
-
-    private fun Element.srcAttr(): String = when {
-        hasAttr("data-src") -> absUrl("data-src")
-        else -> absUrl("src")
-    }
-
-    private fun String.toDate(): Long {
-        return runCatching { DATE_FORMATTER.parse(trim())?.time }
-            .getOrNull() ?: 0L
-    }
-
-    private fun String.toAbsURL(): String = "$baseUrl/${trim()}".toHttpUrl().toString()
-
-    companion object {
-        const val PAGE_STATUS_ONGOING = "Ativo"
-        const val PAGE_STATUS_COMPLETED = "Completo"
-        private val DATE_PATTERN = "(<?date>\\(\\d+/\\d+/\\d+\\))".toRegex()
-
-        private val DATE_FORMATTER by lazy {
-            SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
-        }
-    }
-
-    override fun setupPreferenceScreen(screen: PreferenceScreen) {
-        addRandomUAPreferenceToScreen(screen)
-    }
-}
diff --git a/src/pt/portugamangas/src/eu/kanade/tachiyomi/extension/pt/portugamangas/PortugaMangasUrlActivity.kt b/src/pt/portugamangas/src/eu/kanade/tachiyomi/extension/pt/portugamangas/PortugaMangasUrlActivity.kt
deleted file mode 100644
index 4d31e4127..000000000
--- a/src/pt/portugamangas/src/eu/kanade/tachiyomi/extension/pt/portugamangas/PortugaMangasUrlActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-package eu.kanade.tachiyomi.extension.pt.portugamangas
-
-import android.app.Activity
-import android.content.ActivityNotFoundException
-import android.content.Intent
-import android.os.Bundle
-import android.util.Log
-import kotlin.system.exitProcess
-
-class PortugaMangasUrlActivity : Activity() {
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        val pathSegments = intent?.data?.pathSegments
-
-        if (pathSegments != null && pathSegments.size > 1) {
-            val intent = Intent().apply {
-                action = "eu.kanade.tachiyomi.SEARCH"
-                putExtra("filter", packageName)
-            }
-
-            try {
-                startActivity(intent)
-            } catch (e: ActivityNotFoundException) {
-                Log.e("PortugaMangasUrlActivity", e.toString())
-            }
-        } else {
-            Log.e("PortugaMangasUrlActivity", "Could not parse URI from intent $intent")
-        }
-
-        finish()
-        exitProcess(0)
-    }
-}