├── .gitattributes ├── .github └── ISSUE_TEMPLATE │ ├── 01-website-module-report.yml │ ├── 02-website-module-request.yml │ ├── 03-bug-report.yml │ ├── 04-feature_request.md │ └── config.yml ├── .gitignore ├── .gitmodules ├── README.md ├── baseunits ├── BaseCrypto.pas ├── BaseThread.pas ├── BrotliDec.pas ├── CheckUpdate.pas ├── DBDataProcess.pas ├── DBUpdater.pas ├── DownloadedChaptersDB.pas ├── DownloadsDB.pas ├── Duktape.Api.pas ├── Duktape.pas ├── FMDOptions.pas ├── FMDVars.pas ├── FavoritesDB.pas ├── FileCache.pas ├── GZIPUtils.pas ├── GitHubRepoV3.pas ├── GithubRepo.pas ├── ImagePuzzle.pas ├── Img2Pdf.pas ├── ImgInfos.pas ├── ModuleList.inc ├── SQLiteData.pas ├── SelfUpdater.pas ├── SimpleException │ ├── SimpleException.pas │ ├── SimpleExceptionForm.lfm │ └── SimpleExceptionForm.pas ├── SimpleTranslator.pas ├── StatusBarDownload.pas ├── VirtualPropertyGrid.pas ├── VirtualPropertyGridEditLink.pas ├── WebsiteModules.pas ├── WebsiteModulesSettings.pas ├── WinAPI.pas ├── XQueryEngineHTML.pas ├── animatedgifs │ ├── animatedgif.pas │ └── membitmap.pas ├── httpcookiemanager.pas ├── httpsendthread.pas ├── lua │ ├── LuaBase.pas │ ├── LuaBaseUnit.pas │ ├── LuaClass.pas │ ├── LuaCriticalSection.pas │ ├── LuaCrypto.pas │ ├── LuaDownloadTask.pas │ ├── LuaDuktape.pas │ ├── LuaFMD.pas │ ├── LuaFileUtil.pas │ ├── LuaHTTPSend.pas │ ├── LuaHandler.pas │ ├── LuaIXQValue.pas │ ├── LuaImagePuzzle.pas │ ├── LuaLogger.pas │ ├── LuaMangaFox.pas │ ├── LuaMangaInfo.pas │ ├── LuaMemoryStream.pas │ ├── LuaPCRE2.pas │ ├── LuaPackage.pas │ ├── LuaStrings.pas │ ├── LuaStringsStorage.pas │ ├── LuaSubprocess.pas │ ├── LuaSynaUtil.pas │ ├── LuaUpdateListManager.pas │ ├── LuaUtils.pas │ ├── LuaWebsiteBypass.pas │ ├── LuaWebsiteModuleHandler.pas │ ├── LuaWebsiteModules.pas │ ├── LuaXQuery.pas │ ├── lua.pas │ ├── lua53.pas │ └── lua54.pas ├── modules │ └── MangaFoxWatermark.pas ├── naturalsortunit.pas ├── pcre2.pas ├── pcre2lib.pas ├── synapse │ ├── asn1util.pas │ ├── blcksock.pas │ ├── clamsend.pas │ ├── dnssend.pas │ ├── ftpsend.pas │ ├── ftptsend.pas │ ├── httpsend.pas │ ├── imapsend.pas │ ├── jedi.inc │ ├── kylix.inc │ ├── ldapsend.pas │ ├── mimeinln.pas │ ├── mimemess.pas │ ├── mimepart.pas │ ├── nntpsend.pas │ ├── pingsend.pas │ ├── pop3send.pas │ ├── slogsend.pas │ ├── smtpsend.pas │ ├── snmpsend.pas │ ├── sntpsend.pas │ ├── ssdotnet.inc │ ├── ssfpc.inc │ ├── ssl_cryptlib.pas │ ├── ssl_libssh2.pas │ ├── ssl_openssl.pas │ ├── ssl_openssl_lib.pas │ ├── ssl_sbb.pas │ ├── ssl_streamsec.pas │ ├── sslinux.inc │ ├── ssos2ws1.inc │ ├── ssposix.inc │ ├── sswin32.inc │ ├── synachar.pas │ ├── synacode.pas │ ├── synacrypt.pas │ ├── synadbg.pas │ ├── synafpc.pas │ ├── synaicnv.pas │ ├── synaip.pas │ ├── synamisc.pas │ ├── synaser.pas │ ├── synautil.pas │ ├── synsock.pas │ ├── tlntsend.pas │ └── tzutil.pas ├── uBaseUnit.pas ├── uData.pas ├── uDownloadsManager.pas ├── uEpub.pas ├── uFavoritesManager.pas ├── uGetMangaInfosThread.pas ├── uMisc.pas ├── uPacker.pas ├── uSilentThread.pas ├── uUpdateThread.pas └── webp.pas ├── changelog.txt ├── dist ├── config.json ├── i386-win32 │ ├── 7za.exe │ ├── libbrotlicommon.dll │ ├── libbrotlidec.dll │ ├── libcrypto-1_1.dll │ ├── libduktape.dll │ ├── libpcre2-8.dll │ ├── libssl-1_1.dll │ ├── libwebp.dll │ ├── lua51.dll │ ├── lua54.dll │ ├── pb.dll │ └── sqlite3.dll ├── readme.md └── x86_64-win64 │ ├── 7za.exe │ ├── libbrotlicommon.dll │ ├── libbrotlidec.dll │ ├── libcrypto-1_1-x64.dll │ ├── libduktape.dll │ ├── libpcre2-8.dll │ ├── libssl-1_1-x64.dll │ ├── libwebp.dll │ ├── lua51.dll │ ├── lua54.dll │ ├── pb.dll │ └── sqlite3.dll ├── docs └── SUPPORTED_WEBSITES.md ├── git2revision.bat ├── images └── waiting.gif ├── languages ├── fmd.de.po ├── fmd.el_GR.po ├── fmd.en.po ├── fmd.es.po ├── fmd.fr.po ├── fmd.id_ID.po ├── fmd.pl_PL.po ├── fmd.pot ├── fmd.pt_BR.po ├── fmd.ru_RU.po ├── fmd.tr_TR.po ├── fmd.zh.po ├── lclstrconsts.ca.po ├── lclstrconsts.cs.po ├── lclstrconsts.de.po ├── lclstrconsts.es.po ├── lclstrconsts.fi.po ├── lclstrconsts.fr.po ├── lclstrconsts.he.po ├── lclstrconsts.hu.po ├── lclstrconsts.id.po ├── lclstrconsts.it.po ├── lclstrconsts.ja.po ├── lclstrconsts.lt.po ├── lclstrconsts.nl.po ├── lclstrconsts.no.po ├── lclstrconsts.pl.po ├── lclstrconsts.pt.po ├── lclstrconsts.pt_BR.po ├── lclstrconsts.ru.po ├── lclstrconsts.sk.po ├── lclstrconsts.tr.po ├── lclstrconsts.uk.po ├── lclstrconsts.zh.po ├── lclstrconsts.zh_CN.po ├── updater.el_GR.po ├── updater.en.po ├── updater.es.po ├── updater.fr.po ├── updater.id_ID.po ├── updater.pl_PL.po ├── updater.pt_BR.po ├── updater.ru_RU.po ├── updater.tr_TR.po └── updater.zh.po ├── latest_version.json ├── license.txt ├── licenses ├── 7-Zip Extra License.txt ├── Duktape License.txt ├── FMD-LICENSE.txt ├── GPL-2.0.txt ├── LGPL-2.1.txt ├── LibWebP License.txt ├── Lua License.txt ├── LuaJIT License.txt ├── MPL-1.1.txt ├── OpenSSL License.txt ├── PCRE License.txt └── THIRD-PARTY-LICENSE.txt ├── lua ├── extras │ ├── imagehoster.lua │ └── mangafoxtemplate │ │ ├── 728-01.png │ │ ├── 728-02.png │ │ ├── 728-03.png │ │ ├── 728-04.png │ │ ├── 728-05.png │ │ ├── 728-06.png │ │ ├── 728x48.png │ │ ├── 728x67.png │ │ ├── 728x86-2.png │ │ └── 728x86.png ├── modules │ ├── 18Kami.lua │ ├── 1MangaCo.lua │ ├── 1stKissManhua.lua │ ├── 3asq.lua │ ├── 4UScans.lua │ ├── 8Muses.lua │ ├── 9ekor.lua │ ├── 9hentai.lua │ ├── ARESManga.lua │ ├── AcademyVN.lua │ ├── AinzScansID.lua │ ├── AllHentai.lua │ ├── AllPornComic.lua │ ├── AnigliScans.lua │ ├── AnimExtremist.lua │ ├── AnimatedGlitchedScans.lua │ ├── AnonimusTLS.lua │ ├── AnteikuScans.lua │ ├── AquaManga.lua │ ├── ArangScans.lua │ ├── ArcaneScans.lua │ ├── ArvenScans.lua │ ├── AryaScans.lua │ ├── AsmHentai.lua │ ├── AsmodeusScans.lua │ ├── AsuraScans.lua │ ├── AsuraScansFree.lua │ ├── AuroraScans.lua │ ├── AzComix.lua │ ├── AzoraManga.lua │ ├── BacaKomik.lua │ ├── Batoto.lua │ ├── BiliBiliComics.lua │ ├── BlogTruyen.lua │ ├── BokugenTranslation.lua │ ├── Boosei.lua │ ├── BoratScans.lua │ ├── BoredomSociety.lua │ ├── CartelDeManhwas.lua │ ├── CartoonPorn.lua │ ├── CatManga.lua │ ├── CentralDeMangas.lua │ ├── CerberusSeries.lua │ ├── CoYuHi.lua │ ├── Cocorip.lua │ ├── ComiCake.lua │ ├── ComicExtra.lua │ ├── ComicK.lua │ ├── ComicVn.lua │ ├── ComickTop.lua │ ├── Comico.lua │ ├── ComicoCoID.lua │ ├── CopyPasteScanlation.lua │ ├── CrotPedia.lua │ ├── Cubari.lua │ ├── DarkScans.lua │ ├── DatgarScanlation.lua │ ├── DesuMe.lua │ ├── DetectiveConanAr.lua │ ├── DigitalTeam.lua │ ├── DisasterScans.lua │ ├── DocTruyen5s.lua │ ├── DoujinHentaiNet.lua │ ├── Doujindesu.lua │ ├── Doujinku.lua │ ├── DoujinsCom.lua │ ├── DrakeScans.lua │ ├── DynastyScans.lua │ ├── EGScans.lua │ ├── EHentai.lua │ ├── EZmanga.lua │ ├── EarlyManga.lua │ ├── EdelgardeScans.lua │ ├── EternalMangas.lua │ ├── ExMangaShiro.lua │ ├── FallenAngelsScans.lua │ ├── FanFox.lua │ ├── FireScans.lua │ ├── FlameComics.lua │ ├── FoOlSlide.lua │ ├── FoyScan.lua │ ├── FunManga.lua │ ├── GDScans.lua │ ├── GMangaMe.lua │ ├── GenzToons.lua │ ├── Gntai.lua │ ├── Goldragon.lua │ ├── GourmetScans.lua │ ├── GrafiManga.lua │ ├── GremoryMangas.lua │ ├── GuFengMH.lua │ ├── GuyaMoe.lua │ ├── HamTruyen.lua │ ├── HariManga.lua │ ├── HatigarmScans.lua │ ├── HatsukiManga.lua │ ├── HeavenManga.lua │ ├── HenTalk.lua │ ├── Hentai2Read.lua │ ├── HentaiForce.lua │ ├── HentaiFox.lua │ ├── HentaiHere.lua │ ├── HentaiLib.lua │ ├── HentaiNexus.lua │ ├── HentaiShark.lua │ ├── HentaiSlayer.lua │ ├── HentaiVN.lua │ ├── HerenScan.lua │ ├── Hiperdex.lua │ ├── HitomiLa.lua │ ├── HiveScans.lua │ ├── HolyManga.lua │ ├── HunlightScans.lua │ ├── IMHentai.lua │ ├── IkigaiMangas.lua │ ├── Imgur.lua │ ├── InManga.lua │ ├── InariPikav.lua │ ├── InfamousScanlation.lua │ ├── InfraFandub.lua │ ├── InstaManhwa.lua │ ├── ItsYourRightManhua.lua │ ├── J8jp.lua │ ├── JManga.lua │ ├── JapScan.lua │ ├── JapitComics.lua │ ├── KDTScans.lua │ ├── KKJ.lua │ ├── KLManga.lua │ ├── KSScans.lua │ ├── KaliScan.lua │ ├── Kanzenin.lua │ ├── KappaBeast.lua │ ├── KewnScans.lua │ ├── Kiryuu.lua │ ├── KissManga.lua │ ├── KissMangaIN.lua │ ├── KlikManga.lua │ ├── KomikAV.lua │ ├── KomikCast.lua │ ├── KomikGO.lua │ ├── KomikGue.lua │ ├── KomikIndo.lua │ ├── KomikMama.lua │ ├── KomikManga.lua │ ├── KomikPix.lua │ ├── KomikStation.lua │ ├── KomikUp.lua │ ├── Komikid.lua │ ├── KomiksinID.lua │ ├── Komiktap.lua │ ├── Komiku.lua │ ├── KomikuOne.lua │ ├── KuManga.lua │ ├── Kurumizaka.lua │ ├── LHTranslation.lua │ ├── LSComic.lua │ ├── LectorJPG.lua │ ├── LectorKNS.lua │ ├── LectorManga.lua │ ├── LectorMiau.lua │ ├── LeerManga.lua │ ├── LeitorNet.lua │ ├── LelscanFR.lua │ ├── LewdManhwa.lua │ ├── LikeManga.lua │ ├── LuaScans.lua │ ├── LuminousScans.lua │ ├── LunarScans.lua │ ├── Luscious.lua │ ├── LxHentai.lua │ ├── MGJinx.lua │ ├── MGKomik.lua │ ├── Madara.lua │ ├── MadaraDex.lua │ ├── MadaraScans.lua │ ├── Madokami.lua │ ├── MagusManga.lua │ ├── MaidMangaID.lua │ ├── ManHuaGui.lua │ ├── ManHuaTai.lua │ ├── Manamoa.lua │ ├── MangAs.lua │ ├── Manga1000.lua │ ├── Manga1001.lua │ ├── Manga18Club.lua │ ├── Manga18FX.lua │ ├── Manga18Us.lua │ ├── MangaAe.lua │ ├── MangaAy.lua │ ├── MangaBat.lua │ ├── MangaChanRu.lua │ ├── MangaClash.lua │ ├── MangaDemon.lua │ ├── MangaDenizi.lua │ ├── MangaDex.lua │ ├── MangaDistrict.lua │ ├── MangaDoor.lua │ ├── MangaEden.lua │ ├── MangaEsp.lua │ ├── MangaFire.lua │ ├── MangaForFree.lua │ ├── MangaForFreeNet.lua │ ├── MangaFoxFun.lua │ ├── MangaFreak.lua │ ├── MangaFull.lua │ ├── MangaGG.lua │ ├── MangaGeko.lua │ ├── MangaGo.lua │ ├── MangaGun.lua │ ├── MangaHasu.lua │ ├── MangaHereOnl.lua │ ├── MangaHereToday.lua │ ├── MangaHispano.lua │ ├── MangaHome.lua │ ├── MangaHost.lua │ ├── MangaHubIO.lua │ ├── MangaHubRU.lua │ ├── MangaInn.lua │ ├── MangaKakalot.lua │ ├── MangaKakalotFun.lua │ ├── MangaKatana.lua │ ├── MangaKiss.lua │ ├── MangaKita.lua │ ├── MangaKoma.lua │ ├── MangaKomi.lua │ ├── MangaKu.lua │ ├── MangaLib.lua │ ├── MangaLivre.lua │ ├── MangaMammy.lua │ ├── MangaNato.lua │ ├── MangaNelMe.lua │ ├── MangaNeloToday.lua │ ├── MangaOku.lua │ ├── MangaOni.lua │ ├── MangaOnlineBR.lua │ ├── MangaOnlineBiz.lua │ ├── MangaOnlineFun.lua │ ├── MangaOwl.lua │ ├── MangaPandaOnl.lua │ ├── MangaPark.lua │ ├── MangaPlus.lua │ ├── MangaPro.lua │ ├── MangaRaw1001.lua │ ├── MangaRead.lua │ ├── MangaReader.lua │ ├── MangaReaderSite.lua │ ├── MangaRolls.lua │ ├── MangaRoom.lua │ ├── MangaSaki.lua │ ├── MangaSect.lua │ ├── MangaShiro.lua │ ├── MangaShow.lua │ ├── MangaStream.lua │ ├── MangaSushi.lua │ ├── MangaSusu.lua │ ├── MangaTV.lua │ ├── MangaTX.lua │ ├── MangaTail.lua │ ├── MangaTodayFun.lua │ ├── MangaToon.lua │ ├── MangaTown.lua │ ├── MangaTr.lua │ ├── MangaTube.lua │ ├── MangaVadisi.lua │ ├── MangaWorld.lua │ ├── MangaZuki.lua │ ├── MangaZukiRaws.lua │ ├── Mangaaf.lua │ ├── Mangacan.lua │ ├── Mangajp.lua │ ├── Mangakyo.lua │ ├── Mangalek.lua │ ├── Manhastro.lua │ ├── ManhuaAZ.lua │ ├── ManhuaID.lua │ ├── ManhuaManhwa.lua │ ├── ManhuaNext.lua │ ├── ManhuaPlusOrg.lua │ ├── ManhuaVN.lua │ ├── Manhuafast.lua │ ├── Manhuaga.lua │ ├── Manhuagold.lua │ ├── Manhuaus.lua │ ├── Manhwa18.lua │ ├── Manhwa18Cc.lua │ ├── Manhwa18Net.lua │ ├── Manhwa68.lua │ ├── ManhwaClan.lua │ ├── ManhwaFreak.lua │ ├── ManhwaHentai.lua │ ├── ManhwaHentaiIo.lua │ ├── ManhwaID.lua │ ├── ManhwaIndo.lua │ ├── ManhwaLand.lua │ ├── ManhwaLatino.lua │ ├── ManhwaToon.lua │ ├── ManhwaToons.lua │ ├── ManhwaWeb.lua │ ├── ManhwaZ.lua │ ├── Manhwadesu.lua │ ├── ManwhasOnline.lua │ ├── ManyToon.lua │ ├── ManyToonCom.lua │ ├── ManyToonOrg.lua │ ├── MethodScans.lua │ ├── Mexat.lua │ ├── ModeScanlator.lua │ ├── MyReadingManga.lua │ ├── NHentai.lua │ ├── NHentaiCom.lua │ ├── Nartag.lua │ ├── NecroScans.lua │ ├── NetTruyen.lua │ ├── NetTruyenW.lua │ ├── NetTruyenX.lua │ ├── NeuManga.lua │ ├── NewToki.lua │ ├── NewType.lua │ ├── Ngomik.lua │ ├── NhatTruyen.lua │ ├── NhatTruyenS.lua │ ├── NiAdd.lua │ ├── NiAddBR.lua │ ├── NiAddDE.lua │ ├── NiAddES.lua │ ├── NiAddFR.lua │ ├── NiAddIT.lua │ ├── NiAddRU.lua │ ├── NicoManga.lua │ ├── NightComic.lua │ ├── NightScans.lua │ ├── NineManga.lua │ ├── NineMangaBR.lua │ ├── NineMangaDE.lua │ ├── NineMangaES.lua │ ├── NineMangaFR.lua │ ├── NineMangaIT.lua │ ├── NineMangaRU.lua │ ├── NovelCool.lua │ ├── NovelCoolBR.lua │ ├── NovelCoolDE.lua │ ├── NovelCoolES.lua │ ├── NovelCoolFR.lua │ ├── NovelCoolIT.lua │ ├── NovelCoolRU.lua │ ├── OlimpoScanlation.lua │ ├── OlympusScans.lua │ ├── OmegaScans.lua │ ├── OneMangaInfo.lua │ ├── OnePieceTube.lua │ ├── OneShotScans.lua │ ├── OnlineManga.lua │ ├── ParagonScans.lua │ ├── PhiliaScans.lua │ ├── PhoenixManga.lua │ ├── PlatinumScans.lua │ ├── PlusComico.lua │ ├── PojokManga.lua │ ├── ProjectTime.lua │ ├── PsychoPlay.lua │ ├── Punuprojects.lua │ ├── PurpleCress.lua │ ├── Pururin.lua │ ├── Puzzmos.lua │ ├── QuantumScans.lua │ ├── RagnarokScan.lua │ ├── RaikiScan.lua │ ├── RavenScans.lua │ ├── RavenSeries.lua │ ├── Raw1001.lua │ ├── RawDevart.lua │ ├── RawINU.lua │ ├── RawMangaUpdate.lua │ ├── Rawkuma.lua │ ├── ReadComicBooksOnline.lua │ ├── ReadComicOnline.lua │ ├── ReadComicsOnlineRU.lua │ ├── ReadKomik.lua │ ├── ReadMangaEU.lua │ ├── ReadMangaToday.lua │ ├── ReaperScans.lua │ ├── ReaperScansFR.lua │ ├── ResetScans.lua │ ├── Retsu.lua │ ├── RezoScans.lua │ ├── Ritharscans.lua │ ├── RizzComics.lua │ ├── RoliaScan.lua │ ├── SKSubs.lua │ ├── SamuraiScan.lua │ ├── ScanFR.lua │ ├── ScanOP.lua │ ├── SchaleNetwork.lua │ ├── ScyllaComics.lua │ ├── SeiManga.lua │ ├── SekaiKomik.lua │ ├── SekteDoujin.lua │ ├── SelfMangaRU.lua │ ├── SenManga.lua │ ├── SenshiMangaCOM.lua │ ├── SetsuScans.lua │ ├── Shakai.lua │ ├── SheaManga.lua │ ├── ShiroDoujin.lua │ ├── Shogakukan.lua │ ├── Shqqaa.lua │ ├── SiberOwl.lua │ ├── SirenKomik.lua │ ├── SkyManhuas.lua │ ├── SlashLib.lua │ ├── SleepyPandaScans.lua │ ├── SleepyTranslations.lua │ ├── SoManga.lua │ ├── SoftKomik.lua │ ├── SpiderScans.lua │ ├── StarboundScans.lua │ ├── StoneScape.lua │ ├── SumManga.lua │ ├── SundayWebEvery.lua │ ├── TCBScans.lua │ ├── TMOHentai.lua │ ├── Taadd.lua │ ├── Tapas.lua │ ├── TeamX.lua │ ├── TempleScan.lua │ ├── TempleScanEsp.lua │ ├── TenManga.lua │ ├── TheBlank.lua │ ├── TheNonamesScans.lua │ ├── ThunderScans.lua │ ├── TimelessLeaf.lua │ ├── TonarinoYoungJump.lua │ ├── ToonGod.lua │ ├── Toonily.lua │ ├── Toonkor.lua │ ├── TopComicPorno.lua │ ├── TopManhua.lua │ ├── TopTruyen.lua │ ├── TraduccionesMoonlight.lua │ ├── TresDaos.lua │ ├── TritiniaScans.lua │ ├── TruyenTranhTuan.lua │ ├── Tsumino.lua │ ├── TuMangaOnline.lua │ ├── TukangKomik.lua │ ├── TvYManga.lua │ ├── UchuujinScans.lua │ ├── UkiyoToon.lua │ ├── UnionMangas.lua │ ├── UpKomik.lua │ ├── UsagiOne.lua │ ├── Utoon.lua │ ├── VerComicsPorno.lua │ ├── VerMangasPorno.lua │ ├── VnSharing.lua │ ├── VortexScans.lua │ ├── VortexScansFree.lua │ ├── WPManga.lua │ ├── WantedFansub.lua │ ├── WeLoMa.lua │ ├── WebToons.lua │ ├── WeebCentral.lua │ ├── WeiboManhua.lua │ ├── WeloveManga.lua │ ├── WestManga.lua │ ├── WhiteCloudPavilion.lua │ ├── WickedScans.lua │ ├── WieManga.lua │ ├── WitchScans.lua │ ├── Wnacg.lua │ ├── WoweScans.lua │ ├── WuxiaWorld.lua │ ├── XlecX.lua │ ├── Xmanhwa.lua │ ├── XoxoComics.lua │ ├── YakshaScans.lua │ ├── YoungAceUp.lua │ ├── YugenMangas.lua │ ├── ZeroScans.lua │ ├── ZinManga.lua │ ├── acqqcom.lua │ ├── dm5.lua │ ├── webniichan.lua │ └── xCaliBRScans.lua ├── templates │ ├── FMReader.lua │ ├── FuzzyDoodle.lua │ ├── Genkan.lua │ ├── GroupLe.lua │ ├── HeanCms.lua │ ├── Iken.lua │ ├── KeyoApp.lua │ ├── LibGroup.lua │ ├── Liliana.lua │ ├── MadTheme.lua │ ├── Madara.lua │ ├── MangaBox.lua │ ├── MangaEsp.lua │ ├── MangaHub.lua │ ├── MangaReaderOnline.lua │ ├── MangaThemesia.lua │ ├── MyMangaCMS.lua │ ├── NiAdd.lua │ ├── NineManga.lua │ ├── NovelCool.lua │ ├── SinMH.lua │ ├── WPComics.lua │ └── ZManga.lua ├── utils │ ├── crypto-js.min.js │ ├── cryptojs-aes-format.js │ ├── htmlEntities.lua │ ├── json.lua │ ├── jsunpack.lua │ ├── lzstring.lua │ ├── nodejs.lua │ └── protoc.lua └── websitebypass │ ├── checkantibot.lua │ ├── cloudflare.js │ ├── cloudflare.lua │ ├── cloudflare.py │ ├── customcloudflare.py │ ├── ddos-guard.lua │ └── websitebypass.lua ├── make_release_win.bat ├── mangadownloader ├── forms │ ├── frmAccountManager.lfm │ ├── frmAccountManager.lrj │ ├── frmAccountManager.pas │ ├── frmAccountSet.lfm │ ├── frmAccountSet.lrj │ ├── frmAccountSet.pas │ ├── frmCustomColor.lfm │ ├── frmCustomColor.lrj │ ├── frmCustomColor.pas │ ├── frmDialogYesNo.lfm │ ├── frmDialogYesNo.lrj │ ├── frmDialogYesNo.pas │ ├── frmDropTarget.lfm │ ├── frmDropTarget.lrj │ ├── frmDropTarget.pas │ ├── frmImportFavorites.lfm │ ├── frmImportFavorites.lrj │ ├── frmImportFavorites.pas │ ├── frmLogger.lfm │ ├── frmLogger.lrj │ ├── frmLogger.pas │ ├── frmLuaModulesUpdater.lfm │ ├── frmLuaModulesUpdater.lrj │ ├── frmLuaModulesUpdater.pas │ ├── frmMain.lfm │ ├── frmMain.lrj │ ├── frmMain.pas │ ├── frmNewChapter.lfm │ ├── frmNewChapter.lrj │ ├── frmNewChapter.pas │ ├── frmSelectDirectory.lfm │ ├── frmSelectDirectory.lrj │ ├── frmSelectDirectory.pas │ ├── frmShutdownCounter.lfm │ ├── frmShutdownCounter.lrj │ ├── frmShutdownCounter.pas │ ├── frmTransferFavorites.lfm │ ├── frmTransferFavorites.lrj │ ├── frmTransferFavorites.pas │ ├── frmUpdateDialog.lfm │ ├── frmUpdateDialog.lrj │ ├── frmUpdateDialog.pas │ ├── frmWebsiteOptionCustom.lfm │ ├── frmWebsiteOptionCustom.pas │ ├── frmWebsiteSelection.lfm │ ├── frmWebsiteSelection.lrj │ ├── frmWebsiteSelection.pas │ ├── frmWebsiteSettings.lfm │ ├── frmWebsiteSettings.lrj │ ├── frmWebsiteSettings.pas │ ├── frmcustommessagedlg.lfm │ ├── frmcustommessagedlg.pas │ └── uBackupSettings.pas ├── images │ ├── DownloadTask │ │ ├── dldtasks_sel_01.png │ │ ├── dldtasks_sel_02.gif │ │ ├── dldtasks_sel_03.gif │ │ ├── dldtasks_sel_04.gif │ │ ├── dldtasks_sel_05.gif │ │ ├── dldtasks_sel_06.gif │ │ ├── dldtasks_sel_07.gif │ │ ├── dldtasks_sel_08.png │ │ ├── downloadstasks_01.png │ │ ├── downloadstasks_02.gif │ │ ├── downloadstasks_03.gif │ │ ├── downloadstasks_04.gif │ │ ├── downloadstasks_05.gif │ │ ├── downloadstasks_06.gif │ │ ├── downloadstasks_07.gif │ │ └── downloadstasks_08.gif │ ├── add.ico │ ├── book.ico │ ├── check.png │ ├── completed_mini.png │ ├── cross-button.png │ ├── delete.png │ ├── down.ico │ ├── download.png │ ├── download_all.png │ ├── find.png │ ├── folder.png │ ├── inprogress_mini.png │ ├── movedown.ico │ ├── moveup.ico │ ├── point_mini.png │ ├── question.png │ ├── refresh.png │ ├── remuse.png │ ├── return.ico │ ├── stop.png │ ├── stop_mini.png │ ├── tag.png │ ├── tick-button.png │ └── up.ico ├── md.ico ├── md.lpi └── md.lpr ├── readme.rtf ├── scripts ├── convert_old_modules.bat ├── convert_old_modules_to_replace.txt ├── install_submodules.bat ├── modules.txt └── rename_dbs.bat ├── updater ├── uMain.lfm ├── uMain.lrj ├── uMain.pas ├── uMessage.lfm ├── uMessage.lrj ├── uMessage.pas ├── updater.ico ├── updater.lpi └── updater.lpr ├── updaterslim ├── updater.lpi └── updater.lpr ├── utils └── userdataconverter │ ├── converter.lpi │ └── converter.lpr └── wiki └── images └── cloudflare-workarounds ├── japscan ├── FMDAddCookieSettings.png ├── FMDAddUserAgent.png ├── FMDDownloadWorks.png ├── FMDMangaInfoFound.png ├── FMDMangaInfoNotFound.png ├── FirefoxCookies.png ├── FirefoxUserAgent.png └── FirstTierCloudflareBrowserCheck.png ├── lhtranslation ├── FMDAddCookieSettings.png ├── FMDAddUserAgent.png ├── FMDDownloadWorks.png ├── FMDMangaInfoFound.png ├── FMDMangaInfoNotFound.png ├── FirefoxCookies.png └── FirefoxUserAgent.png └── psychoplay ├── FMDAddCookieSettings.png ├── FMDAddUserAgent.png ├── FMDDownloadFailed.png ├── FMDDownloadWorks.png ├── FirefoxCookies.png ├── FirefoxUserAgent.png └── SecondTierCloudflareBrowserCheck.png /.gitattributes: -------------------------------------------------------------------------------- 1 | # Autodetect text files 2 | * text=auto 3 | 4 | # Text files 5 | *.txt text 6 | *.pas text 7 | *.lfm text 8 | *.lpr text 9 | *.lpi text 10 | *.po text 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/04-feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🌟 Feature request 3 | about: Suggest an idea for this project 4 | title: "[feature request]" 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 🔗 Supported websites 4 | url: https://github.com/dazedcat19/FMD2/blob/master/docs/SUPPORTED_WEBSITES.md 5 | about: List of all supported websites 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Freepascal 2 | *.lps 3 | *.compiled 4 | *.[oa] 5 | *.ppu 6 | *.rst 7 | *.cgi 8 | # *.exe 9 | *.log 10 | *.bak* 11 | fp.ini 12 | fp.cfg 13 | fp.dsk 14 | *.tmp 15 | 16 | # Lazarus backup 17 | **/backup/ 18 | 19 | # fmd 20 | *.lps 21 | *.res 22 | mangadownloader/lib 23 | mangadownloader/languages/ 24 | updater/lib 25 | updater/languages/ 26 | updaterslim/lib 27 | bin/ 28 | Release/ 29 | 3rd/ 30 | 31 | # compiled languages files 32 | *.mo 33 | 34 | # lazarus auto generated resources 35 | *.lrt 36 | 37 | # auto generated by git2revision 38 | baseunits/revision.inc 39 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "3rd/internettools"] 2 | path = 3rd/internettools 3 | url = https://github.com/benibela/internettools.git 4 | ignore = dirty 5 | shallow = true 6 | -------------------------------------------------------------------------------- /baseunits/BaseThread.pas: -------------------------------------------------------------------------------- 1 | unit BaseThread; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils; 9 | 10 | type 11 | 12 | { TBaseThread } 13 | 14 | TBaseThread = class(TThread) 15 | private 16 | FOnCustomTerminate: TNotifyEvent; 17 | function GetTerminated: Boolean; 18 | protected 19 | procedure CallOnCustomTerminate; inline; 20 | {$if FPC_FULLVERSION >= 30202} 21 | procedure TerminatedSet; override; 22 | {$else} 23 | public 24 | procedure Terminate; 25 | {$endif} 26 | public 27 | constructor Create(CreateSuspended: Boolean = True); 28 | destructor Destroy; override; 29 | property IsTerminated: Boolean read GetTerminated; 30 | property OnCustomTerminate: TNotifyEvent read FOnCustomTerminate write FOnCustomTerminate; 31 | end; 32 | 33 | implementation 34 | 35 | { TBaseThread } 36 | 37 | function TBaseThread.GetTerminated: Boolean; 38 | begin 39 | Result := Self.Terminated; 40 | end; 41 | 42 | procedure TBaseThread.CallOnCustomTerminate; 43 | begin 44 | FOnCustomTerminate(Self); 45 | end; 46 | 47 | {$if FPC_FULLVERSION >= 30202} 48 | procedure TBaseThread.TerminatedSet; 49 | begin 50 | {$else} 51 | procedure TBaseThread.Terminate; 52 | begin 53 | inherited Terminate; 54 | {$endif} 55 | if Assigned(FOnCustomTerminate) then 56 | FOnCustomTerminate(Self); 57 | end; 58 | 59 | constructor TBaseThread.Create(CreateSuspended: Boolean); 60 | begin 61 | inherited Create(CreateSuspended); 62 | FreeOnTerminate := True; 63 | end; 64 | 65 | destructor TBaseThread.Destroy; 66 | begin 67 | inherited Destroy; 68 | end; 69 | 70 | end. 71 | 72 | -------------------------------------------------------------------------------- /baseunits/FMDVars.pas: -------------------------------------------------------------------------------- 1 | unit FMDVars; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | frmMain, uDownloadsManager, uFavoritesManager, uUpdateThread, DBDataProcess, 9 | uSilentThread, uBaseUnit, uGetMangaInfosThread, CheckUpdate, 10 | DBUpdater, SelfUpdater, FileChannel, simpleipc; 11 | 12 | var 13 | FormMain: TMainForm; 14 | 15 | isRunDownloadFilter, 16 | isUpdating, 17 | isPendingExitCounter, 18 | isNormalExit: Boolean; 19 | isStartup: Boolean = True; 20 | 21 | //Instance 22 | FMDInstance: TSimpleIPCServer; 23 | 24 | // update fmd through main thread 25 | IsDlgCounter: Boolean = False; 26 | 27 | // file logger 28 | FileLogger: TFileChannel; 29 | 30 | // download manager 31 | DLManager: TDownloadManager; 32 | 33 | // favorite manager 34 | FavoriteManager: TFavoriteManager; 35 | 36 | // main dataprocess for manga list 37 | dataProcess: TDBDataProcess; 38 | 39 | // update manga list thread manager 40 | updateList: TUpdateListManagerThread; 41 | 42 | // dbupdater thread 43 | DBUpdaterThread: TDBUpdaterThread; 44 | 45 | // silent thread for download all or add to favorite 46 | SilentThreadManager: TSilentThreadManager; 47 | 48 | // get manga info 49 | mangaInfo: TMangaInfo; 50 | GetInfosThread: TGetMangaInfosThread; 51 | 52 | // check update thread 53 | CheckUpdateThread: TCheckUpdateThread; 54 | 55 | // self updater thread 56 | SelfUpdaterThread: TSelfUpdaterThread; 57 | 58 | implementation 59 | 60 | end. 61 | 62 | -------------------------------------------------------------------------------- /baseunits/ModuleList.inc: -------------------------------------------------------------------------------- 1 | BlogTruyen, 2 | Comico, 3 | EHentai, 4 | EightMuses, 5 | Hentai2Read, 6 | KissManga, 7 | Madokami, 8 | MangaHome, 9 | RawSenManga, 10 | SundayWebEvery, 11 | Tapas, 12 | TonariNoYoungJump, 13 | TranslateWebtoon, 14 | Tsumino, 15 | WPAdultSiteSkins; 16 | -------------------------------------------------------------------------------- /baseunits/lua/LuaCriticalSection.pas: -------------------------------------------------------------------------------- 1 | unit LuaCriticalSection; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | procedure luaCriticalSectionAddMetaTable(const L: Plua_State; const Obj: Pointer; 11 | const MetaTable, UserData: Integer); 12 | 13 | implementation 14 | 15 | uses 16 | syncobjs, LuaClass; 17 | 18 | type 19 | TUserData = TCriticalSection; 20 | 21 | function lua_tryenter(L: Plua_State): Integer; cdecl; 22 | begin 23 | lua_pushboolean(L, TUserData(luaClassGetObject(L)).TryEnter); 24 | Result := 1; 25 | end; 26 | 27 | function lua_enter(L: Plua_State): Integer; cdecl; 28 | begin 29 | Result := 0; 30 | TUserData(luaClassGetObject(L)).Enter; 31 | end; 32 | 33 | function lua_Leave(L: Plua_State): Integer; cdecl; 34 | begin 35 | Result := 0; 36 | TUserData(luaClassGetObject(L)).Leave; 37 | end; 38 | 39 | const 40 | methods: packed array [0..3] of luaL_Reg = ( 41 | (name: 'TryEnter'; func: @lua_tryenter), 42 | (name: 'Enter'; func: @lua_enter), 43 | (name: 'Leave'; func: @lua_Leave), 44 | (name: nil; func: nil) 45 | ); 46 | 47 | procedure luaCriticalSectionAddMetaTable(const L: Plua_State; 48 | const Obj: Pointer; const MetaTable, UserData: Integer); 49 | begin 50 | with TUserData(Obj) do 51 | begin 52 | luaClassAddFunction(L, MetaTable, UserData, methods); 53 | end; 54 | end; 55 | 56 | initialization 57 | luaClassRegister(TCriticalSection, @luaCriticalSectionAddMetaTable); 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /baseunits/lua/LuaDownloadTask.pas: -------------------------------------------------------------------------------- 1 | unit LuaDownloadTask; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | procedure luaDownloadTaskMetaTable(const L: Plua_State; const Obj: Pointer; 11 | const MetaTable, UserData: Integer); 12 | 13 | implementation 14 | 15 | uses 16 | LuaClass, LuaStrings, uDownloadsManager; 17 | 18 | procedure luaDownloadTaskMetaTable(const L: Plua_State; const Obj: Pointer; 19 | const MetaTable, UserData: Integer); 20 | begin 21 | with TTaskContainer(Obj) do 22 | begin 23 | luaClassAddObject(L, MetaTable, PageLinks, 'PageLinks', @luaStringsAddMetaTable); 24 | luaClassAddObject(L, MetaTable, ChapterLinks, 'ChapterLinks', @luaStringsAddMetaTable); 25 | luaClassAddObject(L, MetaTable, ChapterNames, 'ChapterNames', @luaStringsAddMetaTable); 26 | luaClassAddObject(L, MetaTable, PageContainerLinks, 'PageContainerLinks', @luaStringsAddMetaTable); 27 | luaClassAddObject(L, MetaTable, FileNames, 'FileNames', @luaStringsAddMetaTable); 28 | luaClassAddIntegerProperty(L, MetaTable, 'CurrentDownloadChapterPtr', @CurrentDownloadChapterPtr); 29 | luaClassAddIntegerProperty(L, MetaTable, 'PageNumber', @PageNumber); 30 | luaClassAddIntegerProperty(L, MetaTable, 'CurrentMaxFileNameLength', @TaskThread.CurrentMaxFileNameLength); 31 | luaClassAddStringProperty(L, MetaTable, 'Link', @DownloadInfo.Link); 32 | end; 33 | end; 34 | 35 | initialization 36 | luaClassRegister(TTaskContainer, @luaDownloadTaskMetaTable); 37 | 38 | end. 39 | 40 | -------------------------------------------------------------------------------- /baseunits/lua/LuaDuktape.pas: -------------------------------------------------------------------------------- 1 | unit LuaDuktape; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | implementation 11 | 12 | uses Duktape, MultiLog, LuaUtils, LuaPackage; 13 | 14 | function lua_execjs(L: Plua_State): Integer; cdecl; 15 | begin 16 | Result := 0; 17 | try 18 | lua_pushstring(L, Duktape.ExecJS(luaToString(L, 1))); 19 | Result := 1; 20 | except 21 | on E: Exception do 22 | Logger.SendError('Duktape.ExecJS() ' + E.Message); 23 | end; 24 | end; 25 | 26 | const 27 | methods: packed array [0..1] of luaL_Reg = ( 28 | (name: 'ExecJS'; func: @lua_execjs), 29 | (name: nil; func: nil) 30 | ); 31 | 32 | function luaopen_duktape(L: Plua_State): Integer; cdecl; 33 | begin 34 | luaNewLibTable(L, methods); 35 | Result := 1; 36 | end; 37 | 38 | initialization 39 | LuaPackage.AddLib('duktape', @luaopen_duktape); 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /baseunits/lua/LuaFMD.pas: -------------------------------------------------------------------------------- 1 | unit LuaFMD; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | implementation 11 | 12 | uses 13 | LuaUtils, LuaPackage, FMDOptions, SimpleTranslator; 14 | 15 | function luaopen_fmd(L: Plua_State): Integer; cdecl; 16 | var 17 | t: Integer; 18 | begin 19 | t := luaNewTable(L); 20 | luaAddStringToTable(L, t, 'Directory', FMD_DIRECTORY); 21 | luaAddStringToTable(L, t, 'ExeName', FMD_EXENAME); 22 | luaAddStringToTable(L, t, 'Version', FMD_VERSION_STRING); 23 | luaAddStringToTable(L, t, 'Revision', REVISION_NUMBER); 24 | luaAddStringToTable(L, t, 'LuaDirectory', LUA_REPO_FOLDER); 25 | luaAddStringToTable(L, t, 'SelectedLanguage', SimpleTranslator.LastSelected); 26 | Result := 1; 27 | end; 28 | 29 | initialization 30 | LuaPackage.AddLib('env', @luaopen_fmd); 31 | 32 | end. 33 | -------------------------------------------------------------------------------- /baseunits/lua/LuaFileUtil.pas: -------------------------------------------------------------------------------- 1 | unit LuaFileUtil; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | implementation 11 | 12 | uses LuaUtils, LuaPackage, LazFileUtils, uBaseUnit; 13 | 14 | function lua_extractfilename(L: Plua_State): Integer; cdecl; 15 | begin 16 | lua_pushstring(L, ExtractFileName(luaToString(L, 1))); 17 | Result := 1; 18 | end; 19 | 20 | function lua_extractfilenameonly(L: Plua_State): Integer; cdecl; 21 | begin 22 | lua_pushstring(L, ExtractFileNameOnly(luaToString(L, 1))); 23 | Result := 1; 24 | end; 25 | 26 | function lua_SerializeAndMaintainNames(L: Plua_State): Integer; cdecl; 27 | begin 28 | if lua_isuserdata(L, 1) then 29 | SerializeAndMaintainNames(TStrings(luaToUserData(L, 1))); 30 | Result := 0; 31 | end; 32 | 33 | const 34 | methods: packed array [0..3] of luaL_Reg = ( 35 | (name: 'ExtractFileName'; func: @lua_extractfilename), 36 | (name: 'ExtractFileNameOnly'; func: @lua_extractfilenameonly), 37 | (name: 'SerializeAndMaintainNames'; func: @lua_SerializeAndMaintainNames), 38 | (name: nil; func: nil) 39 | ); 40 | 41 | function luaopen_fileutil(L: Plua_State): Integer; cdecl; 42 | begin 43 | luaNewLibTable(L, methods); 44 | Result := 1; 45 | end; 46 | 47 | initialization 48 | LuaPackage.AddLib('fileutil', @luaopen_fileutil); 49 | 50 | end. 51 | 52 | -------------------------------------------------------------------------------- /baseunits/lua/LuaLogger.pas: -------------------------------------------------------------------------------- 1 | unit LuaLogger; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | implementation 11 | 12 | uses 13 | MultiLog, LuaUtils, LuaPackage; 14 | 15 | function logger_send(L: Plua_State): Integer; cdecl; 16 | begin 17 | Result := 0; 18 | Logger.Send(luaToString(L, 1)); 19 | end; 20 | 21 | function logger_sendwarning(L: Plua_State): Integer; cdecl; 22 | begin 23 | Result := 0; 24 | Logger.SendWarning(luaToString(L, 1)); 25 | end; 26 | 27 | function logger_senderror(L: Plua_State): Integer; cdecl; 28 | begin 29 | Result := 0; 30 | Logger.SendError(luaToString(L, 1)); 31 | end; 32 | 33 | const 34 | methods: packed array [0..3] of luaL_Reg = ( 35 | (name: 'Send'; func: @logger_send), 36 | (name: 'SendWarning'; func: @logger_sendwarning), 37 | (name: 'SendError'; func: @logger_senderror), 38 | (name: nil; func: nil) 39 | ); 40 | 41 | function luaopen_logger(L: Plua_State): Integer; cdecl; 42 | begin 43 | luaNewLibTable(L, methods); 44 | Result := 1; 45 | end; 46 | 47 | initialization 48 | LuaPackage.AddLib('logger', @luaopen_logger); 49 | 50 | end. 51 | -------------------------------------------------------------------------------- /baseunits/lua/LuaMangaFox.pas: -------------------------------------------------------------------------------- 1 | unit LuaMangaFox; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | implementation 11 | 12 | uses 13 | LuaUtils, LuaPackage, MangaFoxWatermark; 14 | 15 | function mf_loadtemplate(L: Plua_State): Integer; cdecl; 16 | begin 17 | lua_pushinteger(L, MangaFoxWatermark.LoadTemplate(luaToString(L, 1))); 18 | Result := 1; 19 | end; 20 | 21 | function mf_removewatermark(L: Plua_State): Integer; cdecl; 22 | var 23 | ASaveAsPNG: Boolean; 24 | begin 25 | ASaveAsPNG := False; 26 | if lua_gettop(L) = 2 then 27 | ASaveAsPNG := lua_toboolean(L, 2); 28 | lua_pushboolean(L, MangaFoxWatermark.RemoveWatermark(luaToString(L, 1), ASaveAsPNG)); 29 | Result := 1; 30 | end; 31 | 32 | const 33 | methods: packed array [0..2] of luaL_Reg = ( 34 | (name: 'LoadTemplate'; func: @mf_loadtemplate), 35 | (name: 'RemoveWatermark'; func: @mf_removewatermark), 36 | (name: nil; func: nil) 37 | ); 38 | 39 | function luaopen_mangafoxwatermark(L: Plua_State): Integer; cdecl; 40 | begin 41 | luaNewLibTable(L, methods); 42 | Result := 1; 43 | end; 44 | 45 | initialization 46 | LuaPackage.AddLib('mangafoxwatermark', @luaopen_mangafoxwatermark); 47 | 48 | end. 49 | -------------------------------------------------------------------------------- /baseunits/lua/LuaMangaInfo.pas: -------------------------------------------------------------------------------- 1 | unit LuaMangaInfo; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | procedure luaMangaInfoAddMetaTable(const L: Plua_State; const Obj: Pointer; 11 | const MetaTable, UserData: Integer); 12 | 13 | implementation 14 | 15 | uses 16 | uBaseUnit, LuaClass, LuaStrings; 17 | 18 | procedure luaMangaInfoAddMetaTable(const L: Plua_State; const Obj: Pointer; 19 | const MetaTable, UserData: Integer); 20 | begin 21 | with TMangaInfo(Obj) do 22 | begin 23 | luaClassAddStringProperty(L, MetaTable, 'URL', @URL); 24 | luaClassAddStringProperty(L, MetaTable, 'Title', @Title); 25 | luaClassAddStringProperty(L, MetaTable, 'AltTitles', @AltTitles); 26 | luaClassAddStringProperty(L, MetaTable, 'Link', @Link); 27 | luaClassAddStringProperty(L, MetaTable, 'CoverLink', @CoverLink); 28 | luaClassAddStringProperty(L, MetaTable, 'Authors', @Authors); 29 | luaClassAddStringProperty(L, MetaTable, 'Artists', @Artists); 30 | luaClassAddStringProperty(L, MetaTable, 'Genres', @Genres); 31 | luaClassAddStringProperty(L, MetaTable, 'Status', @Status); 32 | luaClassAddStringProperty(L, MetaTable, 'Summary', @Summary); 33 | luaClassAddObject(L, MetaTable, ChapterNames, 'ChapterNames', @luaStringsAddMetaTable); 34 | luaClassAddObject(L, MetaTable, ChapterLinks, 'ChapterLinks', @luaStringsAddMetaTable); 35 | end; 36 | end; 37 | 38 | initialization 39 | luaClassRegister(TMangaInfo, @luaMangaInfoAddMetaTable); 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /baseunits/lua/LuaSynaUtil.pas: -------------------------------------------------------------------------------- 1 | unit LuaSynaUtil; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}, synautil; 9 | 10 | procedure luaSynaUtilRegister(L: Plua_State); inline; 11 | 12 | implementation 13 | 14 | uses 15 | LuaUtils; 16 | 17 | function lua_getbetween(L: Plua_State): Integer; cdecl; 18 | begin 19 | lua_pushstring(L, GetBetween(luaToString(L, 1), luaToString(L, 2), luaToString(L, 3))); 20 | Result := 1; 21 | end; 22 | 23 | function lua_separateleft(L: Plua_State): Integer; cdecl; 24 | begin 25 | lua_pushstring(L, SeparateLeft(luaToString(L, 1), luaToString(L, 2))); 26 | Result := 1; 27 | end; 28 | 29 | function lua_separateright(L: Plua_State): Integer; cdecl; 30 | begin 31 | lua_pushstring(L, SeparateRight(luaToString(L, 1), luaToString(L, 2))); 32 | Result := 1; 33 | end; 34 | 35 | const 36 | methods: packed array [0..3] of luaL_Reg = ( 37 | (name: 'GetBetween'; func: @lua_getbetween), 38 | (name: 'SeparateLeft'; func: @lua_separateleft), 39 | (name: 'SeparateRight'; func: @lua_separateright), 40 | (name: nil; func: nil) 41 | ); 42 | 43 | procedure luaSynaUtilRegister(L: Plua_State); 44 | begin 45 | luaNewLib(L, methods); 46 | end; 47 | 48 | end. 49 | 50 | -------------------------------------------------------------------------------- /baseunits/lua/LuaUpdateListManager.pas: -------------------------------------------------------------------------------- 1 | unit LuaUpdateListManager; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, {$ifdef luajit}lua{$else}{$ifdef lua54}lua54{$else}lua53{$endif}{$endif}; 9 | 10 | procedure luaUpdateListManagerAddMetaTable(const L: Plua_State; const Obj: Pointer; 11 | const MetaTable, UserData: Integer); 12 | 13 | implementation 14 | 15 | uses 16 | LuaClass, LuaUtils, uUpdateThread; 17 | 18 | function lua_GetCurrentDirectoryPageNumber(L: Plua_State): Integer; cdecl; 19 | begin 20 | lua_pushinteger(L, TUpdateListManagerThread(luaClassGetObject(L)).CurrentDirectoryPageNumber); 21 | Result := 1; 22 | end; 23 | 24 | function lua_SetCurrentDirectoryPageNumber(L: Plua_State): Integer; cdecl; 25 | begin 26 | Result := 0; 27 | TUpdateListManagerThread(luaClassGetObject(L)).CurrentDirectoryPageNumber := lua_tointeger(L, 1); 28 | end; 29 | 30 | function lua_updateStatusText(L: Plua_State): Integer; cdecl; 31 | begin 32 | Result:=0; 33 | TUpdateListManagerThread(luaClassGetObject(L)).UpdateStatusFormatted(luaToString(L, 1)); 34 | end; 35 | 36 | procedure luaUpdateListManagerAddMetaTable(const L: Plua_State; 37 | const Obj: Pointer; const MetaTable, UserData: Integer); 38 | begin 39 | luaClassAddProperty(L, MetaTable, UserData, 'CurrentDirectoryPageNumber', @lua_GetCurrentDirectoryPageNumber, @lua_SetCurrentDirectoryPageNumber); 40 | luaClassAddFunction(L, MetaTable, UserData, 'UpdateStatusText', @lua_updateStatusText); 41 | end; 42 | 43 | initialization 44 | luaClassRegister(TUpdateListManagerThread, @luaUpdateListManagerAddMetaTable); 45 | 46 | end. 47 | 48 | -------------------------------------------------------------------------------- /baseunits/synapse/kylix.inc: -------------------------------------------------------------------------------- 1 | // 2 | // This is FPC-incompatible code and was excluded from jedi.inc for this reason 3 | // 4 | // Kylix 3/C++ for some reason evaluates CompilerVersion comparisons to False, 5 | // if the constant to compare with is a floating point value - weird. 6 | // The "+" sign prevents Kylix/Delphi from issueing a warning about comparing 7 | // signed and unsigned values. 8 | // 9 | {$IF not Declared(CompilerVersion)} 10 | {$DEFINE KYLIX1} 11 | {$DEFINE COMPILER6} 12 | {$DEFINE DELPHICOMPILER6} 13 | {$DEFINE RTL140_UP} 14 | {$ELSEIF Declared(CompilerVersion) and (CompilerVersion > +14)} 15 | {$DEFINE KYLIX2} 16 | {$DEFINE COMPILER6} 17 | {$DEFINE DELPHICOMPILER6} 18 | {$DEFINE RTL142_UP} 19 | {$ELSEIF Declared(CompilerVersion) and (CompilerVersion < +15)} 20 | {$DEFINE KYLIX3} 21 | {$DEFINE COMPILER6} 22 | {$IFNDEF BCB} 23 | {$DEFINE DELPHICOMPILER6} 24 | {$ENDIF} 25 | {$DEFINE RTL145_UP} 26 | {$ELSE} 27 | Add new Kylix version 28 | {$IFEND} 29 | 30 | 31 | -------------------------------------------------------------------------------- /baseunits/synapse/ssl_streamsec.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/baseunits/synapse/ssl_streamsec.pas -------------------------------------------------------------------------------- /baseunits/synapse/synautil.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/baseunits/synapse/synautil.pas -------------------------------------------------------------------------------- /dist/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config" : { 3 | "default_selected_websites" : "0d3653a8d9b747a381374f32e0a1641e,8e7bd7b38aa041aa9bc1bddeec33b6f4,de4684706931463da794bb45377f4c3e,e9f4e7fe53bc4ff6921db6d67c9b9fb2", 4 | "db_url" : "https://raw.githubusercontent.com/dazedcat19/FMD2-DB/master/7z/.7z", 5 | "update_url" : "https://raw.githubusercontent.com/dazedcat19/FMD2/master/latest_version.json", 6 | "update_package_name" : "updatepackage.7z" 7 | }, 8 | "GitHub" : { 9 | "api_url" : "https://api.github.com/", 10 | "download_url" : "https://raw.githubusercontent.com/", 11 | "owner" : "dazedcat19", 12 | "name" : "FMD2", 13 | "ref" : "master", 14 | "path" : "lua" 15 | } 16 | } -------------------------------------------------------------------------------- /dist/i386-win32/7za.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/7za.exe -------------------------------------------------------------------------------- /dist/i386-win32/libbrotlicommon.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/libbrotlicommon.dll -------------------------------------------------------------------------------- /dist/i386-win32/libbrotlidec.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/libbrotlidec.dll -------------------------------------------------------------------------------- /dist/i386-win32/libcrypto-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/libcrypto-1_1.dll -------------------------------------------------------------------------------- /dist/i386-win32/libduktape.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/libduktape.dll -------------------------------------------------------------------------------- /dist/i386-win32/libpcre2-8.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/libpcre2-8.dll -------------------------------------------------------------------------------- /dist/i386-win32/libssl-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/libssl-1_1.dll -------------------------------------------------------------------------------- /dist/i386-win32/libwebp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/libwebp.dll -------------------------------------------------------------------------------- /dist/i386-win32/lua51.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/lua51.dll -------------------------------------------------------------------------------- /dist/i386-win32/lua54.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/lua54.dll -------------------------------------------------------------------------------- /dist/i386-win32/pb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/pb.dll -------------------------------------------------------------------------------- /dist/i386-win32/sqlite3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/i386-win32/sqlite3.dll -------------------------------------------------------------------------------- /dist/readme.md: -------------------------------------------------------------------------------- 1 | Libraries compiled with `MSYS2/mingw-w64 gcc 9.2.0`: 2 | 3 | * Brotli 1.0.8 4 | * Duktape 2.5.0 5 | * LibWebP 1.1.0 6 | * Lua 5.4.2 7 | * OpenSSL 1.1.1g 8 | * PCRE 10.35-RC2 9 | 10 | Libraries compiled with `MSYS2/mingw-w64 gcc 10.2.0`: 11 | * SQLite 3.46.0 with compile-time options `-DSQLITE_LIMIT_ATTACHED=125` 12 | 13 | Libraries compiled with `MSVC 19.29.30136`: 14 | * Lua-protobuf, [master@75e3b51b8e8dda0343c9b4956e0c33b6eef44aa6](https://github.com/starwing/lua-protobuf/tree/75e3b51b8e8dda0343c9b4956e0c33b6eef44aa6) 15 | 16 | Binaries: 17 | * 7-Zip Standalone (7za.exe) 19.00 18 | -------------------------------------------------------------------------------- /dist/x86_64-win64/7za.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/7za.exe -------------------------------------------------------------------------------- /dist/x86_64-win64/libbrotlicommon.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/libbrotlicommon.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/libbrotlidec.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/libbrotlidec.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/libcrypto-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/libcrypto-1_1-x64.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/libduktape.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/libduktape.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/libpcre2-8.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/libpcre2-8.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/libssl-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/libssl-1_1-x64.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/libwebp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/libwebp.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/lua51.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/lua51.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/lua54.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/lua54.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/pb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/pb.dll -------------------------------------------------------------------------------- /dist/x86_64-win64/sqlite3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/dist/x86_64-win64/sqlite3.dll -------------------------------------------------------------------------------- /git2revision.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | SET revfile=%~1 3 | git --version 1>nul 2>nul 4 | IF %ERRORLEVEL% EQU 0 (CALL :gitrev) else (CALL :emptyrev) 5 | GOTO :EOF 6 | 7 | :gitrev 8 | ECHO const>"%revfile%" 9 | FOR /F %%i IN ('git rev-list --count --first-parent HEAD') DO SET revnumber=%%i 10 | FOR /F %%i IN ('git log --pretty^=%%H -1') DO SET revsha=%%i 11 | ECHO REVISION_NUMBER = '%revnumber%';>>"%revfile%" 12 | ECHO REVISION_SHA = '%revsha%';>>"%revfile%" 13 | GOTO :EOF 14 | 15 | :emptyrev 16 | ECHO const>"%revfile%" 17 | ECHO REVISION_NUMBER = '';>>"%revfile%" 18 | ECHO REVISION_SHA = '';>>"%revfile%" 19 | GOTO :EOF 20 | -------------------------------------------------------------------------------- /images/waiting.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/images/waiting.gif -------------------------------------------------------------------------------- /latest_version.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "automatically build with make_release_win.bat", 3 | "i386-win32": { 4 | "version": "2.0.34.5", 5 | "download_url": "https://github.com/dazedcat19/FMD2/releases/download/2.0.34.5/fmd_2.0.34.5_i386-win32.7z", 6 | "changelog_url": "https://raw.githubusercontent.com/dazedcat19/FMD2/master/changelog.txt" 7 | } 8 | , 9 | "x86_64-win64": { 10 | "version": "2.0.34.5", 11 | "download_url": "https://github.com/dazedcat19/FMD2/releases/download/2.0.34.5/fmd_2.0.34.5_x86_64-win64.7z", 12 | "changelog_url": "https://raw.githubusercontent.com/dazedcat19/FMD2/master/changelog.txt" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /licenses/7-Zip Extra License.txt: -------------------------------------------------------------------------------- 1 | 7-Zip Extra 2 | ~~~~~~~~~~~ 3 | License for use and distribution 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | Copyright (C) 1999-2019 Igor Pavlov. 7 | 8 | 7-Zip Extra files are under the GNU LGPL license. 9 | 10 | 11 | Notes: 12 | You can use 7-Zip Extra on any computer, including a computer in a commercial 13 | organization. You don't need to register or pay for 7-Zip. 14 | 15 | 16 | GNU LGPL information 17 | -------------------- 18 | 19 | This library is free software; you can redistribute it and/or 20 | modify it under the terms of the GNU Lesser General Public 21 | License as published by the Free Software Foundation; either 22 | version 2.1 of the License, or (at your option) any later version. 23 | 24 | This library is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 27 | Lesser General Public License for more details. 28 | 29 | You can receive a copy of the GNU Lesser General Public License from 30 | http://www.gnu.org/ 31 | 32 | -------------------------------------------------------------------------------- /licenses/Duktape License.txt: -------------------------------------------------------------------------------- 1 | =============== 2 | Duktape license 3 | =============== 4 | 5 | (http://opensource.org/licenses/MIT) 6 | 7 | Copyright (c) 2013-2018 by Duktape authors (see AUTHORS.rst) 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy 10 | of this software and associated documentation files (the "Software"), to deal 11 | in the Software without restriction, including without limitation the rights 12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the Software is 14 | furnished to do so, subject to the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be included in 17 | all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /licenses/LibWebP License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, Google Inc. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the 13 | distribution. 14 | 15 | * Neither the name of Google nor the names of its contributors may 16 | be used to endorse or promote products derived from this software 17 | without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | -------------------------------------------------------------------------------- /licenses/Lua License.txt: -------------------------------------------------------------------------------- 1 | Copyright © 1994–2017 Lua.org, PUC-Rio. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be included 13 | in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 16 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 21 | OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /licenses/THIRD-PARTY-LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/licenses/THIRD-PARTY-LICENSE.txt -------------------------------------------------------------------------------- /lua/extras/imagehoster.lua: -------------------------------------------------------------------------------- 1 | function GetImageHosterDirectURL(url) 2 | local imghosts = { 3 | ['imagetwist%.com'] = '//img[@class="pic img img-responsive"]/@src', 4 | ['imgchili%.net'] = '//img[@id="show_image"]/@src', 5 | ['imgbox%.com'] = '//img[@id="img"]/@src ' 6 | } 7 | local u, r, x, k, v = url:lower(), '' 8 | for k, v in pairs(imghosts) do 9 | if u:find(k) then 10 | x = v 11 | break 12 | end 13 | end 14 | if x and HTTP.GET(url) then 15 | r = CreateTXQuery(HTTP.Document).x.XPathString(x) 16 | end 17 | return r 18 | end 19 | -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728-01.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728-02.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728-03.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728-04.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728-05.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728-06.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728x48.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728x67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728x67.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728x86-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728x86-2.png -------------------------------------------------------------------------------- /lua/extras/mangafoxtemplate/728x86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/extras/mangafoxtemplate/728x86.png -------------------------------------------------------------------------------- /lua/modules/AinzScansID.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '76d5a1cced9346c08ee2cc0f27875eb0' 8 | m.Name = 'Ainz Scans ID' 9 | m.RootURL = 'https://ainzscans.net' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/AnonimusTLS.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '611c54b29bab4e6385c9955964603698' 8 | m.Name = 'AnonimusTLS' 9 | m.RootURL = 'https://anonimustls.com' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaEsp' 21 | -- DirectoryPagination = '/comics' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/AquaManga.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '071dc7becf3a41c8b4bd9cf62413723a' 8 | m.Name = 'Aqua Manga' 9 | m.RootURL = 'https://aquareader.net' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/ArcaneScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '6425c06121494842b49bfb73112f8596' 8 | m.Name = 'Arcane Scans' 9 | m.RootURL = 'https://arcanescans.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/AryaScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '9300f8755204497f998fdb1d831e8b49' 8 | m.Name = 'Arya Scans' 9 | m.RootURL = 'https://aryascans.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/AsuraScansFree.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'fb422561c6544782b69eeaaefe610b18' 8 | m.Name = 'Asura Scans Free' 9 | m.RootURL = 'https://asurascansfree.com' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | DirectoryPagination = '/serie/list-mode/' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for the current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/BokugenTranslation.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '64c9797a43e24205948e895f4a148fc1' 8 | m.Name = 'Bokugen Translation' 9 | m.RootURL = 'https://bokugents.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Boosei.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '755ce08dc1a74f69b283cb45b7af56c1' 8 | m.Name = 'Boosei' 9 | m.RootURL = 'https://www.boosei.net' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/BoratScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'ccd18d88c32e4cf9bd8a7847dafd7f34' 8 | m.Name = 'Borat Scans' 9 | m.RootURL = 'https://boratscans.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/CerberusSeries.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '1256a3ce5097432d8f7dcc43881d3ca1' 8 | m.Name = 'Cerberus Series' 9 | m.RootURL = 'https://legionscans.com' 10 | m.Category = 'Spanish-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Cocorip.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '72cd18e467454c14938e0e9efcc6c80f' 8 | m.Name = 'Cocorip' 9 | m.RootURL = 'https://cocorip.net' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/DetectiveConanAr.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '784d8c809fa042109663230a2afdd88a' 8 | m.Name = 'شبكة كونان العربية (detectiveconanar)' 9 | m.RootURL = 'https://manga.detectiveconanar.com' 10 | m.Category = 'Arabic' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Doujinku.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '5ee374e402124d55a1d6681ea46d6881' 8 | m.Name = 'Doujinku' 9 | m.RootURL = 'https://doujinku.xyz' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/DrakeScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '4d4affa9d7684180b64fe6c65f3f5b5d' 8 | m.Name = 'Drake Scans' 9 | m.RootURL = 'https://drakecomic.org' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/FireScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f4938b49be4c47ecb03289e1f0b90538' 8 | m.Name = 'FireScans' 9 | m.RootURL = 'https://firescans.xyz' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/FoyScan.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '5ec0e2eb930c4a8bb3d1e9ae23962cf0' 8 | m.Name = 'FoyScan' 9 | m.RootURL = 'https://foyscan.xyz' 10 | m.Category = 'Spanish-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaEsp' 21 | -- DirectoryPagination = '/comics' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/GremoryMangas.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'b0a76555c0a5490c81c549c7473f543d' 8 | m.Name = 'Gremory Mangas' 9 | m.RootURL = 'https://gremorymangas.com' 10 | m.Category = 'Spanish-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Hiperdex.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '2b5f00cfbb124546b6c11a7e5ec9c403' 8 | m.Name = 'HiperDEX' 9 | m.RootURL = 'https://hiperdex.com' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/InfraFandub.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '0611830535274dfa9f0d879dc1968fdb' 8 | m.Name = 'InfraFandub' 9 | m.RootURL = 'https://infrafandub.com' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/KDTScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '94caa4da3f334418b27bc1ba7e127b57' 8 | m.Name = 'KDT Scans' 9 | m.RootURL = 'https://kdt.akan01.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/KSScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '8313871a984b4b6c8de41860fc5ec96e' 8 | m.Name = 'KS Scans' 9 | m.RootURL = 'https://ksgroupscans.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/Kiryuu.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '031f3cc0ae3346ad9b8c33d5377891e9' 8 | m.Name = 'Kiryuu' 9 | m.RootURL = 'https://kiryuu.id' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/KlikManga.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '8949b01268974dd8a5798fec469deb65' 8 | m.Name = 'KlikManga' 9 | m.RootURL = 'https://klikmanga.com' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/KomikGO.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '1a0209ad657a49fcb7297f8c5318122c' 8 | m.Name = 'KomikGO' 9 | m.RootURL = 'https://komikgo.xyz' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/KomikPix.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'ed137c7584054880951c49d1be3f6863' 8 | m.Name = 'KomikPix' 9 | m.RootURL = 'https://komikpix.com' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | DirectoryPagination = '/hentai/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/KomiksinID.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '009bf49bc17a4a2a8e1c79cce6867651' 8 | m.Name = 'Komiksin ID' 9 | m.RootURL = 'https://komiksin.id' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end 46 | -------------------------------------------------------------------------------- /lua/modules/Komiktap.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f9adee01635a4ff48fdff5164a65d6dd' 8 | m.Name = 'Komiktap' 9 | m.RootURL = 'https://komiktap.info' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/KomikuOne.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'abf2560affbe4af69b277257fc599151' 8 | m.Name = 'KomikuOne' 9 | m.RootURL = 'https://komiku.one' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/LectorJPG.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '223c54b29bab4e6385c9955964af3698' 8 | m.Name = 'LectorJPG' 9 | m.RootURL = 'https://lectorjpg.com' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaEsp' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/LectorMiau.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f3098381220841f8b13928e682de4d7e' 8 | m.Name = 'LectorMiau' 9 | m.RootURL = 'https://lectormiau.com' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/LunarScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '9bbeafa5a7fd47b49071c7317abeeaad' 8 | m.Name = 'LunarScans' 9 | m.RootURL = 'https://lunarscan.org' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/MaidMangaID.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '7a74b2abda1d4b329ee1d1fa58866c03' 8 | m.Name = 'MaidMangaID' 9 | m.RootURL = 'https://www.maid.my.id' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.ZManga' 21 | -- DirectoryPagination = '/manga-list/' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/MangaDistrict.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '6d66888d64ef45e0a97d1912bda87282' 8 | m.Name = 'Manga District' 9 | m.RootURL = 'https://mangadistrict.com' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/MangaEsp.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f84831e21ba14822ba44107103fa1332' 8 | m.Name = 'MangaEsp' 9 | m.RootURL = 'https://mangaesp.net' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaEsp' 21 | -- DirectoryPagination = '/comics' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/MangaGG.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'dfdc6258457c45b486b480b40c4bf75b' 8 | m.Name = 'MangaGG' 9 | m.RootURL = 'https://mangagg.com' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/MangaKita.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'b543e37b656e43ffb3faa034eee6c945' 8 | m.Name = 'MangaKita' 9 | m.RootURL = 'https://mangakita.id' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/MangaKu.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/lua/modules/MangaKu.lua -------------------------------------------------------------------------------- /lua/modules/MangaLivre.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '8b26f4b1272441a992f908356c6530a4' 8 | m.Name = 'MangaLivre' 9 | m.RootURL = 'https://mangalivre.tv' 10 | m.Category = 'Portuguese' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/MangaMammy.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '9db30da1f99045f3b2bae866b078b8e3' 8 | m.Name = 'MangaMammy' 9 | m.RootURL = 'https://mangamammy.ru' 10 | m.Category = 'Russian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/MangaOwl.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '8938e1c291ec420ca7838c09b7bdc49f' 8 | m.Name = 'MangaOwl' 9 | m.RootURL = 'https://mangaowl.io' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/MangaShiro.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '5eb57a1843d8462dab0fdfd0efc1eca5' 8 | m.Name = 'MangaShiro' 9 | m.RootURL = 'https://mangashiro.me' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/MangaStream.lua: -------------------------------------------------------------------------------- 1 | function GetInfo() 2 | MANGAINFO.URL=MaybeFillHost(MODULE.RootURL,URL) 3 | if HTTP.GET(MANGAINFO.URL) then 4 | x=CreateTXQuery(HTTP.Document) 5 | MANGAINFO.Title=x.XPathString('//h1') 6 | x.XPathHREFAll('//table//td/a',MANGAINFO.ChapterLinks,MANGAINFO.ChapterNames) 7 | MANGAINFO.ChapterLinks.Reverse(); MANGAINFO.ChapterNames.Reverse() 8 | return no_error 9 | else 10 | return net_problem 11 | end 12 | end 13 | 14 | function GetPageNumber() 15 | if HTTP.GET(MaybeFillHost(MODULE.RootURL,URL)) then 16 | x=CreateTXQuery(HTTP.Document) 17 | TASK.PageNumber=tonumber(x.XPathString('//div[contains(@class,"btn-reader-page")]/ul[@class="dropdown-menu"]/li[last()]/substring-before(substring-after(.,"("),")")')) 18 | return true 19 | else 20 | return false 21 | end 22 | end 23 | 24 | function GetImageURL() 25 | if HTTP.GET(MaybeFillHost(MODULE.RootURL,URL):gsub('/1$','')..'/'..tostring(WORKID+1)) then 26 | x=CreateTXQuery(HTTP.Document) 27 | TASK.PageLinks[WORKID]=x.XPathString('//img[@id="manga-page"]/@src') 28 | return true 29 | else 30 | return false 31 | end 32 | end 33 | 34 | function GetNameAndLink() 35 | if HTTP.GET(MODULE.RootURL..'/manga') then 36 | x=CreateTXQuery(HTTP.Document) 37 | x.XPathHREFAll('//table//tr/td[1]//a', LINKS, NAMES) 38 | return no_error 39 | else 40 | return net_problem 41 | end 42 | end 43 | 44 | function Init() 45 | local m = NewWebsiteModule() 46 | m.ID = 'cff79db51a6140bbac7e06eaa2ed9524' 47 | m.Category='English-Scanlation' 48 | m.Name='MangaStream' 49 | m.RootURL='https://readms.net' 50 | m.LastUpdated='February 8, 2018' 51 | m.OnGetInfo='GetInfo' 52 | m.OnGetPageNumber='GetPageNumber' 53 | m.OnGetImageURL='GetImageURL' 54 | m.OnGetNameAndLink='GetNameAndLink' 55 | end 56 | -------------------------------------------------------------------------------- /lua/modules/Mangajp.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'e8fe9ebbb09d47d9bce0d36b00a7192e' 8 | m.Name = '漫画RAW (mangajp)' 9 | m.RootURL = 'https://mangajp.top' 10 | m.Category = 'Raw' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Mangakyo.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '56f905ea80e24c4f8bbc37e05de2ad9a' 8 | m.Name = 'Mangakyo' 9 | m.RootURL = 'https://mangakyo.vip' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | DirectoryPagination = '/komik/list-mode/' 22 | XPathTokenAuthors = 'Pengarang' 23 | XPathTokenArtists = 'Pemeran' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/ManhuaNext.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '57036d4eb36747c6927839062a2428a4' 8 | m.Name = 'SpidyScans' 9 | m.RootURL = 'https://spidyscans.xyz' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/Manhuaga.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'b38c7f7e79164060b0a7da37476e0e9c' 8 | m.Name = 'Manhuaga' 9 | m.RootURL = 'https://manhuaga.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/ManhwaClan.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '725a55ca54494649984f9ce01e1fd603' 8 | m.Name = 'Manhwa Clan' 9 | m.RootURL = 'https://manhwaclan.com' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/ManhwaID.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f3c734a67f1441d8a404497ec6250009' 8 | m.Name = 'ManhwaID' 9 | m.RootURL = 'https://manhwaid.id' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | DirectoryPagination = '/komik/list-mode/' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for the current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return true 46 | end -------------------------------------------------------------------------------- /lua/modules/ManhwaIndo.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'b09c78407f8046bf94cb587541d4cb45' 8 | m.Name = 'ManhwaIndo' 9 | m.RootURL = 'https://manhwaindo.id' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | DirectoryPagination = '/series/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/ManhwaLand.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'b53534f8443e420ea088594c53a3ff39' 8 | m.Name = 'ManhwaLand' 9 | m.RootURL = 'https://62.182.80.253' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/ManhwaZ.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '8c6f7f6694c840eabc59780427da9ce3' 8 | m.Name = 'ManhwaZ' 9 | m.RootURL = 'https://manhwaz.com' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Manhwadesu.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'ee60f64cc450424bb906af3f699fd7e4' 8 | m.Name = 'Manhwadesu' 9 | m.RootURL = 'https://manhwadesu.asia' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | DirectoryPagination = '/komik/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/PhoenixManga.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f5bd80b91d9843a791a4da801033e13d' 8 | m.Name = 'Phoenix Manga' 9 | m.RootURL = 'https://phoenixmanga.com' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Punuprojects.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'ac42a85566244b7e836679491ce679ey' 8 | m.Name = 'Punuprojects' 9 | m.RootURL = 'https://punuprojects.com' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.HeanCms' 21 | API_URL = 'https://api.punuprojects.com' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/RagnarokScan.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '36b0f19e144a4642a2839ec9cb728c3a' 8 | m.Name = 'Ragnarok Scanlation' 9 | m.RootURL = 'https://ragnarokscanlation.org' 10 | m.Category = 'Spanish-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/RaikiScan.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '16d53c61e15849bc9067732f70f6816a' 8 | m.Name = 'Raiki Scan' 9 | m.RootURL = 'https://raikiscan.com' 10 | m.Category = 'Spanish' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/Rawkuma.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '21b0dfcb262d4ae28520679165282666' 8 | m.Name = 'Rawkuma' 9 | m.RootURL = 'https://rawkuma.com' 10 | m.Category = 'Raw' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/ResetScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '287f665620664e468d4e05f5d76f5a43' 8 | m.Name = 'Reset Scans' 9 | m.RootURL = 'https://reset-scans.co' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/SekaiKomik.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '1f1ec10a248c4a4f838c80b3e27fc4c7' 8 | m.Name = 'SekaiKomik' 9 | m.RootURL = 'https://sekaikomik.bio' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | XPathTokenAuthors = 'Pengarang' 23 | XPathTokenArtists = 'Artis' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/SekteDoujin.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '435c514990664207beb4b6a5aaa9c83b' 8 | m.Name = 'SekteDoujin' 9 | m.RootURL = 'https://sektedoujin.cc' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/SheaManga.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f8251e330c8044029d97dec382459eab' 8 | m.Name = 'SheaManga' 9 | m.RootURL = 'https://shea-manga.my.id' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | -- XPathTokenAuthors = 'Author' 23 | -- XPathTokenArtists = 'Artist' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/ShiroDoujin.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'b51e4150e69c428a9705d869d9904923' 8 | m.Name = 'ShiroDoujin' 9 | m.RootURL = 'https://shirodoujin.com' 10 | m.Category = 'H-Sites' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.ZManga' 21 | -- DirectoryPagination = '/manga-list/' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/SpiderScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'f0c566f6b9cd470fa580a5f238e1fda6' 8 | m.Name = 'SpiderScans' 9 | m.RootURL = 'https://spiderscans.xyz' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | CreateTXQuery(HTTP.Document).XPathStringAll('//div[@id="readerarea"]//img/@src', TASK.PageLinks) 45 | 46 | return no_error 47 | end -------------------------------------------------------------------------------- /lua/modules/SumManga.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '739cc6603aaf48ea8e635dd4698396b7' 8 | m.Name = 'SumManga' 9 | m.RootURL = 'https://summanga.com' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/TimelessLeaf.lua: -------------------------------------------------------------------------------- 1 | function getinfo() 2 | MANGAINFO.URL=MaybeFillHost(MODULE.RootURL, URL) 3 | if HTTP.GET(MANGAINFO.URL) then 4 | local x=CreateTXQuery(HTTP.Document) 5 | MANGAINFO.Title=x.XPathString('//h1[@class="entry-title"]') 6 | MANGAINFO.CoverLink=MaybeFillHost(MODULE.RootURL, x.XPathString('//article//img/@src')) 7 | MANGAINFO.Summary=x.XPathStringAll('//div[@class="entry-content page-content"]/p[not(contains(., "Chapter"))]/text()', '') 8 | x.XPathHREFAll('//div[@class="entry-content page-content"]/p/a',MANGAINFO.ChapterLinks,MANGAINFO.ChapterNames) 9 | return no_error 10 | else 11 | return net_problem 12 | end 13 | end 14 | 15 | function getpagenumber() 16 | TASK.PageLinks.Clear() 17 | TASK.PageNumber = 0 18 | if HTTP.GET(MaybeFillHost(MODULE.RootURL, URL)) then 19 | local x=CreateTXQuery(HTTP.Document) 20 | x.XPathStringAll('//figure[@class="gallery-item"]//img/@src', TASK.PageLinks) 21 | else 22 | return false 23 | end 24 | return true 25 | end 26 | 27 | function getnameandlink() 28 | if HTTP.GET(MODULE.RootURL .. '/comic-list') then 29 | local x = CreateTXQuery(HTTP.Document) 30 | x.XPathHREFAll('//a[.="Manga"]/following-sibling::ul//li/a[not(contains(@href,"more"))]', LINKS, NAMES) 31 | return no_error 32 | else 33 | return net_problem 34 | end 35 | end 36 | 37 | function Init() 38 | local m = NewWebsiteModule() 39 | m.ID = 'f202f923b0a94b5f8f1da98c02eaec3e' 40 | m.Name = 'TimelessLeaf' 41 | m.RootURL = 'https://timelessleaf.com' 42 | m.Category = 'English-Scanlation' 43 | m.OnGetInfo='getinfo' 44 | m.OnGetPageNumber='getpagenumber' 45 | m.OnGetNameAndLink='getnameandlink' 46 | end -------------------------------------------------------------------------------- /lua/modules/TraduccionesMoonlight.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'fea74b695ab348a4a080abec735490cd' 8 | m.Name = 'TraduccionesMoonlight' 9 | m.RootURL = 'https://traduccionesmoonlight.com' 10 | m.Category = 'Spanish-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaEsp' 21 | -- DirectoryPagination = '/comics' 22 | 23 | ---------------------------------------------------------------------------------------------------- 24 | -- Event Functions 25 | ---------------------------------------------------------------------------------------------------- 26 | 27 | -- Get links and names from the manga list of the current website. 28 | function GetNameAndLink() 29 | Template.GetNameAndLink() 30 | 31 | return no_error 32 | end 33 | 34 | -- Get info and chapter list for current manga. 35 | function GetInfo() 36 | Template.GetInfo() 37 | 38 | return no_error 39 | end 40 | 41 | -- Get the page count for the current chapter. 42 | function GetPageNumber() 43 | Template.GetPageNumber() 44 | 45 | return no_error 46 | end -------------------------------------------------------------------------------- /lua/modules/TukangKomik.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '4fafcfd8bfcd499cb0e38eff358b56c5' 8 | m.Name = 'TukangKomik' 9 | m.RootURL = 'https://tukangkomik.co' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/UchuujinScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '5400f8755204497f998fdb1d831e8b50' 8 | m.Name = 'Uchuujin Scans' 9 | m.RootURL = 'https://uchuujinmangas.com' 10 | m.Category = 'Spanish-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end 46 | -------------------------------------------------------------------------------- /lua/modules/UkiyoToon.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '58296d81bd7f4c9880344d6e45da918c' 8 | m.Name = 'UkiyoToon' 9 | m.RootURL = 'https://ukiyotoon.com' 10 | m.Category = 'Spanish-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | -- DirectoryPagination = '/manga/list-mode/' 22 | XPathTokenAuthors = 'Autor' 23 | XPathTokenArtists = 'Artista' 24 | 25 | ---------------------------------------------------------------------------------------------------- 26 | -- Event Functions 27 | ---------------------------------------------------------------------------------------------------- 28 | 29 | -- Get links and names from the manga list of the current website. 30 | function GetNameAndLink() 31 | Template.GetNameAndLink() 32 | 33 | return no_error 34 | end 35 | 36 | -- Get info and chapter list for current manga. 37 | function GetInfo() 38 | Template.GetInfo() 39 | 40 | return no_error 41 | end 42 | 43 | -- Get the page count for the current chapter. 44 | function GetPageNumber() 45 | Template.GetPageNumber() 46 | 47 | return no_error 48 | end -------------------------------------------------------------------------------- /lua/modules/UpKomik.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = 'fc89c10dec8b448ba17b5fc83605745f' 8 | m.Name = 'UpKomik' 9 | m.RootURL = 'https://upkomik.com' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/VortexScansFree.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '90b2cf170805470ea447936f3ada0408' 8 | m.Name = 'Vortex Scans Free' 9 | m.RootURL = 'https://vortexscansfree.com' 10 | m.Category = 'Webcomics' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/WestManga.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '35e1b3ff5dbf428889d0f316c3d881e6' 8 | m.Name = 'WestManga' 9 | m.RootURL = 'https://westmanga.me' 10 | m.Category = 'Indonesian' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.MangaThemesia' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return true 45 | end -------------------------------------------------------------------------------- /lua/modules/YakshaScans.lua: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- Module Initialization 3 | ---------------------------------------------------------------------------------------------------- 4 | 5 | function Init() 6 | local m = NewWebsiteModule() 7 | m.ID = '9df303dc37de4b50bfe9b1023cfa1541' 8 | m.Name = 'YakshaScans' 9 | m.RootURL = 'https://yakshascans.com' 10 | m.Category = 'English-Scanlation' 11 | m.OnGetNameAndLink = 'GetNameAndLink' 12 | m.OnGetInfo = 'GetInfo' 13 | m.OnGetPageNumber = 'GetPageNumber' 14 | end 15 | 16 | ---------------------------------------------------------------------------------------------------- 17 | -- Local Constants 18 | ---------------------------------------------------------------------------------------------------- 19 | 20 | local Template = require 'templates.Madara' 21 | 22 | ---------------------------------------------------------------------------------------------------- 23 | -- Event Functions 24 | ---------------------------------------------------------------------------------------------------- 25 | 26 | -- Get links and names from the manga list of the current website. 27 | function GetNameAndLink() 28 | Template.GetNameAndLink() 29 | 30 | return no_error 31 | end 32 | 33 | -- Get info and chapter list for the current manga. 34 | function GetInfo() 35 | Template.GetInfo() 36 | 37 | return no_error 38 | end 39 | 40 | -- Get the page count for the current chapter. 41 | function GetPageNumber() 42 | Template.GetPageNumber() 43 | 44 | return no_error 45 | end -------------------------------------------------------------------------------- /lua/modules/YoungAceUp.lua: -------------------------------------------------------------------------------- 1 | function GetNameAndLink() 2 | if HTTP.GET(MODULE.RootURL..'/comics/') then 3 | CreateTXQuery(HTTP.Document).XPathHREFAll('//ul[@class="manga-list__list"]/li/h4/a', LINKS, NAMES) 4 | return no_error 5 | else 6 | return net_problem 7 | end 8 | end 9 | 10 | function GetInfo() 11 | MANGAINFO.URL=MaybeFillHost(MODULE.RootURL,URL):gsub('/+$', '') .. '/' 12 | if HTTP.GET(MANGAINFO.URL) then 13 | x=CreateTXQuery(HTTP.Document) 14 | MANGAINFO.Title=x.XPathString('//strong') 15 | MANGAINFO.CoverLink=x.XPathString('//*[@class="fancybox a-alpha"]/img/@src') 16 | MANGAINFO.Summary=x.XPathString('//*[@class="single-story"]/p') 17 | -- there is no chapter list? 18 | -- assuming the first chapter link in manga info is always the last chapters 19 | x.XPathHREFAll('//a[@class="single"]', MANGAINFO.ChapterLinks, MANGAINFO.ChapterNames) 20 | return no_error 21 | else 22 | return net_problem 23 | end 24 | end 25 | 26 | function GetPageNumber() 27 | if HTTP.GET('http://viewer.tonarinoyj.jp/', URL:gsub('https?://[^/]+/')) then 28 | CreateTXQuery(HTTP.Document).XPathStringAll('//img[@class="js-page-image"]/@src', TASK.PageLinks) 29 | return true 30 | else 31 | return false 32 | end 33 | end 34 | 35 | function Init() 36 | local m = NewWebsiteModule() 37 | m.ID = '9398095f450f4a1f9f0cc5c3ea145f0b' 38 | m.Category = 'Raw' 39 | m.Name = 'YoungAceUp' 40 | m.RootURL = 'https://web-ace.jp/youngaceup' 41 | m.OnGetNameAndLink = 'GetNameAndLink' 42 | m.OnGetInfo = 'GetInfo' 43 | m.OnGetPageNumber = 'GetPageNumber' 44 | end 45 | -------------------------------------------------------------------------------- /lua/websitebypass/checkantibot.lua: -------------------------------------------------------------------------------- 1 | -- don't change the function name (hardcoded, case sensitive) 2 | -- must return 1 boolean value 3 | -- this function will be called very often(for each of http request), keep it minimal 4 | function ____CheckAntiBot(HTTP) 5 | local rc = HTTP.ResultCode 6 | if ((rc == 403) or (rc == 429) or (rc == 503)) and HTTP.Headers.Values['Content-Type']:lower():find('text/html') then 7 | local server = HTTP.Headers.Values['Server']:lower() 8 | if server:find('cloudflare') or server:find('ddos%-guard') then 9 | return true 10 | end 11 | end 12 | return false 13 | end -------------------------------------------------------------------------------- /lua/websitebypass/customcloudflare.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import sys 3 | import json 4 | 5 | url = sys.argv[1] 6 | post_body = { 7 | "cmd": "request.get", 8 | "url": url, 9 | "returnOnlyCookies": True, 10 | "maxTimeout": 60000 11 | } 12 | 13 | response = requests.post('http://localhost:8191/v1', headers={'Content-Type': 'application/json'}, json=post_body) 14 | 15 | if response.status_code == 200: 16 | json_response = response.json() 17 | if json_response.get('status') == 'ok': 18 | result = [] 19 | 20 | ## Get Cookies & Clean 21 | cookies = json_response['solution']['cookies'] 22 | for cookie in cookies: 23 | result.append({cookie.get("name"): cookie.get("value")}) 24 | 25 | ## Get User-Agent 26 | result.append({"user_agent": json_response['solution']['userAgent']}) 27 | 28 | print(json.dumps(result)) 29 | else: 30 | print(response.json().get('message')) -------------------------------------------------------------------------------- /lua/websitebypass/ddos-guard.lua: -------------------------------------------------------------------------------- 1 | local _m = {} 2 | 3 | function _m.getDDoSGuardCookie(self, url) 4 | local body = HTTP.Document.ToString() 5 | 6 | if body:find('://check.ddos-guard.net/check.js', 1, true) then 7 | local result = false 8 | HTTP.EnabledCookies = false 9 | if HTTP.Request('POST', 'https://check.ddos-guard.net/check.js') then 10 | local headers = HTTP.Headers.Text 11 | if headers:find('Set%-Cookie:[^\r\n]*__ddg') then 12 | local domain = url:match('https?://([^/]+)') or '' 13 | headers = headers:gsub('check%.ddos%-guard%.net', domain) 14 | HTTP.Headers.Text = headers 15 | HTTP.ParseServerCookies() 16 | result = true 17 | end 18 | end 19 | HTTP.EnabledCookies = true 20 | return result 21 | end 22 | 23 | LOGGER.SendWarning('WebsitBypass[ddos-guard]: no DDoS-GUARD solution found!\r\n' .. url) 24 | return false 25 | end 26 | 27 | function _m.bypass(self, METHOD, URL) 28 | local result = false 29 | local counter = 0 30 | local maxretry = HTTP.RetryCount; 31 | HTTP.RetryCount = 0 32 | 33 | while true do 34 | counter = counter + 1 35 | result = self:getDDoSGuardCookie(URL) 36 | if result then 37 | result = HTTP.Request(METHOD, URL) 38 | end 39 | if result then break end 40 | if HTTP.Terminated then break end 41 | -- delay before retry 42 | self:sleepOrBreak(2000) 43 | if (maxretry > -1) and (maxretry <= counter) then break end 44 | HTTP.Reset() 45 | HTTP.Request('GET', URL) 46 | end 47 | 48 | HTTP.RetryCount = maxretry 49 | return result 50 | end 51 | 52 | return _m -------------------------------------------------------------------------------- /lua/websitebypass/websitebypass.lua: -------------------------------------------------------------------------------- 1 | -- don't change the function name(hardcoded, case sensitive) 2 | -- don't change the first 2 parameters method and url(hardcoded) 3 | -- must return 1 boolean value 4 | function ____WebsiteBypass(METHOD, URL) 5 | local server = HTTP.Headers.Values['Server']:lower() 6 | local bypass 7 | if server:find('cloudflare') then 8 | bypass = require 'websitebypass.cloudflare' 9 | elseif server:find('ddos%-guard') then 10 | bypass = require 'websitebypass.ddos-guard' 11 | end 12 | if bypass ~= nil then 13 | LOGGER = require 'fmd.logger' 14 | return bypass:bypass(METHOD, URL) 15 | end 16 | return false 17 | end -------------------------------------------------------------------------------- /mangadownloader/forms/frmAccountManager.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":310020,"name":"taccountmanagerform.btedit.caption","sourcebytes":[69,100,105,116],"value":"Edit"}, 3 | {"hash":146640072,"name":"taccountmanagerform.btrefresh.caption","sourcebytes":[82,101,102,114,101,115,104],"value":"Refresh"}, 4 | {"hash":230269173,"name":"taccountmanagerform.vtaccountlist.header.columns[1].text","sourcebytes":[87,101,98,115,105,116,101],"value":"Website"}, 5 | {"hash":164185077,"name":"taccountmanagerform.vtaccountlist.header.columns[2].text","sourcebytes":[85,115,101,114,110,97,109,101],"value":"Username"}, 6 | {"hash":95062979,"name":"taccountmanagerform.vtaccountlist.header.columns[3].text","sourcebytes":[83,116,97,116,117,115],"value":"Status"} 7 | ]} 8 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmAccountSet.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":127560724,"name":"taccountsetform.caption","sourcebytes":[65,99,99,111,117,110,116],"value":"Account"}, 3 | {"hash":164185077,"name":"taccountsetform.label2.caption","sourcebytes":[85,115,101,114,110,97,109,101],"value":"Username"}, 4 | {"hash":145417188,"name":"taccountsetform.label3.caption","sourcebytes":[80,97,115,115,119,111,114,100],"value":"Password"}, 5 | {"hash":164185077,"name":"taccountsetform.edusername.texthint","sourcebytes":[85,115,101,114,110,97,109,101],"value":"Username"}, 6 | {"hash":145417188,"name":"taccountsetform.edpassword.texthint","sourcebytes":[80,97,115,115,119,111,114,100],"value":"Password"}, 7 | {"hash":22827444,"name":"taccountsetform.ckshowpassword.caption","sourcebytes":[83,104,111,119,32,112,97,115,115,119,111,114,100],"value":"Show password"}, 8 | {"hash":1371,"name":"taccountsetform.btok.caption","sourcebytes":[79,107],"value":"Ok"}, 9 | {"hash":77089212,"name":"taccountsetform.btcancel.caption","sourcebytes":[67,97,110,99,101,108],"value":"Cancel"} 10 | ]} 11 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmAccountSet.pas: -------------------------------------------------------------------------------- 1 | unit frmAccountSet; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 | ExtCtrls, Buttons, uCustomControls; 10 | 11 | type 12 | 13 | { TAccountSetForm } 14 | 15 | TAccountSetForm = class(TForm) 16 | btOk: TBitBtn; 17 | btCancel: TBitBtn; 18 | ckShowPassword: TCheckBox; 19 | edPassword: TCustomEdit; 20 | edUsername: TCustomEdit; 21 | Label2: TLabel; 22 | Label3: TLabel; 23 | procedure btOkClick(Sender: TObject); 24 | procedure ckShowPasswordEditingDone(Sender: TObject); 25 | private 26 | { private declarations } 27 | public 28 | { public declarations } 29 | end; 30 | 31 | var 32 | AccountSetForm: TAccountSetForm; 33 | 34 | resourcestring 35 | RS_CantBeEmpty = 'Username or password can''t be empty!'; 36 | 37 | implementation 38 | 39 | uses 40 | frmCustomMessageDlg; 41 | 42 | {$R *.lfm} 43 | 44 | { TAccountSetForm } 45 | 46 | procedure TAccountSetForm.btOkClick(Sender: TObject); 47 | begin 48 | if (edUsername.Text = '') or (edPassword.Text = '') then 49 | begin 50 | CenteredMessageDlg(Self, RS_CantBeEmpty, mtError, [mbOK], 0); 51 | if edUsername.Text = '' then 52 | begin 53 | edUsername.SetFocus; 54 | end 55 | else 56 | begin 57 | edPassword.SetFocus; 58 | end; 59 | end 60 | else 61 | begin 62 | ModalResult := mrOK; 63 | end; 64 | end; 65 | 66 | procedure TAccountSetForm.ckShowPasswordEditingDone(Sender: TObject); 67 | begin 68 | if ckShowPassword.Checked then 69 | edPassword.PasswordChar:=#0 70 | else 71 | edPassword.PasswordChar:='*'; 72 | end; 73 | 74 | end. 75 | 76 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmCustomColor.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":164667949,"name":"tcustomcolorform.caption","sourcebytes":[67,117,115,116,111,109,67,111,108,111,114,70,111,114,109],"value":"CustomColorForm"}, 3 | {"hash":257144884,"name":"tcustomcolorform.tsbasiclist.caption","sourcebytes":[66,97,115,105,99,32,108,105,115,116],"value":"Basic list"}, 4 | {"hash":221522148,"name":"tcustomcolorform.tsmangalist.caption","sourcebytes":[77,97,110,103,97,32,108,105,115,116],"value":"Manga list"}, 5 | {"hash":117201380,"name":"tcustomcolorform.tsfavoritelist.caption","sourcebytes":[70,97,118,111,114,105,116,101,32,108,105,115,116],"value":"Favorite list"}, 6 | {"hash":148485892,"name":"tcustomcolorform.tschapterlist.caption","sourcebytes":[67,104,97,112,116,101,114,32,108,105,115,116],"value":"Chapter list"}, 7 | {"hash":35883876,"name":"tcustomcolorform.tsmodulelist.caption","sourcebytes":[77,111,100,117,108,101,32,108,105,115,116],"value":"Module list"}, 8 | {"hash":15725875,"name":"tcustomcolorform.btresetcolors.caption","sourcebytes":[82,101,115,101,116,32,108,105,115,116,32,99,111,108,111,114,115],"value":"Reset list colors"} 9 | ]} 10 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmDialogYesNo.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":78611287,"name":"tfrmdialogyn.caption","sourcebytes":[68,105,97,108,111,103],"value":"Dialog"}, 3 | {"hash":180163,"name":"tfrmdialogyn.btyes.caption","sourcebytes":[38,89,101,115],"value":"&Yes"}, 4 | {"hash":11087,"name":"tfrmdialogyn.btno.caption","sourcebytes":[38,78,111],"value":"&No"}, 5 | {"hash":63628709,"name":"tfrmdialogyn.lbmessage.caption","sourcebytes":[108,98,77,101,115,115,97,103,101],"value":"lbMessage"} 6 | ]} 7 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmDialogYesNo.pas: -------------------------------------------------------------------------------- 1 | unit frmDialogYesNo; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls; 9 | 10 | type 11 | 12 | { TfrmDialogYN } 13 | 14 | TfrmDialogYN = class(TForm) 15 | btYes: TButton; 16 | btNo: TButton; 17 | lbMessage: TLabel; 18 | mMessages: TMemo; 19 | private 20 | 21 | public 22 | 23 | end; 24 | 25 | var 26 | frmDialogYN: TfrmDialogYN; 27 | 28 | implementation 29 | 30 | {$R *.lfm} 31 | 32 | end. 33 | 34 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmDropTarget.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":29393692,"name":"tformdroptarget.midownloadall.caption","sourcebytes":[68,111,119,110,108,111,97,100,32,97,108,108],"value":"Download all"}, 3 | {"hash":215882787,"name":"tformdroptarget.miaddtofavorites.caption","sourcebytes":[65,100,100,32,116,111,32,102,97,118,111,114,105,116,101,115],"value":"Add to favorites"}, 4 | {"hash":44709525,"name":"tformdroptarget.miclose.caption","sourcebytes":[38,67,108,111,115,101],"value":"&Close"} 5 | ]} 6 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmImportFavorites.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":131016830,"name":"timportfavorites.caption","sourcebytes":[73,109,112,111,114,116,32,108,105,115,116,32,46,46,46],"value":"Import list ..."}, 3 | {"hash":230544090,"name":"timportfavorites.lbselectsoftware.caption","sourcebytes":[83,111,102,116,119,97,114,101,58],"value":"Software:"}, 4 | {"hash":57972706,"name":"timportfavorites.cbsoftware.text","sourcebytes":[70,114,101,101,32,77,97,110,103,97,32,68,111,119,110,108,111,97,100,101,114],"value":"Free Manga Downloader"}, 5 | {"hash":161483657,"name":"timportfavorites.edpath.texthint","sourcebytes":[80,97,116,104,32,116,111,32,116,104,101,32,115,111,102,116,119,97,114,101,32,40,101,46,103,46,32,67,58,92,77,97,110,103,97,68,111,119,110,108,111,97,100,101,114,41],"value":"Path to the software (e.g. C:\\MangaDownloader)"}, 6 | {"hash":11067,"name":"timportfavorites.btimport.caption","sourcebytes":[38,79,75],"value":"&OK"}, 7 | {"hash":77089212,"name":"timportfavorites.btcancel.caption","sourcebytes":[67,97,110,99,101,108],"value":"Cancel"} 8 | ]} 9 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmLogger.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":21335,"name":"tformlogger.caption","sourcebytes":[76,111,103],"value":"Log"}, 3 | {"hash":119198672,"name":"tformlogger.ckstayontop.caption","sourcebytes":[83,116,97,121,32,111,110,32,116,111,112],"value":"Stay on top"}, 4 | {"hash":158511444,"name":"tformlogger.lbloglimit.caption","sourcebytes":[76,111,103,32,108,105,109,105,116],"value":"Log limit"}, 5 | {"hash":4860802,"name":"tformlogger.btnclearlog.caption","sourcebytes":[67,108,101,97,114],"value":"Clear"}, 6 | {"hash":304761,"name":"tformlogger.micopy.caption","sourcebytes":[67,111,112,121],"value":"Copy"} 7 | ]} 8 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmLuaModulesUpdater.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":2901221,"name":"tluamodulesupdaterform.vtluamodulesrepos.header.columns[0].text","sourcebytes":[70,105,108,101,110,97,109,101],"value":"Filename"}, 3 | {"hash":119908548,"name":"tluamodulesupdaterform.vtluamodulesrepos.header.columns[1].text","sourcebytes":[76,97,115,116,32,109,111,100,105,102,105,101,100],"value":"Last modified"}, 4 | {"hash":115487141,"name":"tluamodulesupdaterform.vtluamodulesrepos.header.columns[2].text","sourcebytes":[76,97,115,116,32,109,101,115,115,97,103,101],"value":"Last message"}, 5 | {"hash":56103285,"name":"tluamodulesupdaterform.btcheckupdate.caption","sourcebytes":[67,104,101,99,107,32,117,112,100,97,116,101],"value":"Check update"}, 6 | {"hash":47677607,"name":"tluamodulesupdaterform.ckshowupdatewarning.caption","sourcebytes":[83,104,111,119,32,117,112,100,97,116,101,32,119,97,114,110,105,110,103],"value":"Show update warning"}, 7 | {"hash":205920740,"name":"tluamodulesupdaterform.ckautorestart.caption","sourcebytes":[65,117,116,111,32,114,101,115,116,97,114,116],"value":"Auto restart"} 8 | ]} 9 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmNewChapter.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":252000638,"name":"tnewchapter.caption","sourcebytes":[78,101,119,32,67,104,97,112,116,101,114,32,78,111,116,105,102,105,99,97,116,105,111,110],"value":"New Chapter Notification"}, 3 | {"hash":115679172,"name":"tnewchapter.btdownload.caption","sourcebytes":[38,68,111,119,110,108,111,97,100],"value":"&Download"}, 4 | {"hash":184736549,"name":"tnewchapter.btqueue.caption","sourcebytes":[38,65,100,100,32,116,111,32,113,117,101,117,101],"value":"&Add to queue"}, 5 | {"hash":177752476,"name":"tnewchapter.btcancel.caption","sourcebytes":[38,67,97,110,99,101,108],"value":"&Cancel"} 6 | ]} 7 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmNewChapter.pas: -------------------------------------------------------------------------------- 1 | { 2 | File: frmNewChapter.pas 3 | License: GPLv2 4 | This unit is a part of Free Manga Downloader 5 | } 6 | 7 | unit frmNewChapter; 8 | 9 | {$mode delphi} 10 | 11 | interface 12 | 13 | uses 14 | Classes, Forms, StdCtrls, 15 | Buttons, DefaultTranslator, ExtCtrls; 16 | 17 | type 18 | 19 | TNewChapterResult = (ncrDownload, ncrQueue, ncrCancel); 20 | 21 | { TNewChapter } 22 | 23 | TNewChapter = class(TForm) 24 | btDownload: TBitBtn; 25 | btCancel: TBitBtn; 26 | btQueue: TBitBtn; 27 | lbNotification: TLabel; 28 | mmMemo : TMemo; 29 | pnBottom: TPanel; 30 | procedure btCancelClick(Sender: TObject); 31 | procedure btDownloadClick(Sender: TObject); 32 | procedure btQueueClick(Sender: TObject); 33 | procedure FormCreate(Sender: TObject); 34 | protected 35 | FFormResult: TNewChapterResult; 36 | private 37 | { private declarations } 38 | public 39 | { public declarations } 40 | property FormResult: TNewChapterResult read FFormResult; 41 | end; 42 | 43 | implementation 44 | 45 | {$R *.lfm} 46 | 47 | { TNewChapter } 48 | 49 | procedure TNewChapter.FormCreate(Sender: TObject); 50 | begin 51 | FFormResult := ncrCancel; 52 | end; 53 | 54 | procedure TNewChapter.btDownloadClick(Sender: TObject); 55 | begin 56 | FFormResult:= ncrDownload; 57 | end; 58 | 59 | procedure TNewChapter.btQueueClick(Sender: TObject); 60 | begin 61 | FFormResult:= ncrQueue; 62 | end; 63 | 64 | procedure TNewChapter.btCancelClick(Sender: TObject); 65 | begin 66 | FFormResult:= ncrCancel; 67 | end; 68 | 69 | end. 70 | 71 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmSelectDirectory.pas: -------------------------------------------------------------------------------- 1 | unit frmSelectDirectory; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, EditBtn, 9 | Buttons, StdCtrls; 10 | 11 | type 12 | 13 | { TSelectDirectoryForm } 14 | 15 | TSelectDirectoryForm = class(TForm) 16 | btOK: TBitBtn; 17 | dePath: TDirectoryEdit; 18 | lbDescription: TLabel; 19 | private 20 | 21 | public 22 | 23 | end; 24 | 25 | var 26 | SelectDirectoryForm: TSelectDirectoryForm; 27 | 28 | implementation 29 | 30 | {$R *.lfm} 31 | 32 | end. 33 | 34 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmShutdownCounter.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":57972706,"name":"tshutdowncounterform.caption","sourcebytes":[70,114,101,101,32,77,97,110,103,97,32,68,111,119,110,108,111,97,100,101,114],"value":"Free Manga Downloader"}, 3 | {"hash":44537492,"name":"tshutdowncounterform.btabort.caption","sourcebytes":[38,65,98,111,114,116],"value":"&Abort"}, 4 | {"hash":177511,"name":"tshutdowncounterform.btnow.caption","sourcebytes":[38,78,111,119],"value":"&Now"} 5 | ]} 6 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmTransferFavorites.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":102089683,"name":"ttransferfavoritesform.caption","sourcebytes":[84,114,97,110,115,102,101,114,32,70,97,118,111,114,105,116,101,115],"value":"Transfer Favorites"}, 3 | {"hash":160944127,"name":"ttransferfavoritesform.lbtransferto.caption","sourcebytes":[84,114,97,110,115,102,101,114,32,116,111],"value":"Transfer to"}, 4 | {"hash":5966629,"name":"ttransferfavoritesform.vtfavs.header.columns[1].text","sourcebytes":[84,105,116,108,101],"value":"Title"}, 5 | {"hash":230269173,"name":"ttransferfavoritesform.vtfavs.header.columns[2].text","sourcebytes":[87,101,98,115,105,116,101],"value":"Website"}, 6 | {"hash":1339,"name":"ttransferfavoritesform.btok.caption","sourcebytes":[79,75],"value":"OK"}, 7 | {"hash":77089212,"name":"ttransferfavoritesform.btcancel.caption","sourcebytes":[67,97,110,99,101,108],"value":"Cancel"}, 8 | {"hash":18476,"name":"ttransferfavoritesform.rball.caption","sourcebytes":[65,108,108],"value":"All"}, 9 | {"hash":6062836,"name":"ttransferfavoritesform.rbvalid.caption","sourcebytes":[86,97,108,105,100],"value":"Valid"}, 10 | {"hash":6062756,"name":"ttransferfavoritesform.rbinvalid.caption","sourcebytes":[73,110,118,97,108,105,100],"value":"Invalid"}, 11 | {"hash":231329170,"name":"ttransferfavoritesform.ckcleardownloadedchapters.caption","sourcebytes":[67,108,101,97,114,32,100,111,119,110,108,111,97,100,101,100,32,99,104,97,112,116,101,114,32,108,105,115,116,32,97,110,100,32,114,101,108,111,97,100,32,102,114,111,109,32,115,101,114,118,101,114],"value":"Clear downloaded chapter list and reload from server"} 12 | ]} 13 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmUpdateDialog.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":215104852,"name":"tupdatedialogform.caption","sourcebytes":[78,101,119,32,86,101,114,115,105,111,110,32,70,111,117,110,100],"value":"New Version Found"}, 3 | {"hash":60067406,"name":"tupdatedialogform.lbmessage.caption","sourcebytes":[78,101,119,32,118,101,114,115,105,111,110,32,102,111,117,110,100,33,32,68,111,32,121,111,117,32,119,97,110,116,32,116,111,32,117,112,100,97,116,101,32,110,111,119,63,13,10,70,77,68,32,119,105,108,108,32,98,101,32,99,108,111,115,101,100,32,116,111,32,102,105,110,105,115,104,32,116,104,101,32,117,112,100,97,116,101,46],"value":"New version found! Do you want to update now?\r\nFMD will be closed to finish the update."}, 4 | {"hash":197568645,"name":"tupdatedialogform.btnupdate.caption","sourcebytes":[38,85,112,100,97,116,101],"value":"&Update"}, 5 | {"hash":45255362,"name":"tupdatedialogform.btnlater.caption","sourcebytes":[38,76,97,116,101,114],"value":"&Later"} 6 | ]} 7 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmUpdateDialog.pas: -------------------------------------------------------------------------------- 1 | unit frmUpdateDialog; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Forms, Controls, StdCtrls, 9 | Buttons, DefaultTranslator, ExtCtrls; 10 | 11 | type 12 | 13 | { TUpdateDialogForm } 14 | 15 | TUpdateDialogForm = class(TForm) 16 | btnLater: TBitBtn; 17 | btnUpdate: TBitBtn; 18 | lbMessage: TLabel; 19 | mmLog: TMemo; 20 | pnBottom: TPanel; 21 | procedure btnLaterClick(Sender: TObject); 22 | procedure btnUpdateClick(Sender: TObject); 23 | private 24 | { private declarations } 25 | public 26 | { public declarations } 27 | end; 28 | 29 | var 30 | UpdateDialogForm: TUpdateDialogForm; 31 | 32 | implementation 33 | 34 | {$R *.lfm} 35 | 36 | { TUpdateDialogForm } 37 | 38 | procedure TUpdateDialogForm.btnLaterClick(Sender: TObject); 39 | begin 40 | ModalResult := mrCancel; 41 | end; 42 | 43 | procedure TUpdateDialogForm.btnUpdateClick(Sender: TObject); 44 | begin 45 | ModalResult := mrYes; 46 | end; 47 | 48 | end. 49 | 50 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmWebsiteOptionCustom.lfm: -------------------------------------------------------------------------------- 1 | object CustomOptionForm: TCustomOptionForm 2 | Left = 281 3 | Height = 240 4 | Top = 68 5 | Width = 320 6 | Caption = 'CustomOptionForm' 7 | OnCreate = FormCreate 8 | LCLVersion = '2.1.0.0' 9 | end 10 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmWebsiteSelection.lfm: -------------------------------------------------------------------------------- 1 | object WebsiteSelectionForm: TWebsiteSelectionForm 2 | Left = 202 3 | Height = 75 4 | Top = 182 5 | Width = 310 6 | BorderStyle = bsDialog 7 | Caption = 'Select a website' 8 | ChildSizing.LeftRightSpacing = 10 9 | ChildSizing.TopBottomSpacing = 10 10 | ChildSizing.HorizontalSpacing = 6 11 | ChildSizing.VerticalSpacing = 6 12 | ClientHeight = 75 13 | ClientWidth = 310 14 | Position = poMainFormCenter 15 | LCLVersion = '3.8.0.0' 16 | object cbWebsites: TComboBox 17 | Left = 10 18 | Height = 23 19 | Top = 10 20 | Width = 290 21 | Align = alTop 22 | AutoComplete = True 23 | AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending] 24 | ItemHeight = 15 25 | TabOrder = 0 26 | end 27 | object btOk: TBitBtn 28 | AnchorSideLeft.Control = cbWebsites 29 | AnchorSideLeft.Side = asrCenter 30 | AnchorSideTop.Control = cbWebsites 31 | AnchorSideTop.Side = asrBottom 32 | AnchorSideRight.Control = cbWebsites 33 | AnchorSideRight.Side = asrCenter 34 | AnchorSideBottom.Side = asrBottom 35 | Left = 124 36 | Height = 26 37 | Top = 41 38 | Width = 62 39 | Anchors = [akLeft, akBottom] 40 | AutoSize = True 41 | Default = True 42 | DefaultCaption = True 43 | Kind = bkOK 44 | ModalResult = 1 45 | TabOrder = 1 46 | end 47 | end 48 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmWebsiteSelection.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":102399989,"name":"twebsiteselectionform.caption","sourcebytes":[83,101,108,101,99,116,32,97,32,119,101,98,115,105,116,101],"value":"Select a website"} 3 | ]} 4 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmWebsiteSelection.pas: -------------------------------------------------------------------------------- 1 | unit frmWebsiteSelection; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons; 9 | 10 | type 11 | 12 | { TWebsiteSelectionForm } 13 | 14 | TWebsiteSelectionForm = class(TForm) 15 | btOk: TBitBtn; 16 | cbWebsites: TComboBox; 17 | private 18 | { private declarations } 19 | public 20 | { public declarations } 21 | end; 22 | 23 | var 24 | WebsiteSelectionForm: TWebsiteSelectionForm; 25 | 26 | implementation 27 | 28 | {$R *.lfm} 29 | 30 | end. 31 | 32 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmWebsiteSettings.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":63106205,"name":"twebsitesettingsform.caption","sourcebytes":[87,101,98,115,105,116,101,83,101,116,116,105,110,103,115,70,111,114,109],"value":"WebsiteSettingsForm"}, 3 | {"hash":263118389,"name":"twebsitesettingsform.edsearch.texthint","sourcebytes":[87,101,98,115,105,116,101,32,110,97,109,101],"value":"Website name"}, 4 | {"hash":17562933,"name":"twebsitesettingsform.edsearchproperty.texthint","sourcebytes":[83,101,116,116,105,110,103,32,110,97,109,101],"value":"Setting name"} 5 | ]} 6 | -------------------------------------------------------------------------------- /mangadownloader/forms/frmcustommessagedlg.lfm: -------------------------------------------------------------------------------- 1 | object CustomMessageDlg: TCustomMessageDlg 2 | Left = 0 3 | Height = 118 4 | Top = 0 5 | Width = 300 6 | BorderIcons = [biSystemMenu] 7 | BorderStyle = bsDialog 8 | ClientHeight = 118 9 | ClientWidth = 300 10 | OnCreate = FormCreate 11 | LCLVersion = '3.8.0.0' 12 | object imgIcon: TImage 13 | AnchorSideLeft.Control = Owner 14 | AnchorSideTop.Control = Owner 15 | Left = 10 16 | Height = 48 17 | Top = 10 18 | Width = 48 19 | BorderSpacing.Left = 10 20 | BorderSpacing.Top = 10 21 | Center = True 22 | ImageWidth = 48 23 | end 24 | object pnlButtons: TPanel 25 | AnchorSideLeft.Control = Owner 26 | AnchorSideTop.Control = imgIcon 27 | AnchorSideTop.Side = asrBottom 28 | AnchorSideRight.Control = Owner 29 | AnchorSideRight.Side = asrBottom 30 | AnchorSideBottom.Control = Owner 31 | AnchorSideBottom.Side = asrBottom 32 | Left = 0 33 | Height = 45 34 | Top = 73 35 | Width = 300 36 | Anchors = [akLeft, akRight, akBottom] 37 | BorderSpacing.Top = 10 38 | TabOrder = 0 39 | end 40 | object lblMessage: TLabel 41 | AnchorSideLeft.Control = imgIcon 42 | AnchorSideLeft.Side = asrBottom 43 | AnchorSideTop.Control = imgIcon 44 | AnchorSideTop.Side = asrCenter 45 | AnchorSideRight.Control = Owner 46 | AnchorSideRight.Side = asrBottom 47 | Left = 68 48 | Height = 1 49 | Top = 34 50 | Width = 222 51 | Anchors = [akTop, akLeft, akRight] 52 | BorderSpacing.Left = 10 53 | BorderSpacing.Right = 10 54 | WordWrap = True 55 | end 56 | end 57 | -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_01.png -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_02.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_03.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_04.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_05.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_06.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_06.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_07.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_07.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/dldtasks_sel_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/dldtasks_sel_08.png -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_01.png -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_02.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_03.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_04.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_05.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_06.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_06.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_07.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_07.gif -------------------------------------------------------------------------------- /mangadownloader/images/DownloadTask/downloadstasks_08.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/DownloadTask/downloadstasks_08.gif -------------------------------------------------------------------------------- /mangadownloader/images/add.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/add.ico -------------------------------------------------------------------------------- /mangadownloader/images/book.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/book.ico -------------------------------------------------------------------------------- /mangadownloader/images/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/check.png -------------------------------------------------------------------------------- /mangadownloader/images/completed_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/completed_mini.png -------------------------------------------------------------------------------- /mangadownloader/images/cross-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/cross-button.png -------------------------------------------------------------------------------- /mangadownloader/images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/delete.png -------------------------------------------------------------------------------- /mangadownloader/images/down.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/down.ico -------------------------------------------------------------------------------- /mangadownloader/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/download.png -------------------------------------------------------------------------------- /mangadownloader/images/download_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/download_all.png -------------------------------------------------------------------------------- /mangadownloader/images/find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/find.png -------------------------------------------------------------------------------- /mangadownloader/images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/folder.png -------------------------------------------------------------------------------- /mangadownloader/images/inprogress_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/inprogress_mini.png -------------------------------------------------------------------------------- /mangadownloader/images/movedown.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/movedown.ico -------------------------------------------------------------------------------- /mangadownloader/images/moveup.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/moveup.ico -------------------------------------------------------------------------------- /mangadownloader/images/point_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/point_mini.png -------------------------------------------------------------------------------- /mangadownloader/images/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/question.png -------------------------------------------------------------------------------- /mangadownloader/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/refresh.png -------------------------------------------------------------------------------- /mangadownloader/images/remuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/remuse.png -------------------------------------------------------------------------------- /mangadownloader/images/return.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/return.ico -------------------------------------------------------------------------------- /mangadownloader/images/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/stop.png -------------------------------------------------------------------------------- /mangadownloader/images/stop_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/stop_mini.png -------------------------------------------------------------------------------- /mangadownloader/images/tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/tag.png -------------------------------------------------------------------------------- /mangadownloader/images/tick-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/tick-button.png -------------------------------------------------------------------------------- /mangadownloader/images/up.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/images/up.ico -------------------------------------------------------------------------------- /mangadownloader/md.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/mangadownloader/md.ico -------------------------------------------------------------------------------- /scripts/convert_old_modules.bat: -------------------------------------------------------------------------------- 1 | sed -i -s -E -f convert_old_modules_to_replace.txt modules/*.lua templates/*.lua 2 | 3 | REM sed -i -s -E 's/\bpage\b/PAGENUMBER/g' modules/*.lua templates/*.lua 4 | -------------------------------------------------------------------------------- /scripts/install_submodules.bat: -------------------------------------------------------------------------------- 1 | cd .. 2 | 3 | mkdir 3rd 4 | 5 | cd 3rd 6 | 7 | git clone --depth=1 https://github.com/skalogryz/richmemo.git 8 | git clone https://github.com/blikblum/multilog.git 9 | cd multilog 10 | git reset --hard a271010 11 | cd .. 12 | git clone --depth=1 http://git.code.sf.net/p/lazarus-ccr/dcpcrypt 13 | git clone https://github.com/Slasar41/internettools.git 14 | git clone https://github.com/blikblum/VirtualTreeView-Lazarus.git 15 | cd VirtualTreeView-Lazarus 16 | git checkout lazarus-v5 17 | cd .. 18 | svn checkout https://svn.code.sf.net/p/synalist/code/trunk synalist-code 19 | 20 | lazbuild --add-package-link synalist-code/laz_synapse.lpk 21 | lazbuild --add-package-link dcpcrypt/dcpcrypt.lpk 22 | lazbuild --add-package-link internettools/internettools.lpk 23 | lazbuild --add-package-link richmemo/richmemopackage.lpk 24 | lazbuild --build-ide= --add-package VirtualTreeView-Lazarus/Source/virtualtreeview_package.lpk 25 | lazbuild --build-ide= --add-package richmemo/ide/richmemo_design.lpk 26 | lazbuild --build-ide= --add-package multilog/multiloglaz.lpk 27 | 28 | cd .. -------------------------------------------------------------------------------- /scripts/rename_dbs.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | pushd data 3 | FOR /F "eol=; tokens=1,2 delims= " %%i in (..\modules.txt) do ( 4 | if exist %%j.db (ren %%j.db %%i.db) 5 | ) 6 | popd 7 | -------------------------------------------------------------------------------- /updater/uMain.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":193843458,"name":"tfrmmain.caption","sourcebytes":[70,114,101,101,32,77,97,110,103,97,32,68,111,119,110,108,111,97,100,101,114,32,45,32,85,112,100,97,116,101,114],"value":"Free Manga Downloader - Updater"}, 3 | {"hash":131060021,"name":"tfrmmain.lbtransferrate.caption","sourcebytes":[84,114,97,110,115,102,101,114,32,114,97,116,101],"value":"Transfer rate"}, 4 | {"hash":41414149,"name":"tfrmmain.lbfilesize.caption","sourcebytes":[70,105,108,101,32,115,105,122,101],"value":"File size"}, 5 | {"hash":184637710,"name":"tfrmmain.lbstatus.caption","sourcebytes":[87,97,105,116,105,110,103,46,46,46],"value":"Waiting..."} 6 | ]} 7 | -------------------------------------------------------------------------------- /updater/uMessage.lfm: -------------------------------------------------------------------------------- 1 | object frmMessage: TfrmMessage 2 | Left = 411 3 | Height = 239 4 | Top = 235 5 | Width = 642 6 | BorderIcons = [biSystemMenu] 7 | Caption = 'Help' 8 | ClientHeight = 239 9 | ClientWidth = 642 10 | FormStyle = fsSystemStayOnTop 11 | Position = poDesktopCenter 12 | LCLVersion = '1.7' 13 | object mmMessage: TMemo 14 | Left = 0 15 | Height = 239 16 | Top = 0 17 | Width = 642 18 | Align = alClient 19 | Color = clInfoBk 20 | Font.CharSet = ANSI_CHARSET 21 | Font.Height = -13 22 | Font.Name = 'Courier New' 23 | Font.Pitch = fpFixed 24 | Font.Quality = fqDraft 25 | Lines.Strings = ( 26 | ' Usage:' 27 | ' updater [-a|-d] URL [-r max-retry] [-x] [-q] [-l file-path] [-h|-help]' 28 | '' 29 | ' Where:' 30 | ' URL URL of file' 31 | '' 32 | ' Options: ' 33 | ' -a Update main app' 34 | ' -d Update data file(mangalist)' 35 | ' -r max-rety Number of max retry download if error accured' 36 | ' -x Extract file after download complete' 37 | ' -q Don''t show error message' 38 | ' -l Path of file to be launch after unpacking file, used with -a' 39 | ' -h|-help Show this help message' 40 | ) 41 | ParentFont = False 42 | ReadOnly = True 43 | ScrollBars = ssAutoBoth 44 | TabOrder = 0 45 | end 46 | end 47 | -------------------------------------------------------------------------------- /updater/uMessage.lrj: -------------------------------------------------------------------------------- 1 | {"version":1,"strings":[ 2 | {"hash":322608,"name":"tfrmmessage.caption","sourcebytes":[72,101,108,112],"value":"Help"} 3 | ]} 4 | -------------------------------------------------------------------------------- /updater/uMessage.pas: -------------------------------------------------------------------------------- 1 | unit uMessage; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Forms, StdCtrls; 9 | 10 | type 11 | 12 | { TfrmMessage } 13 | 14 | TfrmMessage = class(TForm) 15 | mmMessage: TMemo; 16 | private 17 | { private declarations } 18 | public 19 | { public declarations } 20 | end; 21 | 22 | var 23 | frmMessage: TfrmMessage; 24 | 25 | implementation 26 | 27 | {$R *.lfm} 28 | 29 | end. 30 | 31 | -------------------------------------------------------------------------------- /updater/updater.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/updater/updater.ico -------------------------------------------------------------------------------- /updater/updater.lpr: -------------------------------------------------------------------------------- 1 | program updater; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, uMain, uMessage; 11 | 12 | {$R *.res} 13 | 14 | begin 15 | Application.Title:='Updater - Free Manga Downloader'; 16 | RequireDerivedFormResource := True; 17 | Application.Initialize; 18 | Application.CreateForm(TfrmMain, frmMain); 19 | Application.CreateForm(TfrmMessage, frmMessage); 20 | Application.Run; 21 | end. 22 | 23 | -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FMDAddCookieSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FMDAddCookieSettings.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FMDAddUserAgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FMDAddUserAgent.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FMDDownloadWorks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FMDDownloadWorks.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FMDMangaInfoFound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FMDMangaInfoFound.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FMDMangaInfoNotFound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FMDMangaInfoNotFound.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FirefoxCookies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FirefoxCookies.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FirefoxUserAgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FirefoxUserAgent.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/japscan/FirstTierCloudflareBrowserCheck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/japscan/FirstTierCloudflareBrowserCheck.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/lhtranslation/FMDAddCookieSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/lhtranslation/FMDAddCookieSettings.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/lhtranslation/FMDAddUserAgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/lhtranslation/FMDAddUserAgent.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/lhtranslation/FMDDownloadWorks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/lhtranslation/FMDDownloadWorks.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/lhtranslation/FMDMangaInfoFound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/lhtranslation/FMDMangaInfoFound.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/lhtranslation/FMDMangaInfoNotFound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/lhtranslation/FMDMangaInfoNotFound.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/lhtranslation/FirefoxCookies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/lhtranslation/FirefoxCookies.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/lhtranslation/FirefoxUserAgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/lhtranslation/FirefoxUserAgent.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/psychoplay/FMDAddCookieSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/psychoplay/FMDAddCookieSettings.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/psychoplay/FMDAddUserAgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/psychoplay/FMDAddUserAgent.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/psychoplay/FMDDownloadFailed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/psychoplay/FMDDownloadFailed.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/psychoplay/FMDDownloadWorks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/psychoplay/FMDDownloadWorks.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/psychoplay/FirefoxCookies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/psychoplay/FirefoxCookies.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/psychoplay/FirefoxUserAgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/psychoplay/FirefoxUserAgent.png -------------------------------------------------------------------------------- /wiki/images/cloudflare-workarounds/psychoplay/SecondTierCloudflareBrowserCheck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dazedcat19/FMD2/c0e90e000d3731f19865a7be5ca92f776ba4f238/wiki/images/cloudflare-workarounds/psychoplay/SecondTierCloudflareBrowserCheck.png --------------------------------------------------------------------------------