// ==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.1.2 // @date 18-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 = ""; 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"); //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\tPage " + parseInt(/\d*/.exec(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(); } }); });