// ==UserScript==
// @name Batoto Direct Links
// @namespace https://github.com/ToostInc/userscripts
// @description Adds Direct Links to the online reader
// @include http://www.batoto.net/read/_/*
// @author Joost Bremmer < toost dot b at gmail dot com >
// @copyright 2014, Joost Bremmer
// @license MIT
// @version 2.0
// @date 06-08-2014
// @require http://code.jquery.com/jquery-latest.min.js
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @downloadURL none
// ==/UserScript==
// The MIT License
//
// Copyright (c) 2014 Joost Bremmer
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and
// to permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
$(document).ready (function () {
//Add various tabs
var dlinks = "
\n" +
"\t
Direct Links:
\n" +
"\t \n" +
"
";
var dlinksanchor = "
\n" +
"\t\n" +
"
";
//insert tabs
$("#read_settings").before(dlinks);
$("div.moderation_bar li:last-child").before(dlinksanchor);
//style tabs
GM_addStyle(".dlinks {" +
"background-color: #FFFFFF;" +
"padding-top: 10px;" +
"padding-bottom: 05px;" +
"display: none;" +
"text-align: center;" +
"border-top: 1px solid #CDCDCD;" +
"border-top-right-radius:0px;"+
"border-top-left-radius: 0px;" +
"border-bottom: 1px solid #CDCDCD;"+
"z-index: 999; position: absolute;" +
"width: 100%;"+
"left: 0px;"+
"}"
);
$("#comic_wrap").css("z-index","499")
//get image source
var imgsrc = $("img#comic_page").attr("src");
var imgsrc = imgsrc.split("/");
//get total amount of pages
var pages = $("select#page_select option:last").html();
var pages = pages.replace(/page./g, '');
//insert links into Direct Links div.
var dlmesg = '
\n' +
'\tUse "Right-click > Save As" dialogue,' +
'or a download manager like ' +
'' +
'DownThemAll'+
' ' +
'to save the images.\n' +
'
' +
'
\n' +
'' +
'\tLoading...'+
'\t \n' +
'';
$("#dlinks").append(dlmesg);
//event handler click on 'Direct Links' button.
$("#dlinksanchor").click( function() {
$("#dlinks").slideToggle("slow");
});
$("#page_select:first > option").each(function() {
var nextpage = $(this).attr("value");
//console.log(nextpage);
GM_xmlhttpRequest({
method: "GET",
url: nextpage,
onload: function(response) {
//console.log(response.responseText);
if ( response.responseText.indexOf('id="comic_page"') > 0 ) {
var raw = response.responseText;
var content = //.exec(raw)
//console.log(content);
var imglink = /"http.*(png|jpg)"/.exec(content);
console.log(imglink[0]);
var pagenum = /\d*\.(png|jpg)/.exec(imglink[0]);
console.log(pagenum[0]);
var newpageanchor= '\n' +
"\t" + pagenum[0] + " " +
'';
}
else {
imglink[0] = "image not found!";
var newpageanchor='Uh-oh.something went wrong' +
' ';
}
$("#dlinks").append(newpageanchor);
//sort links
$('#dlinks a[id^="page"]').sort(function (a, b) {
var re = /[^\d]/g;
return ~~a.id.replace(re, '') > ~~b.id.replace(re, '');
})
.appendTo("#dlinks");
}
});
if ( $(this).is(":last-child") ) {
$("#dlloading").remove();
}
});
});