// ==UserScript==
// @name 快捷展开微博
// @namespace https://greasyfork.org/zh-CN/users/1073-hzhbest
// @version 1.0
// @description 快捷展开微博,无需去找“展开”链接
// @author hzhbest
// @match https://weibo.com/*
// @match https://s.weibo.com/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
const waitimg = "data:image/gif;base64,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";
let bbox = creaElemIn('div', document.body);
bbox.id = "__wb_fbox";
let tb = creaElemIn('div', bbox);
tb.className = "__title"
let tbox = creaElemIn('div', tb);
tbox.className = "__move"
tbox.innerHTML = "░░░░░░░";
let sizebtn = creaElemIn('div', tb);
sizebtn.innerHTML = "S";
sizebtn.title = "切换视频大小";
sizebtn.className = "__btn";
let pinbtn = creaElemIn('div', tb);
pinbtn.innerHTML = "T";
pinbtn.title = "切换小窗保持不关状态";
pinbtn.className = "__btn";
let closebtn = creaElemIn('div', tb);
closebtn.innerHTML = "X";
closebtn.title = "关闭小窗";
closebtn.className = "__btn";
let fbox = creaElemIn('video', bbox);
fbox.poster = waitimg;
fbox.controls = true;
fbox.autoplay = true;
endrag(bbox, { x: 'right', y: 'top' }, tbox);
var exptime, bboxtime, ctltime;
var firstopen, vsrc, mt = "";
var pinned, cursize;
pinned = false;
cursize = 1;
let css = `
#__wb_fbox {
position:fixed;
z-index:10000;
display: none;
box-shadow: 0 0 10px 2px #777d;
}
#__wb_fbox>video{
max-height: 600px;
max-width: 800px;
resize: both;
}
#__wb_fbox.size2>video{
max-height: 400px;
max-width: 533px;
}
#__wb_fbox.size3>video {
max-height: 300px;
max-width: 400px;
}
#__wb_fbox .__title {
width: 100%;
height: 18px;
background: black;
display: flex;
}
#__wb_fbox .__move {
flex: auto;
color: #6f6f6f;
cursor: move;
display: inline-block;
font-size: 17px;
line-height: 17px;
height: 17px;
}
#__wb_fbox .__btn {
margin: auto 3px auto 0;
border: 1px solid #ae7108;
color: #ae7108;
font-size: 12px;
vertical-align: middle;
text-align: center;
display: inline-block;
width: 17px;
height: 17px;
cursor: default;
}
#__wb_fbox.size2 .__btn.s {
background: #575516;
}
#__wb_fbox.size3 .__btn.s {
background: #716e1b;
}
#__wb_fbox .__btn.p {
background: #1b711b;
}
#__wb_fbox .__btn:hover {
border-color: #f39e0b;
color: #f39e0b;
}
`;
fbox.addEventListener('loadeddata', () => {
fbox.play();
ctltime = setTimeout(() => {
fbox.controls = false;
}, 1000);
}, false);
fbox.addEventListener('play', () => {
firstopen = false;
}, false);
bbox.addEventListener('mouseleave', ()=>{
if (pinned) {
return;
}
bboxtime = setTimeout(() => {
reset();
}, 1000);
}, false);
bbox.addEventListener('mouseover', () => {
clearTimeout(bboxtime);
if (firstopen) fbox.play();
}, false);
bbox.addEventListener('mouseup', () => {
clearTimeout(bboxtime);
}, false);
bbox.addEventListener('mousemove', () => {
clearTimeout(ctltime);
fbox.controls = true;
ctltime = setTimeout(() => {
fbox.controls = false;
}, 1000);
}, false);
closebtn.addEventListener('click', reset, false);
pinbtn.addEventListener('click', switchpin, false);
sizebtn.addEventListener('click', switchsize, false);
document.body.addEventListener('mouseover', texpand, false);
addCSS(css);
function texpand(event){
let tnode = event.target;
//console.log('tnode: ', tnode, 'tnode.src: ', tnode.src);
if (!tnode.className) {
return;
}
let btnexpand;
if (tnode.nodeName == 'DIV' && tnode.className.indexOf('detail_wbtext_') == 0) {
btnexpand = tnode.querySelector('span.expand');
} else if (tnode.nodeName == 'P' && tnode.className == 'txt') {
btnexpand = tnode.querySelector('a[action-type="fl_unfold"]');
}
if (!/weibo\.com\/\d{10}\/[a-z0-9A-Z]{9}\??/.test(location.href)) {
if (isVideoBox(tnode) && mt !== "mt2") {
if (mt == "") {
mt = "mt1";
}
if (mt == "mt1"){
exptime = setTimeout(() => {
expandvideo(tnode, event);
}, 1000);
}
console.log("166:", exptime,mt);
} else if (tnode.parentNode.classList.contains("wbp-video") && mt !== "mt1") {
var tvnode = tnode.parentNode.querySelector('video');
if (isVideoBox(tvnode)) {
if (mt == "") {
mt = "mt2";
}
if (mt == "mt2"){
exptime = setTimeout(() => {
expandvideo(tvnode, event);
}, 1000);
}
console.log("178:", exptime);
}
} else {
console.log("181c:", exptime);
clearTimeout(exptime);
}
}
if (!!btnexpand) {
btnexpand.click();
}
}
function reset() {
bbox.style.display = "none";
fbox.src = "";
firstopen = true;
vsrc = "";
pinned = false;
pinbtn.classList.remove("p");
}
function isVideoBox(elem) {
if (elem.nodeName == 'VIDEO' && elem.parentNode.nodename !== 'a' && elem.parentNode.id !== "__wb_fbox") {
return true;
}
}
function expandvideo(vnode, event) {
//快捷展开动图
if (vsrc == vnode.src) {
return;
}
fbox.src = vnode.src;
vsrc = fbox.src;
fbox.controls = true;
bbox.style.display = "block";
// let mx = event.screenX, my = event.screenY;
// mx -= 50;
// my = 10; //Math.min(my - 50, window.innerHeight - fbox.offsetHeight - 50);console.log('fboxh2: ', fbox.offsetHeight);
bbox.style.top = 40 + "px";
bbox.style.right = 50 + "px";
vnode.addEventListener('mouseleave', (event) => {
console.log("222c:", exptime);
clearTimeout(exptime);
}, false);
}
function switchpin() {
pinned = !pinned;
pinbtn.classList.toggle("p");
}
function switchsize() {
switch (cursize) {
case 1:
cursize = 2;
bbox.className = "size2";
sizebtn.classList.add("s");
break;
case 2:
cursize = 3;
bbox.className = "size3";
break;
case 3:
cursize = 1;
bbox.className = "";
sizebtn.classList.remove("s");
break;
}
}
function creaElemIn(tagname, destin) { //在 destin 内末尾创建元素 tagname
let theElem = destin.appendChild(document.createElement(tagname));
return theElem;
}
function addCSS(css, cssid) {
let stylenode = creaElemIn('style',document.getElementsByTagName('head')[0]);
stylenode.textContent = css;
stylenode.type = 'text/css';
stylenode.id = cssid || '';
}
// 对target拖动handle时,实现拖动的功能
// 输入:目标元素target,拖动位置参考系opt,拖动手柄handle
// 输入opt:形如【{x:'right',y:'bottom'}】
function endrag(target, opt, handle) {
var p_x, p_y, isDragging;
endrag = function(target, opt, handle){
return new endrag.proto(target, opt||{}, handle);
}
endrag.proto = function (target, opt, handle) {
var self = this;
this.target = target;
this.style = target.style;
this.handle = handle;
var _x = opt.x !== 'right';
var _y = opt.y !== 'bottom';
this.x = _x ? 'left' : 'right';
this.y = _y ? 'top' : 'bottom';
p_x = this.x;
p_y = this.y;
this.xd = _x ? -1 : 1;
this.yd = _y ? -1 : 1;
this.computed_style = document.defaultView.getComputedStyle(target, '');
this.drag_begin = function(e){self.__drag_begin(e);};
this.handle.addEventListener('mousedown', this.drag_begin, false); //only drag on handler
this.dragging = function(e){self.__dragging(e);};
document.addEventListener('mousemove', this.dragging, false);
this.drag_end = function(e){self.__drag_end(e);};
document.addEventListener('mouseup', this.drag_end, false);
};
endrag.proto.prototype = {
__drag_begin:function(e){
if (e.button == 0) {
var _c = this.computed_style;
this.isDragging = isDragging = true;
this.position = {
_x:parseFloat(_c[this.x]),
_y:parseFloat(_c[this.y]),
x:e.pageX,
y:e.pageY
};
e.preventDefault();
}
},
__dragging:function(e){
if (!this.isDragging) return;
var x = Math.floor(e.pageX), y = Math.floor(e.pageY), p = this.position;
// prevent moving out of window
var x_border = window.innerWidth - 40, y_border = window.innerHeight - 20;
if (x - window.pageXOffset > x_border) x = window.pageXOffset + x_border;
if (y - window.pageYOffset > y_border) y = window.pageYOffset + y_border;
p._x = p._x + (p.x - x) * this.xd;
p._y = p._y + (p.y - y) * this.yd;
this.style[this.x] = p._x + 'px';
this.style[this.y] = p._y + 'px';
p.x = x;
p.y = y;
},
__drag_end:function(e){
if (e.button == 0) {
if (this.isDragging) {
this.isDragging = isDragging = false;
}
}
},
hook:function(method,func){
if (typeof this[method] === 'function') {
var o = this[method];
this[method] = function(){
if (func.apply(this,arguments) === false) {
return;
}
o.apply(this,arguments);
};
}
}
};
return endrag(target, opt, handle);
}
})();