您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
给 poipiku 作品和用户添加备注,支持分组。
当前为
// ==UserScript== // @name Poipiku Remark // @namespace http://greasyfork.icu/zh-CN/users/8659-fc4soda // @version 20210325 // @description 给 poipiku 作品和用户添加备注,支持分组。 // @author fc4soda // @match https://poipiku.com/* // @grant GM_info // @grant GM.info // @grant GM.getValue // @grant GM.setValue // @grant GM.deleteValue // @grant GM.listValues // @grant GM.openInTab // ==/UserScript== // TODO 手机上用户页没显示编辑框 // TODO: 自动填写密码 /* jshint esversion: 6 */ const addonName = '8659-pr-'; const ICON = {}; const PAGE_TYPE = { 'USER1': 'USER1', // https://poipiku.com/928521/ 'WORK1': 'WORK1', // https://poipiku.com/IllustViewPcV.jsp?ID=928521&TD=3996609 'WORK2': 'WORK2', // https://poipiku.com/928521/2382608.html }; // id:用户id td:作品id var itemClass = '.script-link', listClass='.script-list', editboxClass= addonName + 'editbox'; var workItemClass = 'IllustThumbImg', idSelector = 'data-'+addonName+'id', tdSelector = 'data-'+addonName+'td', workItemClass2='IllustItemThumb'; (function() { 'use strict'; 'use esversion: 6'; // 判断不同页面使用不同选择器 var url = window.location.href; var pageType = checkPage(url); switch(pageType) { case PAGE_TYPE.USER1: userPageFunc(); break; case PAGE_TYPE.WORK1: case PAGE_TYPE.WORK2: var regex = /(\d+)/g; var idtd = url.match(regex); var id = idtd[0], td = idtd[1]; workPageFunc(id, td); break; default: } })(); function workPageFunc(id, td){ var work = document.getElementsByClassName(workItemClass2); for(let item of work){ var oldVal = GM.getValue(addonName+id+'-'+td); oldVal.then((val) => { if(val != null){ console.log("getVal",val); var editbox = newEditbox(id, td); editbox.value = val; editbox.addEventListener("change", storeVal); item.parentElement.insertBefore(editbox, item.nextSibling); } }); } } function userPageFunc(){ var elements = document.getElementsByClassName(workItemClass); for(let item of elements){ var href = item.href; if (href == null){ continue; } let regex = /(\d+)/g; let idtd = href.match(regex); var oldVal = GM.getValue(addonName+idtd[0]+'-'+idtd[1]); oldVal.then((val) => { if(val != null){ console.log("getVal",val); var editbox = newEditbox(idtd[0], idtd[1]); editbox.value = val; editbox.addEventListener("change", storeVal); item.parentElement.insertBefore(editbox, item.nextSibling); } }); } } function newEditbox(id, td){ let editbox = document.createElement("textarea"); editbox.class = editboxClass; editbox.setAttribute(idSelector, id); editbox.setAttribute(tdSelector, td); return editbox } function storeVal(event){ var element = event.target; if(element.class == editboxClass){ var id = element.getAttribute(idSelector); var td = element.getAttribute(tdSelector); var val = element.value; console.log('set', id+'-'+td, val); if (val!=null){ GM.setValue(addonName+id+'-'+td, val); } } //console.log("change", element); } // USER1 https://poipiku.com/928521/ // WORK1 https://poipiku.com/IllustViewPcV.jsp?ID=928521&TD=3996609 // WORK2 https://poipiku.com/928521/2382608.html function checkPage(url){ // TODO 修改WORK1的匹配方式 // TODO 取id td并返回 var arr = url.split('?'); if(arr.length==2){ return PAGE_TYPE.WORK1; } var regex = /poipiku\.com\/\d+\/\d+\.html/; if(regex.test(url)){ return PAGE_TYPE.WORK2; } return PAGE_TYPE.USER1; }