您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Embed bluesky posts on the blue websight
// ==UserScript== // @name Bluesky embed // @namespace http://tampermonkey.net/ // @version 2024-11-19 // @description Embed bluesky posts on the blue websight // @author Milan // @match https://*.websight.blue/thread/* // @license MIT // @icon https://lore.capital/static/blueshi.png // @connect embed.bsky.app // @grant GM_xmlhttpRequest // ==/UserScript== const EMBED_URL = 'https://embed.bsky.app'; function scan(node) { if (node === void 0) { node = document; } const embeds = node.querySelectorAll('[data-bluesky-uri]'); for (let i = 0; i < embeds.length; i++) { const id = String(Math.random()).slice(2); const embed = embeds[i]; const aturi = embed.getAttribute('data-bluesky-uri'); if (!aturi) { continue; } const ref_url = location.origin + location.pathname; const searchParams = new URLSearchParams(); searchParams.set('id', id); if (ref_url.startsWith('http')) { searchParams.set('ref_url', encodeURIComponent(ref_url)); } const iframe = document.createElement('iframe'); iframe.setAttribute('data-bluesky-id', id); iframe.src = "".concat(EMBED_URL, "/embed/").concat(aturi.slice('at://'.length), "?").concat(searchParams.toString()); iframe.width = '100%'; iframe.style.border = 'none'; iframe.style.display = 'block'; iframe.style.flexGrow = '1'; iframe.frameBorder = '0'; iframe.scrolling = 'no'; const container = document.createElement('div'); container.style.maxWidth = '600px'; container.style.width = '100%'; container.style.marginTop = '10px'; container.style.marginBottom = '10px'; container.style.display = 'flex'; container.className = 'bluesky-embed'; container.appendChild(iframe); embed.replaceWith(container); } } (function() { 'use strict'; window.bluesky = window.bluesky || { scan: scan, }; window.addEventListener('message', function (event) { if (event.origin !== EMBED_URL) { return; } var id = event.data.id; if (!id) { return; } var embed = document.querySelector("[data-bluesky-id=\"".concat(id, "\"]")); if (!embed) { return; } var height = event.data.height; if (height) { embed.style.height = "".concat(height, "px"); } }); const node_list = document.querySelectorAll(".message a[href^='https:\/\/bsky']"); Array.from(node_list).forEach(link => { const oembed_url = "https://embed.bsky.app/oembed?mode=dark&url="; GM_xmlhttpRequest({ method: "GET", url: oembed_url + link.href, headers: { "Content-Type": "application/json" }, onload: function(response) { const embed = JSON.parse(response.responseText).html; link.parentElement.innerHTML += embed; scan(); } }); }); })();