// ==UserScript==
// @name ReadM Larger Thumbnails by Sapioit
// @namespace Sapioit
// @copyright Sapioit, 2020 - Present
// @author sapioitgmail.com
// @license GPL-2.0-only; http://www.gnu.org/licenses/gpl-2.0.txt
// @match https://readm.org/
// @match https://readm.org/latest-releases
// @match https://readm.org/latest-releases/
// @match https://readm.org/latest-releases/*
// @match https://readm.org/manga
// @match https://readm.org/manga/
// @match https://readm.org/manga/*
// @match https://readm.org/category
// @match https://readm.org/category/
// @match https://readm.org/category/*
// @match https://www.readm.org/
// @match https://www.readm.org/latest-releases
// @match https://www.readm.org/latest-releases/
// @match https://www.readm.org/latest-releases/*
// @match https://www.readm.org/manga
// @match https://www.readm.org/manga/
// @match https://www.readm.org/manga/*
// @match https://www.readm.org/category
// @match https://www.readm.org/category/
// @match https://www.readm.org/category/*
// @description Makes the thumbnails more visible by making them bigger, the text selectable, adds the code all-pages to most links, and improves/replaces the pagination.
// @version 1.9.0.03
// @icon https://readm.org/favicon.ico
// @grant GM_addStyle
// @grant GM_registerMenuCommand
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
// @downloadURL https://greasyfork.org/scripts/418848-readmg-larger-thumbnails-by-sapioit/code/ReadMG%20Larger%20Thumbnails%20by%20Sapioit.user.js
// @updateURL https://openuserjs.org/install/sapioitgmail.com/ReadMG_Larger_Thumbnails_by_Sapioit.user.js
/*
CHANGELOG
v1.9.0.00
- Mobile-friendly style optimized to show multiple manga per row.
v1.8.4.0
- Fixed broken links (broken by the website admin) to manga.
v1.8.0.0
- Fixed broken images (broken by the website admin), and the pagination if you are logged in (which is now required to view the links to each chapter).
v1.7.1.0
- Added a special character link before each manga link, for the manga links which don't like having /all-pages at the end.
*/
/*GM_setValue(widemode,0);
GM_getValue(widemode,0);*/
GM_registerMenuCommand('Toggle Wide Mode', function() {
GM_setValue(`widemode`,!GM_getValue(`widemode`,0));
GM_addStyle('@media (max-width: 1000px) { .dark-segment>ul .segment-poster-sm { width: 300px !important; display: inline-block; float: left; } }');
GM_addStyle('.dark-segment>ul .segment-poster-sm { width: 33%; }');
GM_addStyle('#wrapper { max-width: 1280px !important; }');
if(GM_getValue(`widemode`,0)){
GM_addStyle('@media (max-width: 1000px) { .dark-segment>ul .segment-poster-sm { width: 300px !important; display: inline-block; float: left; } }');
GM_addStyle('.dark-segment>ul .segment-poster-sm { width: 24%; }');
GM_addStyle('#wrapper { max-width: 1600px !important; }');
}
});
GM_registerMenuCommand('Toggle Max-Width', function() {
GM_setValue(`maxwidth`,!GM_getValue(`maxwidth`,0));
GM_addStyle('.chapter a img, .chapter img { max-width: 100% !important; }');
if(GM_getValue(`maxwidth`,0)){
GM_addStyle('.chapter a img, .chapter img { max-width: none !important; }');
}
});
GM_registerMenuCommand('Refresh Thumbnails', reset_thumbnails());
function reset_thumbnails(){
if (!(window.location.href.includes('readm.org/manga/'))) { return; }
// Select all the elements with the CSS query
let elements = document.querySelectorAll('.poster.poster-xs img');
// Loop through each element
elements.forEach((element) => {
// Copy the 'data-src' attribute to the 'src' attribute
element.src = element.dataset.src;
});
}
GM_addStyle('@media (max-width: 1000px) { .dark-segment>ul .segment-poster-sm { width: 300px !important; display: inline-block; float: left; } }');
GM_addStyle('.dark-segment>ul .segment-poster-sm { width: 33%; }');
GM_addStyle('#wrapper { max-width: 1280px !important; }');
if(GM_getValue(`widemode`,0)){
GM_addStyle('@media (max-width: 1000px) { .dark-segment>ul .segment-poster-sm { width: 300px !important; display: inline-block; float: left; } }');
GM_addStyle('.dark-segment>ul .segment-poster-sm { width: 24%; }');
GM_addStyle('#wrapper { max-width: 1600px !important; }');
}
GM_addStyle('#wrapper { max-width: 1280px !important; }');
if(GM_getValue(`widemode`,0)){
GM_addStyle('@media (max-width: 1000px) { .dark-segment>ul .segment-poster-sm { width: 300px !important; display: inline-block; float: left; } }');
GM_addStyle('.dark-segment>ul .segment-poster-sm { width: 24%; }');
GM_addStyle('#wrapper { max-width: 1600px !important; }');
}
GM_addStyle('@media (max-width: 1000px) { .dark-segment>ul .segment-poster-sm { width: 300px !important; display: inline-block; float: left; } }');
GM_addStyle('.poster.poster-xs img { max-width: 150px !important; min-width: 150px !important; height: 212px !important; margin: 0 !important; }');
GM_addStyle('.latest-updates .poster.poster-xs { height: 212px !important; }');
GM_addStyle('.truncate { white-space: normal !important; }');
GM_addStyle('.ui.pagination.menu .item, .ui.menu .item { margin: 0 !important; padding 10px !important; }');
GM_addStyle('.poster.poster-xs a:link { color: #fff !important; }');
GM_addStyle('.poster.poster-xs a:visited { color: #f6c6c6 !important; font-style: italic !important; }');
GM_addStyle('ul.chapters li a:visited { color: #f6c6c6 !important; font-style: italic !important; }');
GM_addStyle('ul.chapters li a:visited { color: #fcc !important; font-style: italic !important; }');
GM_addStyle('a:visited { color: #fcc !important; font-style: italic !important; }');
GM_addStyle('.inner-content { padding-left:0 !important; padding-right:0 !important; }');
GM_addStyle('.mt-0, #series-tabs, .pb-0 { padding-left: 30px !important; padding-right: 30px !important; }');
GM_addStyle('li.item { padding: 0 !important; }');
GM_addStyle('li.item a { padding: .92857143em 1.14285714em !important; }');
GM_addStyle('li.item a:visited { color: #fcc !important; font-style: italic !important; }');
GM_addStyle('#podium-spot { display:none !important; }');
GM_addStyle('body > iframe { display:none !important; }');
GM_addStyle('#router-view center { display: none !important; }');
GM_addStyle('#router-view div center { display: block !important; }');
GM_addStyle('#router-view div[data-onpage="true"] { display: none !important; }');
GM_addStyle('#gpt_unit_/30438525/Readm/ReadM_Interstitial_0 { display: none !important; }'); /*google interstitial ads*/
GM_addStyle('#aniBox { display: none !important; }');
GM_addStyle('.chapter center { display: none !important; }');
GM_addStyle('#series-tabs > p > span[style] { color: white !important; background: #14161d !important;}');
GM_addStyle('.wider-text { transform: scaleX(1.2); -webkit-transform: scaleX(1.2); -moz-transform: scaleX(1.2); -ms-transform: scaleX(1.2); }');
GM_addStyle('.wider-text { transform: scaleX(2); -webkit-transform: scaleX(2); -moz-transform: scaleX(2); -ms-transform: scaleX(2); letter-spacing: -4px; }');
GM_addStyle('.wider-text { padding-right: 8px; }');
GM_addStyle('body::-webkit-scrollbar { width: 15px; }');
GM_addStyle('body { scrollbar-width: auto; }');
//document.getElementById("podium-spot").outerHTML = "";
window.onload = function() {
var lnks = document.querySelectorAll('.poster-xs a');
console.log(lnks);
for (var k = 0; k < lnks.length; k++) {
if(!(lnks[k].href.includes("/all-pages"))){
lnks[k].href = lnks[k].href;
lnks[k].className = "manga-link";
lnks[k].classList.add("manga-link");
}
}
var lnks2 = document.querySelectorAll('.poster-xs .truncate a');
console.log(lnks2);
/*for (k = 0; k < lnks.length; k++) {
if(!lnks[k].parentElement.parentElement.classList.contains('chapters')){
lnks[k].outerHTML = "<a href=\"" + lnks[k].href.replace("/all-pages","") + "\">➧ </a>" + lnks[k].outerHTML;*/
for (k = 0; k < lnks2.length; k++) {
if(!lnks2[k].parentElement.parentElement.classList.contains('chapters')){
lnks2[k].outerHTML = "<a href=\"" + lnks2[k].href + "/all-pages" + "\" class=\"wider-text\">➧➧ </a>" + lnks2[k].outerHTML;
console.log(lnks2[k].outerHTML+'<br/>\n');
/* ◖ ➤ ➧ */
/* https://html-css-js.com/html/character-codes/arrows */
}
}
var lnks3 = document.querySelectorAll('.poster-subject .chapters a:link');
console.log(lnks);
for (var l = 0; l < lnks3.length; l++) {
if(!(lnks3[l].href.includes("/all-pages"))){
lnks3[l].href = lnks3[l].href + "/all-pages";
lnks3[l].className = "manga-chapter-link";
lnks3[l].classList.add("manga-chapter-link");
}
}
setTimeout(function() {
var lnks3 = document.querySelectorAll('img.lazy-wide');
//for (var h = 0; h < lnks2.length; h++) {
for (var h = 0, k; h < lnks3.length; h++) {
//console.log(lnks2[h].src);
//lnks2[h].src=(lnks2[h].src).replace("_30x0","_198x0");
//lnks2[h].setAttribute('data-src', (lnks2[h].getAttribute('data-src')).replace("_30x0","_198x0"));
//lnks3[h].setAttribute('data-src', (lnks3[h].getAttribute('data-src')).replace("_30x0","_198x0"));
//lnks3[h].setAttribute('src', (lnks3[h].getAttribute('src')).replace("_30x0","_198x0"));
k = (lnks3[h].getAttribute('src'));
//alert( k.includes("_30x0.") + '\n' + k.includes("_198x0.") + '\n' + (!(k.includes("_30x0.")) && !(k.includes("_198x0."))) );
//if (h>1) break;
if ( !(k.includes(".disquscdn.com/")) ) {
//if ( !(k.includes("_30x0.")) && !(k.includes("_198x0.")) ) {
// k = (lnks3[h].getAttribute('src')).split('.');
// lnks3[h].setAttribute('src', k[0] + "_198x0." + k[1]);
// k = (lnks3[h].getAttribute('data-src')).split('.');
// //lnks3[h].setAttribute('data-src', k[0] + "_30x0." + k[1]);
// lnks3[h].setAttribute('data-src', lnks3[h].getAttribute('data-src')[0] + "_30x0." + k[1]);
// lnks3[h].setAttribute('class', "lazy-wide loaded");
//}
lnks3[h].setAttribute('data-src', (lnks3[h].getAttribute('data-src')).replace("_30x0","_198x0"));
lnks3[h].setAttribute('src', (lnks3[h].getAttribute('src')).replace("_30x0","_198x0"));
lnks3[h].setAttribute('data-src', (lnks3[h].getAttribute('data-src')).replace("_198x0_30x0","_198x0"));
lnks3[h].setAttribute('src', (lnks3[h].getAttribute('src')).replace("_198x0_30x0","_198x0"));
lnks3[h].setAttribute('data-src', (lnks3[h].getAttribute('data-src')).replace("_30x0_198x0","_198x0"));
lnks3[h].setAttribute('src', (lnks3[h].getAttribute('src')).replace("_30x0_198x0","_198x0"));
lnks3[h].setAttribute('data-src', (lnks3[h].getAttribute('data-src')).replace("_30x0_30x0","_198x0"));
lnks3[h].setAttribute('src', (lnks3[h].getAttribute('src')).replace("_30x0_30x0","_198x0"));
lnks3[h].setAttribute('data-src', (lnks3[h].getAttribute('data-src')).replace("_198x0_198x0","_198x0"));
lnks3[h].setAttribute('src', (lnks3[h].getAttribute('src')).replace("_198x0_198x0","_198x0"));
}
k = lnks3[h];
if (k.classList.contains('error')) {
k.classList.remove('error');
k.classList.add('loaded');
}
//console.log(lnks2[h].src);
//console.log(lnks2[h].getAttribute('data-src'));
//console.log(lnks2);
console.log(lnks3);
}
}, 2*1000); // 2 second will elapse and Code will execute.
}
GM_addStyle('.click-right.pageskin-click-div, .click-left.pageskin-click-div { display:none !important; }');
GM_addStyle('body { background: url() #111216 !important; }');
function updatestylesbysapioit(){
GM_addStyle('@media (max-width: 1000px) { .dark-segment>ul .segment-poster-sm { width: 300px !important; display: inline-block; float: left; } }');
GM_addStyle('.dark-segment>ul .segment-poster-sm { width: 33%; }');
GM_addStyle('#wrapper { max-width: 1280px !important; }');
if(GM_getValue(`widemode`,0)){
GM_addStyle('.dark-segment>ul .segment-poster-sm { width: 24%; }');
GM_addStyle('#wrapper { max-width: 1600px !important; }');
}
GM_addStyle('.poster.poster-xs img { max-width: 150px !important; min-width: 150px !important; height: 212px !important; margin: 0 !important; }');
GM_addStyle('.latest-updates .poster.poster-xs { height: 212px !important; }');
GM_addStyle('.truncate { white-space: normal !important; }');
GM_addStyle('.ui.pagination.menu .item, .ui.menu .item { margin: 0 !important; padding 10px !important; }');
GM_addStyle('.poster.poster-xs a:link { color: #fff !important; }');
GM_addStyle('.poster.poster-xs a:visited { color: #f6c6c6 !important; font-style: italic !important; }');
GM_addStyle('ul.chapters li a:visited { color: #f6bf6c6c66b6 !important; font-style: italic !important; }');
GM_addStyle('a:visited { color: #fcc !important; font-style: italic !important; }');
GM_addStyle('.inner-content { padding-left:0 !important; padding-right:0 !important; }');
GM_addStyle('.mt-0, #series-tabs, .pb-0 { padding-left: 30px !important; padding-right: 30px !important; }');
//GM_addStyle('#material .scroll { overflow-y: auto; max-height: 30vh !important; }'); // MAL-Sync
GM_addStyle('#podium-spot { display:none !important; }');
GM_addStyle('body > iframe { display:none !important; }');
//GM_addStyle('#router-view center { display: none; }');
GM_addStyle('#gpt_unit_ { display:none !important; }'); /*google ads*/
if(typeof document.getElementById("podium-spot") != "undefined" && document.getElementById("podium-spot") != null){
document.getElementById("podium-spot").outerHTML = "";
}
console.log("Sapioit: updatestylesbysapioit");
}
setTimeout(function() {
updatestylesbysapioit();
}, 5*1000); // 5 seconds will elapse and Code will execute.
setTimeout(function() {
updatestylesbysapioit();
}, 10*1000); // 10 seconds will elapse and Code will execute.
setTimeout(function() {
updatestylesbysapioit();
}, 15*1000); // 15 seconds will elapse and Code will execute.
setTimeout(function() { // Adds extra pages!
console.log("Sapioit: pagination start");
var address = document.location.pathname;
if(address.startsWith("/latest-releases")){
var releases_page_number = address;
if(address == "/latest-releases"){
releases_page_number = 0;
} else {
releases_page_number=address.replace("/latest-releases/", "");
if (releases_page_number === '')
releases_page_number = 0;
releases_page_number=parseInt(releases_page_number);
console.log("Sapioit: page number: " + releases_page_number);
}
var list_of_pages;
list_of_pages = document.getElementsByClassName("menu").length;
list_of_pages = document.getElementsByClassName("menu")[list_of_pages-1];
var current_element_in_list = list_of_pages.getElementsByTagName("li");
list_of_pages.innerHTML="";
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/1">First</a></li>';
if(releases_page_number>100) {
} if(releases_page_number>100) {
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number-100)+'"><i>'+(releases_page_number-100)+'</i></a></li>';
} if(releases_page_number>50) {
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number-50)+'"><i>'+(releases_page_number-50)+'</i></a></li>';
} if(releases_page_number>10) {
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number-10)+'"><i>'+(releases_page_number-10)+'</i></a></li>';
}
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number-1)+'">«</a></li>';
for(var i = releases_page_number - 3; i < releases_page_number + 4; i++){
if(i>-1){
if(i==releases_page_number){
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item active"><a data-navigo="" href="/latest-releases/'+i+'">'+i+'</a></li>';
} else {
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+i+'">'+i+'</a></li>';
}
}
}
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number+1)+'">»</a></li>';
if (releases_page_number < 7){
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/10">Tenth</a></li>';
}
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number+10)+'"><i>'+(releases_page_number+10)+'</i></a></li>';
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number+50)+'"><i>'+(releases_page_number+50)+'</i></a></li>';
list_of_pages.innerHTML=list_of_pages.innerHTML + '<li class="item"><a data-navigo="" href="/latest-releases/'+(releases_page_number+100)+'"><i>'+(releases_page_number+100)+'</i></a></li>';
console.log('' + list_of_pages + '\n\n\n');
console.log(list_of_pages.innerHTML);
}
console.log("Sapioit: pagination end");
}, 2*1000); // 2 seconds will elapse and Code will execute.
GM_addStyle('* { -webkit-touch-callout: text !important; -webkit-user-select: text !important; -khtml-user-select: text !important; -moz-user-select: text !important; -ms-user-select: text !important; user-select: text !important; }');
/*GM_addStyle ( `
* {
-moz-user-select: text !important;
user-select: text !important;
-webkit-user-select: text !important;
}
` );*/