您需要先安装一个扩展,例如 篡改猴、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();
- }
- });
- });
- })();