diff --git a/multisrc/overrides/guya/dankefurslesen/AndroidManifest.xml b/multisrc/overrides/guya/dankefurslesen/AndroidManifest.xml
new file mode 100644
index 000000000..84ef0bbc7
--- /dev/null
+++ b/multisrc/overrides/guya/dankefurslesen/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="eu.kanade.tachiyomi.extension">
+
+    <application>
+        <activity
+            android:name=".en.dankefurslesen.DankeFursLesenUrlActivity"
+            android:excludeFromRecents="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="danke.moe"
+                    android:pathPattern="/read/manga/..*"
+                    android:scheme="https" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
\ No newline at end of file
diff --git a/multisrc/overrides/guya/dankefurslesen/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/guya/dankefurslesen/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 000000000..a64fb0ff7
Binary files /dev/null and b/multisrc/overrides/guya/dankefurslesen/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/dankefurslesen/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/guya/dankefurslesen/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 000000000..1d17658d5
Binary files /dev/null and b/multisrc/overrides/guya/dankefurslesen/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/dankefurslesen/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/guya/dankefurslesen/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..a2901cf76
Binary files /dev/null and b/multisrc/overrides/guya/dankefurslesen/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/dankefurslesen/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/guya/dankefurslesen/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..97b101dc7
Binary files /dev/null and b/multisrc/overrides/guya/dankefurslesen/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/dankefurslesen/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/guya/dankefurslesen/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..d8235e528
Binary files /dev/null and b/multisrc/overrides/guya/dankefurslesen/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/dankefurslesen/res/web_hi_res_512.png b/multisrc/overrides/guya/dankefurslesen/res/web_hi_res_512.png
new file mode 100644
index 000000000..9edd4f98a
Binary files /dev/null and b/multisrc/overrides/guya/dankefurslesen/res/web_hi_res_512.png differ
diff --git a/multisrc/overrides/guya/dankefurslesen/src/DankeFursLesen.kt b/multisrc/overrides/guya/dankefurslesen/src/DankeFursLesen.kt
new file mode 100644
index 000000000..fbe3a236a
--- /dev/null
+++ b/multisrc/overrides/guya/dankefurslesen/src/DankeFursLesen.kt
@@ -0,0 +1,11 @@
+package eu.kanade.tachiyomi.extension.en.dankefurslesen
+
+import eu.kanade.tachiyomi.multisrc.guya.Guya
+
+class DankeFursLesen : Guya("Danke fürs Lesen", "https://danke.moe", "en") {
+    companion object {
+        const val SLUG_PREFIX = "slug:"
+        const val PROXY_PREFIX = "proxy:"
+        const val NESTED_PROXY_API_PREFIX = "/proxy/api/"
+    }
+}
diff --git a/multisrc/overrides/guya/dankefurslesen/src/DankeFursLesenUrlActivity.kt b/multisrc/overrides/guya/dankefurslesen/src/DankeFursLesenUrlActivity.kt
new file mode 100644
index 000000000..fc41cb0c1
--- /dev/null
+++ b/multisrc/overrides/guya/dankefurslesen/src/DankeFursLesenUrlActivity.kt
@@ -0,0 +1,57 @@
+package eu.kanade.tachiyomi.extension.en.dankefurslesen
+
+import android.app.Activity
+import android.content.ActivityNotFoundException
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import kotlin.system.exitProcess
+
+/**
+ * Accepts https://danke.moe/read/manga/xyz intents
+ *
+ * Added due to requests from various users to allow for opening of titles when given the
+ * Guya URL whilst on mobile.
+ */
+class DankeFursLesenUrlActivity : Activity() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        val host = intent?.data?.host
+        val pathSegments = intent?.data?.pathSegments
+
+        if (host != null && pathSegments != null) {
+            val query = fromDankeFursLesen(pathSegments)
+
+            if (query == null) {
+                Log.e("DankeFursLesenUrlActivity", "Unable to parse URI from intent $intent")
+                finish()
+                exitProcess(1)
+            }
+
+            val mainIntent = Intent().apply {
+                action = "eu.kanade.tachiyomi.SEARCH"
+                putExtra("query", query)
+                putExtra("filter", packageName)
+            }
+
+            try {
+                startActivity(mainIntent)
+            } catch (e: ActivityNotFoundException) {
+                Log.e("DankeFursLesenUrlActivity", e.toString())
+            }
+        }
+
+        finish()
+        exitProcess(0)
+    }
+
+    private fun fromDankeFursLesen(pathSegments: MutableList<String>): String? {
+        return if (pathSegments.size >= 3) {
+            val slug = pathSegments[2]
+            "${DankeFursLesen.SLUG_PREFIX}$slug"
+        } else {
+            null
+        }
+    }
+}
diff --git a/src/en/guya/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/guya/default/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from src/en/guya/res/mipmap-hdpi/ic_launcher.png
rename to multisrc/overrides/guya/default/res/mipmap-hdpi/ic_launcher.png
diff --git a/src/en/guya/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/guya/default/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from src/en/guya/res/mipmap-mdpi/ic_launcher.png
rename to multisrc/overrides/guya/default/res/mipmap-mdpi/ic_launcher.png
diff --git a/src/en/guya/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/guya/default/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from src/en/guya/res/mipmap-xhdpi/ic_launcher.png
rename to multisrc/overrides/guya/default/res/mipmap-xhdpi/ic_launcher.png
diff --git a/src/en/guya/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/guya/default/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from src/en/guya/res/mipmap-xxhdpi/ic_launcher.png
rename to multisrc/overrides/guya/default/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/src/en/guya/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/guya/default/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from src/en/guya/res/mipmap-xxxhdpi/ic_launcher.png
rename to multisrc/overrides/guya/default/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/src/en/guya/res/web_hi_res_512.png b/multisrc/overrides/guya/default/res/web_hi_res_512.png
similarity index 100%
rename from src/en/guya/res/web_hi_res_512.png
rename to multisrc/overrides/guya/default/res/web_hi_res_512.png
diff --git a/src/en/guya/AndroidManifest.xml b/multisrc/overrides/guya/guya/AndroidManifest.xml
similarity index 100%
rename from src/en/guya/AndroidManifest.xml
rename to multisrc/overrides/guya/guya/AndroidManifest.xml
diff --git a/multisrc/overrides/guya/guya/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/guya/guya/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 000000000..3fed53ada
Binary files /dev/null and b/multisrc/overrides/guya/guya/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/guya/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/guya/guya/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 000000000..b31500c56
Binary files /dev/null and b/multisrc/overrides/guya/guya/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/guya/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/guya/guya/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..325b12a21
Binary files /dev/null and b/multisrc/overrides/guya/guya/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/guya/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/guya/guya/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..06c421da2
Binary files /dev/null and b/multisrc/overrides/guya/guya/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/guya/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/guya/guya/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..76c5d0784
Binary files /dev/null and b/multisrc/overrides/guya/guya/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/multisrc/overrides/guya/guya/res/web_hi_res_512.png b/multisrc/overrides/guya/guya/res/web_hi_res_512.png
new file mode 100644
index 000000000..b367e0c8c
Binary files /dev/null and b/multisrc/overrides/guya/guya/res/web_hi_res_512.png differ
diff --git a/multisrc/overrides/guya/guya/src/Guya.kt b/multisrc/overrides/guya/guya/src/Guya.kt
new file mode 100644
index 000000000..119f49363
--- /dev/null
+++ b/multisrc/overrides/guya/guya/src/Guya.kt
@@ -0,0 +1,11 @@
+package eu.kanade.tachiyomi.extension.en.guya
+
+import eu.kanade.tachiyomi.multisrc.guya.Guya
+
+class Guya : Guya("Guya", "https://guya.moe", "en"){
+    companion object {
+        const val SLUG_PREFIX = "slug:"
+        const val PROXY_PREFIX = "proxy:"
+        const val NESTED_PROXY_API_PREFIX = "/proxy/api/"
+    }
+}
diff --git a/src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/GuyaUrlActivity.kt b/multisrc/overrides/guya/guya/src/GuyaUrlActivity.kt
similarity index 100%
rename from src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/GuyaUrlActivity.kt
rename to multisrc/overrides/guya/guya/src/GuyaUrlActivity.kt
diff --git a/src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/Guya.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/guya/Guya.kt
similarity index 98%
rename from src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/Guya.kt
rename to multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/guya/Guya.kt
index 46339b6d8..372c2d399 100644
--- a/src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/Guya.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/guya/Guya.kt
@@ -1,4 +1,4 @@
-package eu.kanade.tachiyomi.extension.en.guya
+package eu.kanade.tachiyomi.multisrc.guya
 
 import android.app.Application
 import android.content.SharedPreferences
