Greasy Fork is available in English.
Writes Mangakakalot or Manganelo Bookmarks (name and visited number) to "manga_bookmarks.txt" on "Export Bookmarks" button click
当前为
// ==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
// ==/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("<div id='temp_data'>")
let pageSuccess = 0;
let bookmarkedTitles = `===========================\n${domain} Bookmarks\n===========================\n`
for(var i = 0; i < pageCount; i++) {
$("#temp_data").append(`<div id='page${i+1}'>`)
$(`#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("<div id='export_container'><button id='export_button'>Export Bookmarks</button></div>")
$(document).on('click', '#export_button', function() {
getBookmarks()
})
})();