Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tagodr/mangaonlineviewer

This scripts loads all pages(images) from the current chapter of the manga showing them in one page in a list type structure, witch helps reading faster.
https://github.com/tagodr/mangaonlineviewer

javascript manga nodejs reader tampermonkey userscript viewer

Last synced: 1 day ago
JSON representation

This scripts loads all pages(images) from the current chapter of the manga showing them in one page in a list type structure, witch helps reading faster.

Awesome Lists containing this project

README

        

# Manga OnlineViewer

![Manga Icon Adult Script](https://cdn-icons-png.flaticon.com/128/9824/9824312.png)
![Manga Icon Main Script](https://cdn-icons-png.flaticon.com/128/2281/2281832.png)
![Manga Icon Dev Script](https://cdn-icons-png.flaticon.com/128/9824/9824248.png)

## Description

Loads all pages from a chapter in a nice view, allowing for faster and more comfortable reading,
without the need to
wait for pages to load.

:exclamation: **Attention**: Some sites require you to reload the page(F5) or open the chapter in a
new tab for the
script to start.

## Supported Browsers

Firefox and Chrome with [Tampermonkey](https://tampermonkey.net/)
or [Violentmonkey](https://violentmonkey.github.io/).
Other Browsers with other add-ons may also work, but not officially supported.

## Installation

#### [Main Reader](/dist/Manga_OnlineViewer.user.js?raw=1)

#### [Adult Reader](/dist/Manga_OnlineViewer_Adult.user.js?raw=1)

#### Official Source: [GitHub](https://github.com/TagoDR/MangaOnlineViewer)

## Local Files (ZIP, CBZ, CBR..., PNGs, JPGs...)

Save this
file [index.html](/index.html?raw=1),
then open it in the browser, and you will see the options to load local Files.

## Supported Manga Sites

- [Alandal](https://alandal.com/) _[English]_
- [Asura Scans](https://asuracomic.net/) _[English]_
- [Batoto](https://bato.to/) _[English]_
- [BilibiliComics](https://www.bilibilicomics.net/) _[English]_
- [Comick](https://comick.io/) _[English]_
- [Dynasty-Scans](https://dynasty-scans.com/) _[English]_
- [INKR](https://inkr.com/) _[English]_
- [LHTranslation](https://lhtranslation.net/) _[English]_
- [LynxScans](https://lynxscans.com/) _[English]_
- [MangaBuddy](https://mangabuddy.com/) _[English]_
- [MangaDemon](https://demonicscans.org/) _[English]_
- [MangaDex](https://mangadex.org/) _[English]_
- [MangaFox](https://fanfox.net/) / [MangaHere](https://www.mangahere.cc/) _[English]_
- [Mangago](https://www.mangago.me/) _[English]_
- [MangaHub](https://mangahub.io/) _[English]_
- [MangaKakalot](https://mangakakalot.com/) / [MangaNelo](https://www.manganelo.com/) / [MangaNato](https://www.manganato.com/) _[English]_
- [MangaPark](https://mangapark.net/) _[English]_
- [Mangareader](https://mangareader.to) _[English]_ **Obs: Some galleries will not be usable**
- [MangaSee](https://mangasee123.com/) / [Manga4life](https://manga4life.com/) _[English]_
- [MangaToons](https://mangatoon.mobi/) _[English]_
- [MangaTown](https://www.mangatown.com/) _[English]_
- [ManhuaScan](https://manhuascan.com/) _[English]_
- [MangaGeko.com](https://www.mgeko.com/) / [MangaGeko.cc](https://www.mgeko.cc/) _[English]_
- [NaniScans](https://naniscans.com/) _[English]_
- [NineManga](https://ninemanga.com/) _[English]_
- [PandaManga](https://www.pandamanga.com/) _[English]_
- [ReadManga Today](https://readm.today/) _[English]_
- [ReaperScans](https://reaperscans.com/) _[English]_
- [KLManga](https://tapas.io/) _[English]_
- [TenManga](https://www.tenmanga.com/) _[English]_
- [WebNovel](https://www.webnovel.com/) _[English]_
- [WebToons](https://www.webtoons.com/) _[English]_
- [Manga33](https://manga33.com/) _[English]_
- [ZeroScans](https://zscans.com/) _[English]_
- [MangaStream WordPress Plugin](https://themesia.com/mangastream-wordpress-theme/) / [Flame Comics](https://flamecomics.com/) / [Realm Oasis](https://realmoasis.com/) / [Voids-Scans](https://void-scans.com/) / [Luminous Scans](https://luminous-scans.com/) / [Shimada Scans](https://shimadascans.com/) / [Night Scans](https://night-scans.com/) / [Manhwa-Freak](https://freakcomic.com/) / [OzulScansEn](https://ozulscansen.com/) / [CypherScans](https://cypherscans.xyz/) / [MangaGalaxy](https://mangagalaxy.me/) / [LuaScans](https://luascans.com/) / [Drake Scans](https://drake-scans.com/) / [Rizzfables](https://rizzfables.com/) _[English]_
- [FoOlSlide](https://github.com/saintly2k/FoOlSlideX) / [Kireicake](https://reader.kireicake.com) _[English]_ **Obs: Any Site that uses FoOLSlide**
- [Madara WordPress Plugin](https://mangabooth.com/) / [MangaHaus](https://manhuaus.com) / [Isekai Scan](https://isekaiscan.com/) / [Comic Kiba](https://comickiba.com/) / [Zinmanga](https://zinmanga.com/) / [mangatx](https://mangatx.com/) / [Toonily](https://toonily.net/) / [Mngazuki](https://mangazuki.me/) / [JaiminisBox](https://jaiminisbox.net) / [DisasterScans](https://disasterscans.com/) / [ManhuaPlus](https://manhuaplus.org/) / [TopManhua](https://www.topmanhua.com/) / [NovelMic](https://novelmic.com/) / [Reset-Scans](https://reset-scans.com/) / [LeviatanScans](https://leviatanscans.com/) / [Dragon Tea](https://dragontea.ink/) / [SetsuScans](https://setsuscans.com/) / [ToonGod](https://toongod.org/home/) _[English]_ **Obs: Any Site that uses Madara Wordpress Plugin**
- [Leitor](https://leitor.net/) _[Portuguese]_
- [MangaHosted](https://mangahosted.com/) _[Portuguese]_
- [UnionMangas](https://unionleitor.top/) _[Portuguese]_
- [KLManga](https://klmanga.com/) _[Raw]_
- [Local Files](/index.html?raw=1) _[Raw]_
- [RawDevart](https://rawdevart.com) _[Raw]_
- [SenManga(Raw)](https://raw.senmanga.com/) _[Raw]_
- [InManga](https://inmanga.com//) _[Spanish]_
- [MangasIn](https://mangas.in/) _[Spanish]_
- [MangaOni](https://manga-oni.com/) _[Spanish]_
- [MangaTigre](https://www.mangatigre.net/) _[Spanish]_
- [ManhwaWeb](https://manhwaweb.com/) _[Spanish]_
- [OlympusScans](https://olympusscans.com/) _[Spanish]_
- [TuMangaOnline](https://lectortmo.com/) _[Spanish]_
- [TuManhwas](https://tumanhwas.com/) _[Spanish]_
- [YugenMangas](https://yugenmangas.lat/) _[Spanish]_

## Supported Comic Sites

- [ComiCastle](https://comic.nizamkomputer.com/) _[English]_
- [ReadComicsOnline](https://readcomicsonline.ru/) _[English]_

## Supported Hentai Sites

> Adult Script available **_only_** on [GitHub](https://github.com/TagoDR/MangaOnlineViewer)

- [BestPornComix](https://www.bestporncomix.com) _[English]_
- [DoujinMoeNM](https://doujins.com/) _[English]_
- [8Muses.com](https://comics.8muses.com/) / [8Muses.io](https://8muses.io/) _[English]_ **Obs: Slow start, bruteforce may be required**
- [ExHentai](https://exhentai.org/) / [e-Hentai](https://e-hentai.org/) _[English]_ **Obs: May get your IP Banned, use with moderation**
- [Fakku.cc](https://spy.fakku.cc/) _[English]_
- [FSIComics](https://fsicomics.com/) _[English]_
- [HBrowser](https://www.hbrowse.com/) _[English]_
- [Hentai2Read](https://hentai2read.com/) _[English]_
- [HentaiEra](https://hentaiera.com/) _[English]_
- [HentaiFox](https://www.hentaifox.com/) _[English]_
- [HentaiHand](https://hentaihand.com/) / [nHentai.com](https://nhentai.com) _[English]_
- [HentaIHere](https://www.hentaihere.com/) _[English]_
- [HentaiNexus](https://hentainexus.com/) _[English]_
- [hitomi](https://hitomi.la/) _[English]_
- [Imhentai](https://imhentai.xxx/) _[English]_
- [Koharu](https://koharu.to/) _[English]_
- [Luscious](https://luscious.net/) _[English]_
- [MultPorn](https://multporn.net/) _[English]_
- [MyHentaiGallery](https://www.myhentaigallery.com) _[English]_
- [nHentai.net](https://nhentai.net/) / [nHentai.xxx](https://nhentai.xxx/) / [lhentai](https://lhentai.com/) _[English]_
- [9Hentai](https://9hentai.to) _[English]_
- [OmegaScans](https://omegascans.org/) _[English]_
- [PornComixOnline](https://www.porncomixone.net) _[English]_
- [Pururin](https://pururin.to/) _[English]_
- [Simply-Hentai](https://simply-hentai.com/) _[English]_
- [3Hentai](https://3hentai.net/) / [HentaiVox](https://hentaivox.com/) _[English]_
- [Tsumino](https://tsumino.com/) _[English]_
- [XlecxOne](https://xlecx.one/) _[English]_
- [xyzcomics](https://xyzcomics.com/) _[English]_
- [Madara WordPress Plugin](#) / [AllPornComic](https://allporncomic.com/) / [Manytoon](https://manytoon.com/) / [Manga District](https://mangadistrict.com/) _[English]_ **Obs: Any Site that uses Madara Wordpress Plugin**
- [wnacg](https://wnacg.com/) _[English,Raw,Chinese]_
- [KingComix](https://kingcomix.com/) / [Chochox](https://chochox.com/porno/) / [Comics18](https://comics18.org/) _[English,Spanish]_
- [AkumaMoe](https://akuma.moe) _[Raw]_
- [GNTAI.net](https://www.gntai.net/) _[Spanish]_
- [TMOHentai](https://tmohentai.com/) _[Spanish]_
- [vermangasporno](https://vermangasporno.com/) / [vercomicsporno](https://vercomicsporno.com/) _[Spanish]_

## HotKeys

- Auto Scroll: space
- Scroll Up: up /
W
/
num_8

- Scroll Down: down /
S
/
num_2

- Next Chapter:
right
/ / /
D
/ num_6

- Previous Chapter:
left
/ ; /
A
/ num_4

- Enlarge: - /
num_add
/
E

- Restore: = /
num_subtract
/
Q

- Restore: 9 /
num_divide
/
R

- Fit Width: 0 /
num_multiply
/
F

- Fit Height: H
- Settings: num_divide /
num_5
/
X

- WebComic: C
- Vertical: V
- Left to Right: N
- Right to Left: B

## Features

- Auto Scroll
- View Modes:
- Vertical/WebComic [Default]
- Fluid Left to Right
- Fluid Right to Left
- Bookmark Pages (To resume reading)
- Full Themes and Customizable
- Global and Individual images zoom
- In(Global one may stretch images beyond window width)
- Out
- Restore original(Toggle fit width if oversize)
- Fit width
- Fit width if oversize[Default on]
- Fit Height (with scroll pages)
- Hide
- Auto reload Images
- Counter for loaded Images
- Individual image reload, just in case
- HotKeys
- Goto Page
- Image Loading Timer[Default 1s](Some sites require longer timers. e.g.:ExHentai,e-hentai)
- Thumbnails Navigation[Default on]
- Download all images as ZIP File[Automatic Default off]
- Lazy Load Images[Default off]

## Adding new Manga Sites

Fork this project and make a pull request, in the folders "main" or "adult" create a new file .ts
with
The name of the site.
After writing the module like below, import it from the index of the selected folder

Inside the file, gather the information needed using any means, look at other sites for inspiration,
Below is an example with descriptions.

```ts
// == MangaDex =====================================================================================
export default {
name: 'MangaDex', // The name of the to be listed, may be an array of names
url: /https?:\/\/(www\.)?mangadex.org/, // Regex to detect the site, usually just the reader part of the site, but can be the root if is has a lot of dynamic content
homepage: 'https://mangadex.org/', // Link for the home page of the site, may be an array of urls
language: ['English'], // Array of languages the site serve
category: 'manga', // Category of the site
waitEle: '#chapter-selector a', // Wait for something before running, some site requires some steps before the information is available
async run() {
// Logic for obtaining the required information
const chapterId = /\/chapter\/([^/]+)(\/\d+)?/.exec(window.location.pathname)?.at(1);
const home = `https://api.mangadex.org/at-home/server/${chapterId}`;
const server = await fetch(home).then(async (res) => res.json());
const images = server.chapter.data;
const chapters = document.querySelectorAll('#chapter-selector a');
return {
title: document.querySelector('title')?.text.replace(' - MangaDex', ''), // Title of the Chapter/Manga
series: document.querySelector("a.text-primary[href^='/title/']")?.getAttribute('href'), // Url for the gallery or chapter list
pages: images.length, // Quantity of pages
prev: chapters?.item(0)?.getAttribute('href'), // Previous Chapter
next: chapters?.item(1)?.getAttribute('href'), // Next Chapter
listImages: images.map( // List of images
(img: string) => `${server.baseUrl}/data/${server.chapter.hash}/${img}`,
),
};
},
};

```

Look inside the types folder to better understand the structure and valid values.

## Permissions

I allow this script to be posted or used anywhere as long as I am given credit and provided a link
to this site. I allow
parts of my script to be used freely.

## Disclaimer

In case the owner/admin of one of the supported sites does not want my script to run on their site,
I will make it
disabled by default. Forcing users to manually activate it.

## Mobile

It's recommended to use Tampermonkey with Firefox mobile or Kiwi Browser.

### Bookmarklet (Not Recommended)

_Settings can't be saved with Bookmarklet_:

Bookmarklet seems to work only in Chrome, open the chapter then use the search bar to activate your
bookmarklet.

##### Main Reader:

```JS
javascript:(function() {
if (unsafeWindow === undefined) unsafeWindow = window;
["https://cdnjs.cloudflare.com/ajax/libs/tinycolor/1.6.0/tinycolor.min.js", "https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/5.0.0/imagesloaded.pkgd.min.js", "https://cdnjs.cloudflare.com/ajax/libs/jszip/3.9.1/jszip.min.js", "https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js", "https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/11.4.8/sweetalert2.min.js", "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js", "https://cdn.jsdelivr.net/npm/[email protected]/dist/hotkeys.min.js", "https://cdn.jsdelivr.net/npm/[email protected]/dist/rangeslider.nostyle.umd.min.js", "https://cdnjs.cloudflare.com/ajax/libs/UAParser.js/1.0.37/ua-parser.min.js", "https://cdnjs.cloudflare.com/ajax/libs/blob-util/2.0.2/blob-util.min.js", "https://cdn.jsdelivr.net/gh/TagoDR/MangaOnlineViewer@latest/dist/Manga_OnlineViewer.user.min.js"].map(s => document.body.appendChild(document.createElement('script')).src = s)
})();
```

##### Adult Reader:

```JS
javascript:(function() {
if (unsafeWindow === undefined) unsafeWindow = window;
["https://cdnjs.cloudflare.com/ajax/libs/tinycolor/1.6.0/tinycolor.min.js", "https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/5.0.0/imagesloaded.pkgd.min.js", "https://cdnjs.cloudflare.com/ajax/libs/jszip/3.9.1/jszip.min.js", "https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js", "https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/11.4.8/sweetalert2.min.js", "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js", "https://cdn.jsdelivr.net/npm/[email protected]/dist/hotkeys.min.js", "https://cdn.jsdelivr.net/npm/[email protected]/dist/rangeslider.nostyle.umd.min.js", "https://cdnjs.cloudflare.com/ajax/libs/UAParser.js/1.0.37/ua-parser.min.js", "https://cdnjs.cloudflare.com/ajax/libs/blob-util/2.0.2/blob-util.min.js", "https://cdn.jsdelivr.net/gh/TagoDR/MangaOnlineViewer@latest/dist/Manga_OnlineViewer_Adult.user.min.js"].map(s => document.body.appendChild(document.createElement('script')).src = s)
})();
```