您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Simple script using the official Tinder API to get clean photos of the users who liked you
// ==UserScript== // @name Tinder Deblur // @namespace Violentmonkey Scripts // @match https://tinder.com/* // @grant none // @version 2.6 // @author Tajnymag // @description Simple script using the official Tinder API to get clean photos of the users who liked you // ==/UserScript== /** * Core logic of the script */ async function unblur() { const teasers = await fetch('https://api.gotinder.com/v2/fast-match/teasers', { headers: { 'X-Auth-Token': localStorage.getItem('TinderWeb/APIToken'), platform: 'android' }, }) .then((res) => res.json()) .then((res) => res.data.results); const teaserEls = document.querySelectorAll('.Expand.enterAnimationContainer > div:nth-child(1)'); for (let i = 0; i < teaserEls.length; ++i) { const teaser = teasers[i]; const teaserEl = teaserEls[i]; const teaserImage = `https://preview.gotinder.com/${teaser.user._id}/original_${teaser.user.photos[0].id}.jpeg`; teaserEl.style.backgroundImage = `url(${teaserImage})`; } } /** * Awaits the first event of the specified listener * @param {EventTarget} target * @param {string} eventType * @returns {Promise<void>} */ async function once(target, eventType) { return new Promise((resolve) => { target.addEventListener(eventType, () => { target.removeEventListener(eventType, resolve); resolve(); }); }); } /** * Awaits until the main app element is found in DOM and returns it * @returns {Promise<HTMLElement>} */ async function waitForApp() { const getAppEl = (parent) => parent.querySelector('.App'); let appEl = getAppEl(document.body); if (appEl) return appEl; return new Promise((resolve) => { new MutationObserver((_, me) => { appEl = getAppEl(document.body); if (appEl) { me.disconnect(); resolve(appEl); } }).observe(document.body, { subtree: true, childList: true }); }); } async function main() { // check if running as a userscript if (typeof GM_info === 'undefined') { console.warn( '[TINDER DEBLUR]: The only supported way of running this script is through a userscript management browser addons like Violentmonkey, Tampermonkey or Greasemonkey!' ); console.warn( '[TINDER DEBLUR]: Script was not terminated, but you should really look into the correct way of running it.' ); } // wait for a full page load await once(window, 'load'); const appEl = await waitForApp(); const pageCheckCallback = () => { if (['/app/likes-you', '/app/gold-home'].includes(location.pathname)) { console.debug('[TINDER DEBLUR]: Deblurring likes'); unblur(); } }; // setup navigation observer const observer = new MutationObserver(pageCheckCallback); observer.observe(appEl, { subtree: true, childList: true }); // setup loop based observer (every 5s) setInterval(pageCheckCallback, 5000); } main().catch(console.error);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址