// ==UserScript== // @name Mananelo/Mangakakalot Bookmarks Export // @namespace http://smoondev.com/ // @version 1.037 // @description Writes Mangakakalot or Manganelo Bookmarks (name and visited number) to "manga_bookmarks.txt" on "Export Bookmarks" button click // @author Shawn Moon // @include https://mangakakalot.com/bookmark* // @include https://manganelo.com/bookmark* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js // @grant GM_addStyle // @downloadURL none // ==/UserScript== GM_addStyle (` #export_container { color: #000; cursor: pointer; float: right; margin-right: 10px; } #export_button:hover { background-color: #b6e4e3; color: #000; cursor: pointer; } #export_button { padding: 4px 8px; border-radius: 5px; text-decoration: none; color: #fff; background-color: #76cdcb; border: none; font-weight: 600; } #temp_data { position: absolute; top: -9999px; left: -9999px; } `); (function() { 'use strict'; let pageI, bmTag, bmTitle, lastViewed, btnContainer if($('.bookmark-item').length > 0) { // manganelo pageI = '.group-page a' bmTag = '.bookmark-item' bmTitle = '.item-story-name' lastViewed = '.item-title a' btnContainer = '.panel-breadcrumb' } else { // mangakakalot pageI = '.group_page a' bmTag = '.bookmark_item' bmTitle = '.bookmark_title' lastViewed = '.bookmark_chap a' btnContainer = '.breadcrumbs p' } let domain = window.location.hostname let pageCount = parseInt($(`${pageI}`).last().text().replace(/\D+/g, '')) const deleteTemp = () => { // delete temp container $('#temp_data').remove() } const saveFile = saveData => { // save file const fileData = new Blob([saveData], {type:"application/octet-stream"}) saveAs(fileData, "manga_bookmarks.txt") } const getBookmarks = () => { // main function generate file deleteTemp() $('body').append("
") let pageSuccess = 0; let bookmarkedTitles = `===========================\n${domain} Bookmarks\n===========================\n` for(var i = 0; i < pageCount; i++) { $("#temp_data").append(`
`) $(`#page${i+1}`).load(`https://${domain}/bookmark?page=${i+1} ${bmTag}`, (resp,status,xhr) => { if(status == "success") { pageSuccess++ } if(pageSuccess == pageCount) { let bmItem = $(`#temp_data ${bmTag}`) for(var j = 0; j < bmItem.length; j++) { if($(bmItem[j]).find(`${bmTitle}`).text()) { let last_viewed = $(bmItem[j]).find(`${lastViewed}`), bookmarked_title = $(bmItem[j]).find(`${bmTitle}`); if(bookmarked_title.length > 0) { bookmarkedTitles += $(bmItem[j]).find(`${bmTitle}`).text() + ` || Viewed: ${last_viewed.length > 0 ? last_viewed[0].text : 'Not Found' } \n` } } } saveFile(bookmarkedTitles) deleteTemp() } }) } } $(`${btnContainer}`).append("
") $(document).on('click', '#export_button', function() { getBookmarks() }) })();