HTML introduction

Display HTML from luogu paste

目前為 2024-04-14 提交的版本,檢視 最新版本

// ==UserScript==
// @name         HTML introduction
// @namespace    http://tampermonkey.net/
// @version      v1.0.1
// @description  Display HTML from luogu paste
// @author       limesarine
// @match        https://luogu.com/user/*
// @match        https://luogu.com.cn/user/*
// @match        https://*.luogu.com/user/*
// @match        https://*.luogu.com.cn/user/*
// @license      © 2024 Limesarine. All rights reserved.
// @icon         https://www.google.com/s2/favicons?sz=64&domain=luogu.com.cn
// @grant        none
// ==/UserScript==

function deal(id) {
	fetch('/paste/'+id+'?_contentOnly').then(d=>d.text()).then(t=>{
		let data=JSON.parse(t).currentData.paste.data;
		let e=document.getElementsByClassName('introduction marked')[0];
		e.innerHTML=e.innerHTML.replaceAll('LS.PASTE.'+id,data);
	});
}
function deal_float(id) {
	fetch('/paste/'+id+'?_contentOnly').then(d=>d.text()).then(t=>{
		let data=JSON.parse(t).currentData.paste.data;
		let e=document.getElementsByClassName('introduction marked')[0];
		data=`<div style=" position: fixed; left: 50%; transform: translateX(-50%); text-align: center; bottom: 0; background-color: rgba(0,0,0,0);">${data}</div>`;
		e.innerHTML=e.innerHTML.replaceAll('LS.FLOAT.PASTE.'+id,data);
	});
}
function dd() {
	let matches=document.getElementsByClassName('introduction marked')[0].innerHTML.match(/LS\.PASTE\.(........)/g);
	if(matches)
	{
		for(let i=0;i<matches.length;i++)
		{
			let x=matches[i];
			if(x.startsWith('LS.PASTE.') && x.slice(9).length==8)
			{
				console.log(x.slice(9));
				deal(x.slice(9));
			}
		}
	}
	matches=document.getElementsByClassName('introduction marked')[0].innerHTML.match(/LS\.FLOAT\.PASTE\.(........)/g);
	if(matches)
	{
		for(let i=0;i<matches.length;i++)
		{
			let x=matches[i];
			if(x.startsWith('LS.FLOAT.PASTE.') && x.slice(15).length==8)
			{
				console.log(x.slice(15));
				deal_float(x.slice(15));
			}
		}
	}
	return;
}
(function(){
    'use strict';
    const observer=new MutationObserver(()=>{
        const introduction=document.getElementsByClassName("introduction marked")[0];
        if(introduction)
        {
            dd();
        }
    });
    observer.observe(document.documentElement,{childList:true,subtree:true});
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。