您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds waifus from Danbooru to Learning Management Systems. Works by default on Tec de Monterrey Links and Google Classroom's, but can be easily tweaked to allow for other websites! Images have permanence. Click an image to delete it and reload to get a new one.
// ==UserScript== // @name Add Waifus to LMS // @namespace Violentmonkey Scripts // @match https://experiencia21.tec.mx/courses/*/modules // @match https://experiencia21.tec.mx/courses/*/assignments // @match https://experiencia21.tec.mx/courses/*/assignments/* // @match https://classroom.google.com/u/* // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @require https://code.jquery.com/jquery-3.6.0.min.js // @grant none // @version 1.0 // @author Mauville @ Github // @description Adds waifus from Danbooru to Learning Management Systems. Works by default on Tec de Monterrey Links and Google Classroom's, but can be easily tweaked to allow for other websites! Images have permanence. Click an image to delete it and reload to get a new one. // ==/UserScript== // Purges image from DB. Hides it let purgeImg = () => { GM_deleteValue(hashCode(document.URL)) $("#waifu").hide() } // Injects image into DOM. Gives it listener let injectImg = (htmlimg) => { // Finds application element. Change this to reflect other $("body").append(htmlimg) $("#waifu").css({ 'z-index': '9999', 'position': 'fixed', 'right': '9em', 'bottom': '0', 'max-height': '40%' }); $("#waifu").on("click", purgeImg) } // Common hashCode function to convert URL into serial function hashCode(source) { let hash = 0; if (source.length == 0) { return hash; } for (var i = 0; i < source.length; i++) { var char = source.charCodeAt(i); hash = ((hash << 5) - hash) + char; hash = hash & hash; // Convert to 32bit integer } return hash; } let img = "NULL IMAGE" let page = Math.floor(Math.random() * 850) let memoised = GM_getValue(hashCode(document.URL), false) if (false == memoised) { // get images from danbooru. Tags are HD, transparent and SFW $.getJSON("https://danbooru.donmai.us/posts.json?tags=transparent_background+highres+rating:s&page=" + page, function(data) { //sort images by filesize and choose random from bottom 3 data.sort((a, b) => parseFloat(a.file_size) - parseFloat(b.file_size)); let newurl = data[Math.floor(Math.random() * 3)].file_url; img = '<img id=waifu src="' + newurl + '">' //memoise for next time GM_setValue(hashCode(document.URL), newurl) injectImg(img) }); } else { img = '<img id=waifu src="' + memoised + '">' injectImg(img) }