// ==UserScript==
// @name Bilibili 哔哩哔哩动态查看原图
// @icon https://t.bilibili.com/favicon.ico
// @namespace https://lolico.moe/
// @version 1.0
// @description 使哔哩哔哩动态可以查看原图以保存图片等,同时也支持空间中的动态
// @author Jindai Kirin
// @match https://t.bilibili.com/
// @match https://space.bilibili.com/*/dynamic
// @license GPL-3.0
// @grant none
// @run-at document-end
// @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
var datav={
t: '0a8e5084',
space: '2dd69243'
};
var domain = window.location.href.match(/(?<=\/\/)[^.]+/)[0];
var origBtnHtml = `
查看原图`;
//添加按钮
function setOrigBtn() {
$('.imagesbox').each(function (i, ele) {
var $ele=$(ele);
//完成标志
if ($ele.hasClass('orig-done')) return;
else $ele.addClass('orig-done');
//点击监听事件
$ele.click(function () {
if(!$ele.hasClass('orig-active')) {
//添加按钮
(function addBtn(){
var $bc = $ele.find('.boost-control');
//等待DOM完成渲染
if($bc.length === 0) {
setTimeout(addBtn, 50);
return;
}
$ele.addClass('orig-active');
if ($bc.find('.orig-btn').length === 0) {
$($bc.children()[1]).after(origBtnHtml);
$bc.find('.orig-btn').click(function () {
window.open($ele.find('.boost-img>img').attr('src').replace(/@.*/, ''));
});
}
})();
} else if($('.boost-img:hover').length>0 || $('.boost-control > .bp-v-middle:first').is(':hover')){
//移除按钮
$ele.find('.orig-btn').remove();
$ele.removeClass('orig-active');
}
});
});
}
var running = false;
function run() {
if (running) return;
running = true;
(function waitReady(){
if($('.imagesbox').length === 0) {
setTimeout(waitReady, 100);
return;
}
setOrigBtn();
setTimeout(function () {
running = false;
}, 2000);
})();
}
//等待DOM完成渲染
setTimeout(run, 500);
window.onscroll = run;
})();