diff --git a/src/ar/egybest/AndroidManifest.xml b/src/ar/egybest/AndroidManifest.xml
deleted file mode 100644
index acb4de3565..0000000000
--- a/src/ar/egybest/AndroidManifest.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/src/ar/egybest/build.gradle b/src/ar/egybest/build.gradle
deleted file mode 100644
index b2d13b45cf..0000000000
--- a/src/ar/egybest/build.gradle
+++ /dev/null
@@ -1,12 +0,0 @@
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-
-ext {
- extName = 'EgyBest'
- pkgNameSuffix = 'ar.egybest'
- extClass = '.EgyBest'
- extVersionCode = 1
- libVersion = '12'
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/ar/egybest/res/mipmap-hdpi/ic_launcher.png b/src/ar/egybest/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 31c5495ae0..0000000000
Binary files a/src/ar/egybest/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/ar/egybest/res/mipmap-mdpi/ic_launcher.png b/src/ar/egybest/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index bbc83b284c..0000000000
Binary files a/src/ar/egybest/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/ar/egybest/res/mipmap-xhdpi/ic_launcher.png b/src/ar/egybest/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 7fc7f69c5c..0000000000
Binary files a/src/ar/egybest/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/ar/egybest/res/mipmap-xxhdpi/ic_launcher.png b/src/ar/egybest/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 5172f5d782..0000000000
Binary files a/src/ar/egybest/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/ar/egybest/res/mipmap-xxxhdpi/ic_launcher.png b/src/ar/egybest/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 5c63fc0255..0000000000
Binary files a/src/ar/egybest/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/ar/egybest/res/play_store_512.png b/src/ar/egybest/res/play_store_512.png
deleted file mode 100644
index 2bb09bb4d8..0000000000
Binary files a/src/ar/egybest/res/play_store_512.png and /dev/null differ
diff --git a/src/ar/egybest/src/eu/kanade/tachiyomi/animeextension/ar/egybest/EgyBest.kt b/src/ar/egybest/src/eu/kanade/tachiyomi/animeextension/ar/egybest/EgyBest.kt
deleted file mode 100644
index a75cd86214..0000000000
--- a/src/ar/egybest/src/eu/kanade/tachiyomi/animeextension/ar/egybest/EgyBest.kt
+++ /dev/null
@@ -1,234 +0,0 @@
-package eu.kanade.tachiyomi.animeextension.ar.egybest
-
-import android.app.Application
-import android.content.SharedPreferences
-import androidx.preference.ListPreference
-import androidx.preference.PreferenceScreen
-import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
-import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
-import eu.kanade.tachiyomi.animesource.model.SAnime
-import eu.kanade.tachiyomi.animesource.model.SEpisode
-import eu.kanade.tachiyomi.animesource.model.Video
-import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.util.asJsoup
-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.lang.Exception
-
-class EgyBest : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
-
- override val name = "EgyBest"
-
- override val baseUrl = "https://www.egy.best"
-
- override val lang = "ar"
-
- override val supportsLatest = true
-
- override val client: OkHttpClient = network.cloudflareClient
-
- private val preferences: SharedPreferences by lazy {
- Injekt.get().getSharedPreferences("source_$id", 0x0000)
- }
-
- // Popular
-
- override fun popularAnimeSelector(): String = "div.movies a.movie"
-
- override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/trending/?page=$page")
-
- override fun popularAnimeFromElement(element: Element): SAnime {
- val anime = SAnime.create()
- anime.thumbnail_url = element.select("img").attr("src")
- anime.setUrlWithoutDomain(element.attr("href"))
- anime.title = element.select("span.title").text()
- return anime
- }
-
- override fun popularAnimeNextPageSelector(): String = "a.auto.load"
-
- // episodes
-
- override fun episodeListSelector() = throw Exception("not used")
-
- override fun episodeListParse(response: Response): List {
- val document = response.asJsoup()
- val episodeList = mutableListOf()
- val seriesLink = document.select("div.movie_img a").attr("href")
- if (seriesLink.contains("series")) {
- val seasonsHtml = client.newCall(
- GET(
- seriesLink
- // headers = Headers.headersOf("Referer", document.location())
- )
- ).execute().asJsoup()
- val seasonP = seasonsHtml.selectFirst("div.contents.movies_small")
- val seasonsElements = seasonP.select("a.movie")
- seasonsElements.forEach {
- val seasonEpList = parseEpisodesFromSeries(it)
- episodeList.addAll(seasonEpList)
- }
- } else {
- val episode = SEpisode.create()
- episode.name = document.select("div.movie_title h1 span").text()
- episode.episode_number = 1F
- episode.setUrlWithoutDomain(seriesLink)
- episodeList.add(episode)
- }
- return episodeList
- }
-
- private fun parseEpisodesFromSeries(element: Element): List {
- val episodesUrl = element.attr("abs:href")
- val episodesHtml = client.newCall(
- GET(
- episodesUrl,
- )
- ).execute().asJsoup()
- val episodeElements = episodesHtml.select("div.movies_small a[href~=episode]")
- return episodeElements.map { episodeFromElement(it) }
- }
-
- override fun episodeFromElement(element: Element): SEpisode {
- val episode = SEpisode.create()
- val epNum = getNumberFromEpsString(element.select("span.title").text())
- episode.episode_number = when {
- (epNum.isNotEmpty()) -> epNum.toFloat()
- else -> 1F
- }
- val seasonName = element.ownerDocument().select("div.movie_title h1").text().replace(" مسلسل ", "")
- episode.name = "$seasonName : " + element.select("span.title").text()
- episode.setUrlWithoutDomain(element.attr("abs:href"))
- return episode
- }
-
- private fun getNumberFromEpsString(epsStr: String): String {
- return epsStr.filter { it.isDigit() }
- }
-
- // Video links
-
- override fun videoListParse(response: Response): List