diff --git a/src/modules/index.ts b/src/modules/index.ts
index 123c53e..acf68f7 100644
--- a/src/modules/index.ts
+++ b/src/modules/index.ts
@@ -1,3 +1,4 @@
export { default as ZeroBywDownloader } from "./zerobyw";
export { default as CopymangaDownloader } from "./copymanga";
export { default as GanmaDownloader } from "./ganma";
+export { default as ManhuarenDownloader } from "./ganma";
diff --git a/src/modules/manhuaren/index.d.ts b/src/modules/manhuaren/index.d.ts
new file mode 100644
index 0000000..b9cd366
--- /dev/null
+++ b/src/modules/manhuaren/index.d.ts
@@ -0,0 +1 @@
+declare namespace ManhuarenAPI {}
diff --git a/src/modules/manhuaren/index.ts b/src/modules/manhuaren/index.ts
new file mode 100644
index 0000000..15e3f93
--- /dev/null
+++ b/src/modules/manhuaren/index.ts
@@ -0,0 +1,29 @@
+///
+
+ import ComicDownloader from "../../core";
+
+ export default class ManhuarenDownloader extends ComicDownloader {
+ static readonly siteName = "manhuaren";
+
+ static canHandleUrl(url: string): boolean {
+ return /manhuaren/.test(url);
+ }
+
+ static readonly preferredCLIPresets: Partial = {};
+
+ static urlCompletion(shorthandUrl: string): string {
+ return shorthandUrl;
+ }
+
+ constructor(protected destination: string, protected configs: Configs = {}) {
+ super(destination, configs);
+ }
+
+ async getSerieInfo(url: string): Promise {
+ throw new Error("Method not implemented.");
+ }
+ protected async getImageList(url: string): Promise<(string | null)[]> {
+ throw new Error("Method not implemented.");
+ }
+ }
+
\ No newline at end of file