Skip to content

Instantly share code, notes, and snippets.

@Tyhjakuori
Last active December 16, 2023 19:14
Show Gist options
  • Save Tyhjakuori/0ae422f7095115655bf3064efe788e03 to your computer and use it in GitHub Desktop.
Save Tyhjakuori/0ae422f7095115655bf3064efe788e03 to your computer and use it in GitHub Desktop.
Restore fanbox icon
// ==UserScript==
// @name Restore fanbox icon
// @version 1
// @description Restores fanbox icon and link to old position
// @author Tyhjakuori
// @grant none
// @match *://www.pixiv.net/en/users/*
// @match *://www.pixiv.net/users/*
// @require https://code.jquery.com/jquery-1.8.3.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @updateURL https://gist.github.com/Tyhjakuori/0ae422f7095115655bf3064efe788e03/raw
// ==/UserScript==
const iconsClass = ".vvDu89yih2YF19XQ";
const descriptionClass = ".sc-18rmjy7-3";
const parentClass = "oldFanbox";
const parentClass2 = "oldFanbox2";
waitForKeyElements(iconsClass, addIcon);
function addIcon() {
let desc = document.querySelector(descriptionClass).innerText;
if (desc.includes("fanbox.cc")) {
//console.log("Found fanbox.cc");
let regexFan = /(https|http):\/\/[a-zA-Z0-9-]+\.fanbox\.cc/g;
let fanboxLink = desc.match(regexFan);
//console.log(`Fanbox link ${fanboxLink}`);
let iconCla = document.querySelector(iconsClass);
let newLi = document.createElement("li");
newLi.classList.add(parentClass);
iconCla.appendChild(newLi);
let parentDiv = document.createElement("a");
parentDiv.classList.add(parentClass2);
parentDiv.setAttribute("href", fanboxLink);
parentDiv.setAttribute("target", "_blank");
parentDiv.setAttribute("rel", "noopener referer");
document.querySelector(".oldFanbox").appendChild(parentDiv);
let fanboxImg = document.createElementNS(
"http://www.w3.org/2000/svg",
"svg",
);
fanboxImg.classList.add("fanboxSVG");
fanboxImg.setAttribute("width", "32");
fanboxImg.setAttribute("height", "32");
fanboxImg.setAttribute("version", "1.1");
fanboxImg.setAttribute("viewBox", "0 0 32 32");
fanboxImg.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
document.querySelector(".oldFanbox2").appendChild(fanboxImg);
let actualImg = document.createElementNS(
"http://www.w3.org/2000/svg",
"image",
);
actualImg.setAttribute("width", "32");
actualImg.setAttribute("height", "32");
actualImg.setAttribute("preserveAspectRatio", "none");
actualImg.setAttributeNS(
"http://www.w3.org/1999/xlink",
"xlink:href",
"data:image/png;base64,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",
);
document.querySelector(".fanboxSVG").appendChild(actualImg);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment