跳到主内容
paste
bin
.ca
type · paste · share
⌘
K
系列
bin 系列
pastebin.ca
中心
Share text and code with expiry and privacy controls.
imagebin.ca
Upload and share images with direct links.
filebin.ca
Drop a file and get a shareable link.
notebin.ca
Write Markdown notes with durable links.
turl.ca
Short, reputation-checked links.
attn.ca
Notifications and alerts for your services.
voicebin.ca
Record and share short voice clips.
dnsbin.ca
Inspect DNS and debug records.
文档
登录
?
← 返回文本
›
编辑 / 分支
无标题文本
#5DUMKmdLhG
public / public
新版本
匿名
已创建 6 days ago
过期于 1 day
3.9 KB
语法:
text
你的更改会创建一个链接到此文本的新文本 — 原始文本不变。
新版本
你的更改会创建一个链接到此文本的新文本 — 原始文本不变。
标题(可选)
文件名
语法
text
text
bash
c
cpp
css
diff
dockerfile
go
html
ini
java
javascript
json
kotlin
lua
makefile
markdown
nginx
php
python
ruby
rust
shellscript
sql
swift
toml
typescript
xml
yaml
可见性
公开动态
访问
public
过期
7 天
10 分钟
1 小时
1 天
7 天
30 天
90 天
自定义…
自定义过期
变更备注
(可选)
此文本会显示在公开动态中。如果只想通过链接分享,请更改可见性。
创建新版本
取消
粘贴或输入…
javascript:(() => { 'use strict'; const w = window; const FLAG = '__BC_BOTH_ADDONS_BOOKMARK_V1__'; const hosts = ['bondageprojects.elementfx.com', 'bondageprojects.com', 'bondage-europe.com', 'bondageeurope.com', 'bondage-asia.com']; if (!hosts.some(h => location.hostname === h || location.hostname.endsWith('.' + h))) { alert('Open Bondage Club first, then click the addon bookmark.'); return; } if (w[FLAG]?.busy) { alert('The addon bookmark is already loading.'); return; } w[FLAG] = {busy: true, results: []}; const defs = [ { name: 'Subby Essentials', already: () => !!(w.SubbysPlushies?.version || w.__SUBBYS_PLUSHIES_ACTIVE__ || document.documentElement.getAttribute('data-subbys-plushies-runtime') === 'main-world-active'), urls: [ 'https://raw.githack.com/marvelous-bc/subby-plushies/main/SubbysPlushies.user.js', 'https://cdn.jsdelivr.net/gh/marvelous-bc/subby-plushies@main/SubbysPlushies.user.js' ] }, { name: 'PawLounge', already: () => !!(w.KittyChat?.version || w.PawLounge?.version || document.documentElement.getAttribute('data-kittychat-injected')), urls: [ 'https://raw.githack.com/marvelous-bc/pawlounge/main/KittyChat.user.js', 'https://cdn.jsdelivr.net/gh/marvelous-bc/pawlounge@main/KittyChat.user.js' ] } ]; let toastNode; const toast = message => { if (!toastNode) { toastNode = document.createElement('div'); toastNode.id = 'bc-both-addons-bookmark-status'; toastNode.setAttribute('role', 'status'); toastNode.style.cssText = 'position:fixed;top:14px;right:14px;max-width:330px;z-index:2147483647;background:#27172f;color:#fff0fa;border:1px solid #db8ac7;box-shadow:0 5px 16px #0009;border-radius:10px;padding:11px 15px;font:13px/1.4 system-ui,sans-serif;white-space:pre-wrap;pointer-events:none'; (document.body || document.documentElement).appendChild(toastNode); } toastNode.textContent = message; }; const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); const insertScript = (url, label) => new Promise((resolve, reject) => { const script = document.createElement('script'); script.src = url; script.async = false; script.dataset.bcAddonsBookmarklet = label; if (label === 'Subby Essentials') script.dataset.subbysPlushiesLoader = '1'; let finished = false; const done = error => { if (finished) return; finished = true; clearTimeout(timer); script.onload = null; script.onerror = null; script.remove(); error ? reject(error) : resolve(); }; const timer = setTimeout(() => done(new Error('script load timed out')), 15000); script.onload = () => done(null); script.onerror = () => done(new Error('external script blocked or unavailable')); (document.head || document.documentElement).appendChild(script); }); (async () => { try { toast('Waiting for Bondage Club...'); for (let i = 0; i < 60; i++) { if (document.body && (w.DrawImageEx || w.AssetGet || w.ChatRoomRun || w.Player)) break; await sleep(250); } for (const def of defs) { if (def.already()) { w[FLAG].results.push(def.name + ': already running'); continue; } toast('Loading ' + def.name + '...'); let loaded = false; for (const url of def.urls) { try { await insertScript(url, def.name); loaded = true; break; } catch (err) { console.warn('[BC Addon Bookmark] ' + def.name + ': ' + err.message + ' (' + new URL(url).hostname + ')'); } } if (!loaded) { w[FLAG].results.push(def.name + ': FAILED (see console/CSP)'); continue; } for (let i = 0; i < 20 && !def.already(); i++) await sleep(250); w[FLAG].results.push(def.name + (def.already() ? ': started' : ': script loaded; initializing')); } const results = w[FLAG].results; toast(results.join('\n')); if (results.some(x => x.includes('FAILED'))) { alert('At least one addon could not load. Open F12 > Console for details. A userscript manager is more reliable when the page blocks bookmarklets.'); } console.info('[BC Addon Bookmark]', results); } catch (err) { console.error('[BC Addon Bookmark] Unexpected error:', err); toast('Addon launcher error — check F12 Console.'); } finally { w[FLAG].busy = false; } })(); })();