您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A new UI layout for Baka Tsuki
// ==UserScript== // @name Baka Tsuki New UI // @version 1.0.0 // @namespace https://sharadcodes.github.io // @author sharadcodes // @license MIT // @description A new UI layout for Baka Tsuki // @supportURL https://github.com/sharadcodes/UserScripts/issues // @match https://www.baka-tsuki.org/custom/grid // ==/UserScript== let number = 0; const comparator = (a, b) => { if (a.dataset.title < b.dataset.title) return -1; if (a.dataset.title > b.dataset.title) return 1; return 0; } const sortData = () => { var titles = document.querySelectorAll("[data-title]"); var titlesArray = Array.from(titles); let sorted = titlesArray.sort(comparator); sorted.forEach(e => document.querySelector("#main").appendChild(e)); } const generateGrid = (entry) => { const article = document.createElement('article'); article.setAttribute('data-title', entry.title.toLowerCase()); article.innerHTML = `<div class='series-cover' style='background-image: url(${entry.image});'></div> <div class='series-title-container'> <h4><a href='${entry.href}' target='_blank'>${entry.title}</a></h4> </div>`; document.querySelector('#main').appendChild(article); }; const tryAndGetImageFromPage = async (url) => { try { const res = await fetch(url); const html = await res.text(); const tmp = document.createElement('html'); tmp.innerHTML = html; let images = []; images = tmp.querySelectorAll('#mw-content-text img'); for(const i of images) { if (i.width > 100) { return i.src; } } return null; } catch (err) { return err; } }; const getDataForPage = async (url) => { try { const res = await fetch(url); const html = await res.text(); const tmp = document.createElement('html'); tmp.innerHTML = html; const anchors = tmp.querySelectorAll("#mw-pages > div > div > div > ul > li > a") anchors.forEach((anchor) => { let images = [] const href = anchor.href; const title = decodeURIComponent(anchor.href.split('title=')[1].replaceAll('_',' ')); if (images.length === 0 || !images) { tryAndGetImageFromPage(href).then((pimg) => { if (pimg !== null) { generateGrid({ title, href, image: pimg }); } else { generateGrid({ title, href, image: '' }); } sortData(); }); } }); } catch (err) { // eslint-disable-next-line no-alert alert(err); } }; const loadPage = async () => { getDataForPage('https://www.baka-tsuki.org/project/index.php?title=Category:Light_novel_(English)'); }; window.onload = () => { document.querySelector('html').innerHTML = '<body><main id="main"/></main></body>'; fetch('https://sharadcodes.github.io/UserScripts/www.justlightnovels.com/JLN_grid.css' + '?time=' + Date.now()) .then(res=>res.text()) .then(text => { const style = document.createElement('style'); style.textContent = text; document.head.appendChild(style); loadPage(); }) };