@@ -25,12 +25,12 @@ import uy.kohesive.injekt.Injekt
 import uy.kohesive.injekt.api.get
 import java.util.HashMap
 
-open class Guya : ConfigurableSource, HttpSource() {
+abstract class Guya(
+    override val name: String,
+    override val baseUrl: String,
+    override val lang: String) : ConfigurableSource, HttpSource() {
 
-    final override val name = "Guya"
-    final override val baseUrl = "https://guya.moe"
-    final override val supportsLatest = false
-    final override val lang = "en"
+    override val supportsLatest = false
 
     private val scanlatorCacheUrl = "$baseUrl/api/get_all_groups"
 
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/guya/GuyaGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/guya/GuyaGenerator.kt
new file mode 100644
index 000000000..6b018a90b
--- /dev/null
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/guya/GuyaGenerator.kt
@@ -0,0 +1,24 @@
+package eu.kanade.tachiyomi.multisrc.guya
+
+import generator.ThemeSourceData.SingleLang
+import generator.ThemeSourceGenerator
+
+class GuyaGenerator : ThemeSourceGenerator {
+
+    override val themePkg = "guya"
+
+    override val themeClass = "Guya"
+
+    override val baseVersionCode: Int = 1
+
+    override val sources = listOf(
+        SingleLang("Guya", "https://guya.moe", "en", overrideVersionCode = 18),
+        SingleLang("Danke fürs Lesen", "https://danke.moe", "en", className = "DankeFursLesen"),
+    )
+    companion object {
+        @JvmStatic
+        fun main(args: Array<String>) {
+            GuyaGenerator().createAll()
+        }
+    }
+}
diff --git a/src/en/guya/build.gradle b/src/en/guya/build.gradle
deleted file mode 100644
index 2c407b4e8..000000000
--- a/src/en/guya/build.gradle
+++ /dev/null
@@ -1,12 +0,0 @@
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-
-ext {
-    extName = 'Guya'
-    pkgNameSuffix = "en.guya"
-    extClass = '.Guya'
-    extVersionCode = 18
-    libVersion = '1.2'
-}
-
-apply from: "$rootDir/common.gradle"