// ==UserScript== // @name yande.re mobile adaptation // @namespace http://tampermonkey.net/ // @version 0.0.4 // @description Mobile adaptation for yande.re | yande.re 移动端适配 // @author Exisi // @license MIT License // @supportURL https://exi.software // @match *://yande.re/post/show/* // @match *://yande.re/post/similar/* // @downloadURL none // ==/UserScript== (function () { "use strict"; const styles = { header: `* { font-size: 100%; } #news-ticker { display: flex; align-items: center; } #news-ticker li { font-size: 35px; word-break: break-all; } #news-ticker .close-link { font-size: 35px; } #header #title { display: flex; justify-content: center; height: 85px !important; } #header #main-menu { font-size: 35px; } #header #main-menu ul { margin: 0; }`, postShow: `.sidebar h5 { font-size: 35px; } #content { margin: 0; } .status-notice, .js-posts-show-edit-tab, .js-posts-show-comments-tab, h4:has(.js-posts-show-edit-tab), .tag-completion-box .color-tag-types, .sidebar form #tags, .sidebar #tag-sidebar, .sidebar ul { font-size: 34px !important; margin-right: 0 !important; margin-left: 0 !important; } .sidebar form #tags { width: -webkit-fill-available; } #comments { max-width: 100% !important; } .sidebar, #right-col, #comments textarea { width: 100% !important; } #comments input[type="submit"] { margin-top: 15px; font-size: 34px; border: 1px solid #ffffff; border-radius: 5px; padding: 10px 20px; box-sizing: border-box; } #comments input[type="submit"]:hover{ background-color: #ffaaae; border-color: #ffaaae; }`, postSimilar: `#content { margin: 0; } .sidebar h5 { font-size: 35px; } .sidebar, .content { width: 100% !important; } .sidebar form #tags { width: -webkit-fill-available; } .sidebar select#mode, .tag-completion-box .color-tag-types, .sidebar form #tags, .sidebar #tag-sidebar, .sidebar ul, .sidebar #blacklisted-tag-add { font-size: 34px !important; margin-right: 0 !important; margin-left: 0 !important; } .sidebar select#mode { width: 50% !important; height: 40px; } .sidebar #blacklisted-sidebar h5 a.no-focus-outline { color: #ffffff; } #similar-form table.form { font-size: 30px !important; width: 100%; } #similar-form table.form input#url { width: 100% !important; } #similar-form table.form input[type="submit"], #blacklisted-tag-add a.text-button { margin-top: 15px; font-size: 30px; border: 1px solid #ffffff; border-radius: 5px; padding: 5px 15px; box-sizing: border-box; } #similar-form table.form input[type="submit"]:hover { background-color: #ffaaae; border-color: #ffaaae; } #post-list-posts { display: grid !important; grid-template-columns: 1fr 1fr; gap: 25px; margin-bottom: 30px; } #post-list-posts li, #post-list-posts li .inner { width: 100% !important; } #post-list-posts li .inner, #post-list-posts li .inner a img.preview { width: 100% !important; height: 100% !important; }`, footer: `div.footer, form select[name="locale"], form:has(select[name="locale"]) button[type="submit"] { font-size: 34px !important; margin-right: 0 !important; margin-left: 0 !important; } form:has(select[name="locale"]) button[type="submit"] { font-size: 34px; border: 1px solid #ffffff; border-radius: 5px; box-sizing: border-box; } form:has(select[name="locale"]) button[type="submit"]:hover { background-color: #ffaaae; border-color: #ffaaae; } form:has(select[name="locale"]) { display: flex; justify-content: center; gap: 5px; margin: 20px 0; }`, }; const styleElement = document.createElement("style"); styleElement.innerHTML = `${styles.header} ${styles.footer}`; const match = { isPostShow: location.href.includes("post/show"), isPostSimilar: location.href.includes("post/similar"), }; const content = document.querySelector(".content"); if (match.isPostShow) { styleElement.innerHTML += styles.postShow; const quickBtnBar = document.createElement("div"); Object.assign(quickBtnBar.style, { display: "flex", flexDirection: "row", justifyContent: "center", gap: "10px", cursor: "default", }); const features = { addToFavorites: { target: [document.querySelector("#add-to-favs a"), document.querySelector("#remove-from-favs a")], icon: [ ``, ``, ], }, viewOrigin: { target: [document.querySelector("ul a.original-file-changed.highres-show")], icon: [ ``, ], }, download: { target: [document.querySelector("ul a.original-file-changed")], icon: [ ``, ], }, FindDupes: { target: [document.querySelector("ul a#find-dupes")], icon: [ ``, ], }, findSimilar: { target: [document.querySelector("ul a#find-similar")], icon: [ ``, ], }, }; Object.keys(features).forEach((feature) => { const quickBtn = document.createElement("div"); Object.assign(quickBtn.style, { padding: "15px", borderRadius: "50%", border: "none", cursor: "pointer", display: "flex", alignItems: "center", justifyContent: "center", }); let icon = features[feature].icon[0]; let target = features[feature].target[0]; if (feature == "addToFavorites" && features[feature].target[0].parentNode.style.display == "none") { icon = features[feature].icon[1]; target = features[feature].target[1]; } quickBtn.innerHTML = icon; const iconElement = quickBtn.querySelector("svg"); Object.assign(iconElement.style, { width: "50px", height: "50px", color: "#ffaaae", }); quickBtnBar.appendChild(quickBtn); const [addToFavorites, removeFavorite] = features[feature].target; quickBtn.addEventListener("click", () => { if (feature !== "addToFavorites") { features[feature].target[0].click(); return; } const [dislikeIcon, likeIcon] = features[feature].icon; if (addToFavorites.parentNode.style.display == "none") { removeFavorite.click(); quickBtn.innerHTML = dislikeIcon; const iconElement = quickBtn.querySelector("svg"); Object.assign(iconElement.style, { width: "50px", height: "50px", color: "#ffaaae", }); return; } addToFavorites.click(); quickBtn.innerHTML = likeIcon; const iconElement = quickBtn.querySelector("svg"); Object.assign(iconElement.style, { width: "50px", height: "50px", color: "#ffaaae", }); }); if (feature === "addToFavorites") { addToFavorites.addEventListener("click", () => quickBtn.click()); removeFavorite.addEventListener("click", () => quickBtn.click()); } }); content.appendChild(quickBtnBar); const sidebar = document.querySelector(".sidebar"); content.appendChild(sidebar); } if (match.isPostSimilar) { styleElement.innerHTML += styles.postSimilar; const sidebar = document.querySelector(".sidebar"); content.firstChild.before(sidebar); const blockListBox = document.querySelector("#blacklisted-list-box"); const blockListUl = document.createElement("ul"); blockListUl.innerHTML = "Show All Posts"; blockListUl.style.color = "#ffaaae"; blockListUl.style.marginTop = "5px"; blockListUl.addEventListener("click", () => { const blockList = document.querySelectorAll(".blacklisted-tags a.no-focus-outline"); blockList.forEach((link) => link.click()); blockListUl.innerHTML = blockListUl.innerHTML === "Show All Posts" ? "Hide block Posts" : "Show All Posts"; }); blockListBox.after(blockListUl); } document.head.appendChild(styleElement); })();