Skip to content

Instantly share code, notes, and snippets.

@NO-ob
Last active February 18, 2021 10:31
Show Gist options
  • Select an option

  • Save NO-ob/5f4608063ac0596037f398257d97ed47 to your computer and use it in GitHub Desktop.

Select an option

Save NO-ob/5f4608063ac0596037f398257d97ed47 to your computer and use it in GitHub Desktop.

Revisions

  1. NO-ob revised this gist Feb 18, 2021. 1 changed file with 8 additions and 3 deletions.
    11 changes: 8 additions & 3 deletions hentaiCafeDL.user.js
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    // ==UserScript==
    // @name Hentai.Cafe DL
    // @namespace http://tampermonkey.net/
    // @version 1.0
    // @version 1.1
    // @description try to take over the world!
    // @author You
    // @match https://hentai.cafe/hc.fyi/*
    @@ -15,6 +15,8 @@
    'use strict';
    let mangaName = document.querySelector("div.x-column.x-sm.x-1-2.last > h3" ).textContent;
    let readerURL = document.querySelector("a.x-btn.x-btn-flat.x-btn-rounded.x-btn-large").href;
    readerURL = readerURL.split("en/0/1/")[0] + "/en/0/1/";
    console.log(readerURL);
    let pageCount;
    let imageURLS = [];
    let failedURLS = [];
    @@ -34,6 +36,7 @@
    onload: (res) => {
    console.log(readerURL + "page/" + 1);
    let page = document.createElement("div");
    console.log(page.responseText);
    page.innerHTML = res.responseText;
    imageURLS[0] = page.querySelector("div.inner > a > img.open").src;
    pageCount = page.querySelectorAll("div.topbar_right > div > ul.dropdown > li").length;
    @@ -43,8 +46,10 @@
    let zip = new JSZip();
    let count = 0;
    for (let i = 1; i <= pageCount ; i++ ){
    if (i < 10){
    imageURLS[i] = baseURL + "0" + i + "." + ext;
    if (pageCount > 100 && i <= 9){
    imageURLS[i] = baseURL + "00" + i + "." + ext;
    } else if ((i < 10)||(pageCount > 100 && i <= 99)){
    imageURLS[i] = baseURL + "0" + i + "." + ext;
    } else {
    imageURLS[i] = baseURL + i + "." + ext;
    }
  2. NO-ob created this gist Jan 8, 2021.
    77 changes: 77 additions & 0 deletions hentaiCafeDL.user.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,77 @@
    // ==UserScript==
    // @name Hentai.Cafe DL
    // @namespace http://tampermonkey.net/
    // @version 1.0
    // @description try to take over the world!
    // @author You
    // @match https://hentai.cafe/hc.fyi/*
    // @require https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.5/jszip.min.js
    // @require https://cdnjs.cloudflare.com/ajax/libs/jszip-utils/0.0.2/jszip-utils.min.js
    // @require https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.js
    // @grant GM_xmlhttpRequest
    // ==/UserScript==

    (function() {
    'use strict';
    let mangaName = document.querySelector("div.x-column.x-sm.x-1-2.last > h3" ).textContent;
    let readerURL = document.querySelector("a.x-btn.x-btn-flat.x-btn-rounded.x-btn-large").href;
    let pageCount;
    let imageURLS = [];
    let failedURLS = [];
    let dlButton = document.createElement("div");
    dlButton.setAttribute("class","x-btn x-btn-flat x-btn-rounded x-btn-large");
    dlButton.setAttribute("id","dlButton");
    dlButton.innerHTML = "Download";
    document.querySelector("div.x-column.x-sm.x-1-2.last > p").appendChild(dlButton);
    document.getElementById("dlButton").addEventListener("click", getImages);


    function getImages(){
    GM_xmlhttpRequest ( {
    method: "GET",
    url: readerURL + "page/" + 1,
    responseType: "html",
    onload: (res) => {
    console.log(readerURL + "page/" + 1);
    let page = document.createElement("div");
    page.innerHTML = res.responseText;
    imageURLS[0] = page.querySelector("div.inner > a > img.open").src;
    pageCount = page.querySelectorAll("div.topbar_right > div > ul.dropdown > li").length;
    console.log(imageURLS[0]);
    let baseURL = imageURLS[0].slice(0,imageURLS[0].lastIndexOf("/")+1);
    let ext = imageURLS[0].slice(imageURLS[0].lastIndexOf(".")+1);
    let zip = new JSZip();
    let count = 0;
    for (let i = 1; i <= pageCount ; i++ ){
    if (i < 10){
    imageURLS[i] = baseURL + "0" + i + "." + ext;
    } else {
    imageURLS[i] = baseURL + i + "." + ext;
    }
    GM_xmlhttpRequest ( {
    method: "GET",
    url: imageURLS[i],
    responseType: "arraybuffer",
    onload: (res) => {
    zip.file(i + "." + ext, res.response, { binary: true });
    count++;
    console.log(imageURLS[i] + " Snatched");
    if (count == pageCount){
    zip.generateAsync({ type: 'blob' }).then(function(content) {
    saveAs(content, mangaName + ".cbz");
    });
    }
    }
    });
    }


    }
    });

    }

    })();