From 978498a5aac4f62109efea816327ec14c75e4573 Mon Sep 17 00:00:00 2001 From: Aryan Mane <146648718+ARYAN-9099@users.noreply.github.com> Date: Fri, 3 Jul 2026 18:27:32 +0530 Subject: [PATCH 1/5] Add DreamyTranslationsParser --- plugin/js/parsers/DreamyTranslationsParser.js | 60 +++++++++++++++++++ plugin/popup.html | 3 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 plugin/js/parsers/DreamyTranslationsParser.js diff --git a/plugin/js/parsers/DreamyTranslationsParser.js b/plugin/js/parsers/DreamyTranslationsParser.js new file mode 100644 index 00000000..98f29f65 --- /dev/null +++ b/plugin/js/parsers/DreamyTranslationsParser.js @@ -0,0 +1,60 @@ +"use strict"; + +parserFactory.register("dreamy-translations.com", () => new DreamyTranslationsParser()); +parserFactory.register("dreamytranslations.com", () => new DreamyTranslationsParser()); + +parserFactory.registerManualSelect( + "Dreamy Translations", + () => new DreamyTranslationsParser() +); + +class DreamyTranslationsParser extends Parser { + constructor() { + super(); + } + + async getChapterUrls(dom) { + let links = [...dom.querySelectorAll("a")] + .filter(a => a.href && a.href.includes("/chapter/") && a.hasAttribute("data-chapter-index")); + + let chapters = links.map(a => { + let title = ""; + let chNumSpan = a.querySelector("span.font-medium"); + let titleP = a.querySelector("p.truncate"); + + if (chNumSpan && titleP) { + title = chNumSpan.textContent.trim() + " - " + titleP.textContent.trim(); + } else { + title = a.textContent.trim(); + } + + return { + sourceUrl: a.href, + title: title + }; + }); + + return chapters; + } + + findCoverImageUrl(dom) { + let img = dom.querySelector('img[src*="/covers/"]'); + if (img) { + return img.src; + } + return super.findCoverImageUrl(dom); + } + + removeUnwantedElementsFromContentElement(element) { + util.removeElements(element.querySelectorAll("sup.tl-note")); + super.removeUnwantedElementsFromContentElement(element); + } + + findContent(dom) { + return dom.querySelector(".chapter-content"); + } + + findChapterTitle(dom) { + return dom.querySelector("button.text-2xl span > span"); + } +} diff --git a/plugin/popup.html b/plugin/popup.html index 0930ebb8..b7ebd89d 100644 --- a/plugin/popup.html +++ b/plugin/popup.html @@ -1,4 +1,4 @@ - + @@ -679,6 +679,7 @@

Instructions

+ From 86b07f4ab6507ea56966a3745ce732e5ab846c5d Mon Sep 17 00:00:00 2001 From: Aryan Mane <146648718+ARYAN-9099@users.noreply.github.com> Date: Fri, 3 Jul 2026 18:51:46 +0530 Subject: [PATCH 2/5] fixed double quotes bug --- plugin/js/parsers/DreamyTranslationsParser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/js/parsers/DreamyTranslationsParser.js b/plugin/js/parsers/DreamyTranslationsParser.js index 98f29f65..b2a6264d 100644 --- a/plugin/js/parsers/DreamyTranslationsParser.js +++ b/plugin/js/parsers/DreamyTranslationsParser.js @@ -38,7 +38,7 @@ class DreamyTranslationsParser extends Parser { } findCoverImageUrl(dom) { - let img = dom.querySelector('img[src*="/covers/"]'); + let img = dom.querySelector("img[src*=\\"/covers/\\"]"); if (img) { return img.src; } From 78999fd76f3d3795f021c36f833269d1380ae9ad Mon Sep 17 00:00:00 2001 From: Aryan Mane <146648718+ARYAN-9099@users.noreply.github.com> Date: Fri, 3 Jul 2026 18:59:37 +0530 Subject: [PATCH 3/5] fixed double quotes bug 2 --- plugin/js/parsers/DreamyTranslationsParser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/js/parsers/DreamyTranslationsParser.js b/plugin/js/parsers/DreamyTranslationsParser.js index b2a6264d..c56ee4a1 100644 --- a/plugin/js/parsers/DreamyTranslationsParser.js +++ b/plugin/js/parsers/DreamyTranslationsParser.js @@ -38,7 +38,7 @@ class DreamyTranslationsParser extends Parser { } findCoverImageUrl(dom) { - let img = dom.querySelector("img[src*=\\"/covers/\\"]"); + let img = dom.querySelector("img[src*='/covers/']"); if (img) { return img.src; } From 5ff32410fb27ed44d71efdafc944ad051ce62ca7 Mon Sep 17 00:00:00 2001 From: Aryan Mane <146648718+ARYAN-9099@users.noreply.github.com> Date: Fri, 3 Jul 2026 19:26:50 +0530 Subject: [PATCH 4/5] removed wrong site --- plugin/js/parsers/DreamyTranslationsParser.js | 1 - 1 file changed, 1 deletion(-) diff --git a/plugin/js/parsers/DreamyTranslationsParser.js b/plugin/js/parsers/DreamyTranslationsParser.js index c56ee4a1..db4c10b3 100644 --- a/plugin/js/parsers/DreamyTranslationsParser.js +++ b/plugin/js/parsers/DreamyTranslationsParser.js @@ -1,7 +1,6 @@ "use strict"; parserFactory.register("dreamy-translations.com", () => new DreamyTranslationsParser()); -parserFactory.register("dreamytranslations.com", () => new DreamyTranslationsParser()); parserFactory.registerManualSelect( "Dreamy Translations", From 0aba97954ceb12e3eb362acfa4ee32a059f3558e Mon Sep 17 00:00:00 2001 From: gamebeaker Date: Sat, 4 Jul 2026 00:08:13 +0200 Subject: [PATCH 5/5] remove DreamyTranslationsParser registerManualSelect --- plugin/js/parsers/DreamyTranslationsParser.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugin/js/parsers/DreamyTranslationsParser.js b/plugin/js/parsers/DreamyTranslationsParser.js index db4c10b3..525444a1 100644 --- a/plugin/js/parsers/DreamyTranslationsParser.js +++ b/plugin/js/parsers/DreamyTranslationsParser.js @@ -2,11 +2,6 @@ parserFactory.register("dreamy-translations.com", () => new DreamyTranslationsParser()); -parserFactory.registerManualSelect( - "Dreamy Translations", - () => new DreamyTranslationsParser() -); - class DreamyTranslationsParser extends Parser { constructor() { super();