您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This is Instucky User Script for addon functionality
// ==UserScript== // @name instuky.com // @namespace Instucky addon Script - GetDopamin // @match https://instuky.com/* // @grant none // @version 1.0 // @author GetDopamin // @require https://cdn.jsdelivr.net/npm/@violentmonkey/dom@2 // @require https://cdn.jsdelivr.net/npm/@violentmonkey/shortcut@1 // @description This is Instucky User Script for addon functionality // @license MIT // ==/UserScript== /* ------------- SYTLE INJECT ------------- */ const customStyle = ` .custom-btn { background-color: #fa865f; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; float: center; margin-top: 8px; } .custom-btn:hover { background-color: #EF6131; } .alert-box{ padding: 12px 18px; background-color: #fa865f; border-radius: 8px; border: 3px solid #000; position: fixed; top:10px; right: 10px; z-index:9999; text-align: center; } .single-post__video{ background-color: #000; } `; const style = document.createElement("style"); style.textContent = customStyle; document.head.appendChild(style); /* ------------- DOWNLOAD & ALERT FUN ------------- */ async function download(url) { return new Promise((resolve, reject) => { fetch(url) .then((response) => { if (!response.ok) { throw new Error("Network response was not ok"); } alert("Download Starting...", 5000); return response.blob(); }) .then((blob) => { const tempUrl = URL.createObjectURL(blob); const aTag = document.createElement("a"); aTag.href = tempUrl; aTag.download = url.substring(url.lastIndexOf("/") + 1); document.body.appendChild(aTag); aTag.click(); URL.revokeObjectURL(tempUrl); aTag.remove(); resolve(); }) .catch((error) => { reject(error); }); }); } const alert = (message, time)=>{ const alertDiv = document.createElement("Div"); alertDiv.classList.add("alert-box"); alertDiv.textContent = message; document.body.appendChild(alertDiv); setTimeout(()=>{ document.body.removeChild(alertDiv); }, time); } /* ------------- DOWNLOAD & VIDEO INJECT ------------- */ document.querySelectorAll("a.item-post__download").forEach((dbtn)=>{ dbtn.addEventListener("click", (e)=>{ let targetUrl = dbtn.href e.preventDefault(); download(targetUrl); }) }); if (window.location.pathname.includes("/post/")) { const videoWrapper = document.querySelector(".single-post__video"); const videoLink = videoWrapper.querySelector(".video-post__link"); const imgLink = videoLink.querySelector("img"); const video_ = document.createElement("video"); video_.controls = true; video_.loop = true; video_.setAttribute("style","width:100%; height:70vh;") video_.crossorigin = "anonymous"; const videoSrc_ = document.createElement("source"); videoSrc_.src = videoLink.href; videoSrc_.type = "video/mp4"; videoSrc_.crossorigin = "anonymous"; video_.appendChild(videoSrc_); videoWrapper.innerHTML = ""; videoWrapper.appendChild(video_); } /* ------------- Popular ------------- */ const injectPopular = () => { const trending = document.querySelector(".trending .container .trending__list"); const users = [ "lohomord", "meetsanika", "zendaya", "raynavallandingham" ]; if(trending){ trending.innerHTML = ''; } for (let i = 0; i < users.length; i++) { const lisEle = document.createElement("li"); lisEle.classList.add("trending__item", "item-trending"); const lisLink = document.createElement("a"); lisLink.classList.add("item-trending__link"); lisLink.setAttribute("href", `/profile/${users[i]}`); lisLink.setAttribute("title", `@${users[i]}`); const lisLinkSpan = document.createElement("span"); lisLinkSpan.textContent = `@${users[i]}`; lisLinkSpan.classList.add("item-trending__title", "text_bold"); lisLink.appendChild(lisLinkSpan); lisEle.appendChild(lisLink); if(trending){ trending.appendChild(lisEle); } } } injectPopular(); /* ------------- Other ------------- */ const observeElement = (callback, options) => { const observer = new IntersectionObserver(([entry]) => { if (entry.isIntersecting) { // observer.disconnect(); callback(); } }, options); observer.observe(document.querySelector(".more-posts__button")); }; const infniteScroll = () => { const showMoreBtn = document.querySelector(".more-posts__button"); if (!showMoreBtn) { console.error("No element with class 'more-posts__button' found"); return; } showMoreBtn.style.visibility = "hidden"; const observerOptions = { root: null, rootMargin: "0px", threshold: 1.0, }; observeElement(() => { showMoreBtn.click(); }, observerOptions); }; infniteScroll(); const goToTop = () => { const button = document.createElement('button'); button.innerHTML = 'Go to top'; button.style.position = 'fixed'; button.style.bottom = '0'; button.style.right = '0'; button.style.zIndex = '1000'; button.style.border = '4px solid rgba(0, 0, 0, 0.7)'; button.style.background = '#fa865f'; button.style.color = 'white'; button.style.margin = '10px'; button.style.padding = '10px 20px'; button.style.fontSize = '16px'; button.style.cursor = 'pointer'; button.style.borderRadius = '14px'; document.body.appendChild(button); const observe = new IntersectionObserver(([entry]) => { if (entry.isIntersecting) { button.style.display = 'none'; } else { button.style.display = 'block'; } }) observe.observe(document.body); button.addEventListener('mouseenter',() => { button.style.backgroundColor = '#FB6B3B'; }); button.addEventListener('mouseleave',() => { button.style.backgroundColor = '#fa865f'; }); button.addEventListener('click', () => { window.scrollTo({ top: 0, behavior: 'smooth' }); }) } goToTop();