- // ==UserScript==
- // @name Manga OnlineViewer Fluid Mode + Lewd Extender
- // @description Extension for Manga OnlineViewer Fluid Mode + for 18+ sites, allowing double-page spread viewing for halved images. Sites: Fakku, HBrowse, doujin-moe, hentai2read, luscious, wondersluts,hentaimangaonline, exhentai/g.e-hentai, pururin, hentai4manga, doujinshihentai, hitomi, nhentai, hentaihere, 8muses, Tsumino etc.
- // @version 11.17b6
- // @date 2015-11-15
- // @author Tago & sneezemonkey
- // @namespace https://greasyfork.org/users/1849-tago
- // @require http://code.jquery.com/jquery-2.1.1.min.js
- // @require https://greasyfork.org/scripts/10000-manga-onlineviewer-fluid-mode/code/Manga%20OnlineViewer%20Fluid%20Mode%20+.user.js
- // @grant GM_getValue
- // @grant GM_setValue
- // @include /https?://www.fakku.net/.+/.+/
- // @include /http://www.hbrowse.com/.+/
- // @include /http://www.doujin-moe.us/.+/
- // @include /http://hentai2read.com/.+/.+//
- // @include /http://luscious.net/c/.+/
- // @include /http://www.wondersluts.com/.+/
- // @include /http://hentaimangaonline.com/image/.+//
- // @include /http://exhentai.org/s/.+/.+/
- // @include /http://g.e-hentai.org/s/.+/.+/
- // @include /http://pururin.com/view/.+/.+/.+/
- // @include /http://hentai4manga.com/hentai_manga/.+/.+/
- // @include /http://doujinshihentai.com/manga/index.php/.+/
- // @include /http://hitomi.la/reader/.+/
- // @include /http://nhentai.net/g/.+/.+/
- // @include /http://www.8muses.com/picture/.+/.+/.+/.+/
- // @include /http://hentaihere.com/m/.+/.+/.+/
- // @include /http://tsumino.com/Home/Read/.+/
- // @history 11.17 Initial Split with 11.17
- // ==/UserScript==
-
- //OnlineViewer
- (function ($) {
- var m = [
- // == Fakku =======================================================================================================================================
- {
- name: "Fakku",
- url: /fakku.net/,
- run: function () {
- return {
- title: $(".chapter a:eq(1)").text().trim(),
- series: $("a.a-series-title:first").attr("href"),
- quant: $(".drop option:last").val(),
- prev: "#",
- next: "#",
- data: $("#thumbs img, .current-page").attr("src").replace("thumbs", "images").replace(/[0-9]+(\.thumb)?\.jpg$/, ""),
- page: function (i, addImg, addAltImg) {
- var str = '' + i;
- while (str.length < 3) str = '0' + str;
- addImg(i, this.data + str + ".jpg");
- }
- };
- }
- },
- // == HBrowser ====================================================================================================================================
- {
- name: "HBrowser",
- url: /hbrowse/,
- run: function () {
- return {
- title: $('.listTable td.listLong:first').text().trim(),
- series: window.location.href.match(/.+\/[0-9]+\//),
- quant: $('td.pageList a, td.pageList strong').length - 1,
- prev: $("#chapters + table a.listLink").eq($("#chapters + table a.listLink").index($("#chapters + table a.listLink[href='" + window.location.href + "']")) - 1).attr("href"),
- next: $("#chapters + table a.listLink").eq($("#chapters + table a.listLink").index($("#chapters + table a.listLink[href='" + window.location.href + "']")) + 1).attr("href"),
- url: function (i) {
- var str = '' + i;
- while (str.length < 4) str = '0' + str;
- return window.location.href + (window.location.href.slice(-1) == "/" ? "": "/") + str;
- },
- img: 'td.pageImage a img',
- before: function () {
- $('html > head').append($('<style>#main a:visited, #pageMain a:visited { color: darkred !important; }</style>'));
- }
- };
- }
- },
- // == Doujin-Moe Non-members ========================================================================================================================
- {
- name: "DoujinMoeNM",
- url: /doujin-moe.us/,
- run: function () {
- return {
- title: $(".title").text(),
- series: $(".title a").eq(-2).attr("href"),
- quant: $("#gallery > :not(.thumbs)").length,
- prev: "#",
- next: "#",
- data: $("#gallery > djm:not(.thumbs)"),
- page: function (i, addImg, addAltImg) {
- addImg(i, this.data.eq(i - 1).attr("file"));
- }
- };
- }
- },
- // == Luscious ========================================================================================================================
- {
- name: "Luscious",
- url: /(luscious|wondersluts)/,
- run: function () {
- return {
- title: $("#main .center h1:first").text().split("|")[0].trim(),
- series: "#",
- quant: $(".image > a > img").length,
- prev: "#",
- next: $(".next").attr("href"),
- data: $(".image > a > img"),
- page: function (i, addImg, addAltImg) {
- addImg(i, this.data.eq(i - 1).attr('src').replace(".640x0", ""));
- },
- before: function () {
- var url = window.location.href;
- if (url.match("style=blog") && !url.match("position")) {
- window.location = url.replace(/page\/[0-9]+.+/, "sorted/position/page/1/?style=blog");
- } else if (url.match("/(pictures/album/.*)/id")) {
- window.location = url.replace(/(id.*)/, "sorted/position/page/1/?style=blog");
- } else {
- $('a.cover').each(function () {
- var href = $(this).attr('href');
- if (href.match("/(pictures/album/.*)/id")) {
- $(this).attr('href', href.replace(/(id.*)/, "sorted/position/page/1/?style=blog"));
- }
- });
- }
- }
- };
- }
- },
- // == HentaiMangaOnline ========================================================================================================================
- {
- name: "HentaiMangaOnline",
- url: /hentaimangaonline/,
- run: function () {
- return {
- title: $(".breadcrumb li:eq(2)").text().trim(),
- series: $("ul.breadcrumb li a:eq(2)").attr("href"),
- quant: $("select option").length,
- prev: "#",
- next: "#",
- data: $("select").html(),
- img: 'a img'
- };
- }
- },
- // == ExHentai ========================================================================================================================
- {
- name: "ExHentai",
- url: /(exhentai|e-hentai)/,
- run: function () {
- return {
- title: $("#il h1").text().trim(),
- series: $("div#i5 div.sb a").attr("href"),
- quant: $(".sn div span:last").text(),
- prev: "#",
- next: "#",
- url: window.location.href,
- timer: 3000,
- page: function (i, addImg, addAltImg) {
- var self = this;
- $.ajax({
- type: "GET",
- url: self.url,
- dataType: "html",
- async: false,
- success: function (html) {
- var ref = $(html).find("div#i7 a, #img");
- var src = ref.attr(ref.is("img")?"src":"href");
- addImg(i,src);
- addAltImg(i, src+" ?nl=1");
- self.url = $(html).find("#img").parent().attr("href");
- }
- });
- }
- };
- }
- },
- // == Pururin ========================================================================================================================
- {
- name: "Pururin",
- url: /pururin/,
- run: function () {
- return {
- title: $(".header-breadcrumbs a:eq(3)").text().trim(),
- series: $(".header-breadcrumbs a:eq(3)").attr("href"),
- quant: $(".image-pageSelect option").length,
- prev: "#",
- next: "#",
- data: $(".image-pageSelect").html(),
- img: "img.b"
- };
- }
- },
- // == hentai4manga ========================================================================================================================
- {
- name: "hentai4manga",
- url: /hentai4manga/,
- run: function () {
- return {
- title: $(".category-label").text().trim(),
- series: location.href.replace(/\/\d+\//, '/'),
- quant: $('select#sl option').size(),
- prev: "#",
- next: "#",
- url: function (i) {
- return "../" + i + "/";
- },
- img: '#textboxContent img'
- };
- }
- },
- // == DoujinshiHentai ========================================================================================================================
- {
- name: "DoujinshiHentai",
- url: /doujinshihentai/,
- run: function () {
- return {
- title: $(".category-label").text().trim(),
- series: "http://doujinshihentai.com/series.html",
- quant: $('#page_last').attr("href").match(/[0-9]+\./),
- prev: "#",
- next: "#",
- data: location.href,
- url: function (i) {
- var str = '' + i;
- while (str.length < 3) str = '0' + str;
- return this.data.replace("001.",str+".");
- },
- img: '.weatimages_bigimage'
- };
- }
- },
- // == hitomi ========================================================================================================================
- {
- name: "hitomi",
- url: /hitomi.la/,
- run: function () {
- return {
- title: $("title").text().replace("| Hitomi.la","").trim(),
- series: $(".brand").attr("href"),
- quant: $("#single-page-select option").length,
- prev: "#",
- next: "#",
- data:$(".img-url"),
- page: function (i,addImg, addAltImg) {
- console.log("Page " + i);
- addImg(i, this.data.eq(i - 1).text());
-
- },
- };
- }
- },
- // == nHentai ========================================================================================================================
- {
- name: "nHentai",
- url: /nhentai/,
- run: function () {
- return {
- title: $('title').text().split('- Page')[0].trim(),
- series: $("div#page-container div a").attr("href"),
- quant: $(".num-pages:first").html(),
- prev: "#",
- next: "#",
- url: function (i) {
- return "../" + i + "/";
- },
- img: '#page-container img'
- };
- }
- },
- // == 8muses ========================================================================================================================
- {
- name: "8muses",
- url: /8muses/,
- run: function () {
- return {
- title: $('.breadcrumbs li:eq(2) span a').text().trim(),
- series: $('.breadcrumbs li:eq(2) span a').attr("href"),
- quant: $(".sel:first option").length,
- prev: "#",
- next: "#",
- data: $(".sel:first option"),
- img: '#image'
- };
- }
- },
- // == Tsumino ========================================================================================================================
- {
- name: "Tsumino",
- url: /tsumino/,
- run: function () {
- return {
- title: $('title').text().split('/')[0].trim(),
- series: $("a:contains('RETURN')").attr("href"),
- quant: (parseInt($("h1").text().split("of")[1].trim())),
- prev: "#",
- next: "#",
- url: function (i) {
- var url = window.location.pathname.split('/');
- return "/Image/Page/"+ url[3] + "/" + i;
- },
- page: function(i,addImg,addAltImg) {
- var self = this;
- addImg(i, self.url(i))
- }
- };
- }
- },
- // == hentaihere ========================================================================================================================
- {
- name: "hentaihere",
- url: /hentaihere/,
- run: function () {
- return {
- title: $('title').text().split('|')[1].trim(),
- series: $('ul.nav-pills:first li:first a').attr("href"),
- quant: $("#pageDropdown:first ul li").length,
- prev: "#",
- next: "#",
- url: function(i) {
- var pathname = window.location.pathname.split('/');
- return "/" + pathname[1] + "/" + pathname[2] + "/" + pathname[3] + "/" + i + "/";
- },
- img: 'img#arf-reader-img'
- };
- }
- }
- ];
-
-
- if ($(".startbutton").length > 0) {
- $(".startbutton").on("click", function(){
- $.MangaOnlineViewer.start(m);
- $(".startbutton").remove();})
- } else {
- $.MangaOnlineViewer.start(m);}
-
- })(jQuery);