// ==UserScript==
// @name [kesai]豆瓣电影辅助
// @namespace http://tampermonkey.net/
// @version 1.1.3
// @description 豆瓣电影辅助,提供一些常用网站的搜索以及预告片的快捷进入
// @description 1.1.3修复1337无法显示问题
// @author kesai
// @match https://movie.douban.com/subject/*
// @require https://cdn.bootcss.com/layer/2.3/layer.js
// @grant none
// ==/UserScript==
(function () {
//'use strict';
// Your code here...
function addCSS(url) {
var link = window.document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = url;
document.getElementsByTagName("HEAD")[0].appendChild(link);
}
function popWin(url) {
//iframe窗
var width = window.screen.width * 0.9 + "px";
var height = window.screen.height * 0.8 + "px";
var index = layer.open({
type: 2,
closeBtn: false,
title: "预告片",
shade: [0.9, '#000000'],
shadeClose: true,
offset: 'auto',
//shade: false,
maxmin: false,
//开启最大化最小化按钮
area: [width, height],
content: [url, 'yes'],
success: function (layerInstance) {
console.log(index);
console.log(layer);
//layer.full(index);
}
});
}
//默认新窗口配置
var windowDefaultConfig = new Object;
windowDefaultConfig['directories'] = 'no';
windowDefaultConfig['location'] = 'no';
windowDefaultConfig['menubar'] = 'no';
windowDefaultConfig['resizable'] = 'yes';
windowDefaultConfig['scrollbars'] = 'yes';
windowDefaultConfig['status'] = 'no';
windowDefaultConfig['toolbar'] = 'no';
function clone(obj) {
var o;
if (typeof obj == "object") {
if (obj === null) {
o = null;
} else {
if (obj instanceof Array) {
o = [];
for (var i = 0, len = obj.length; i < len; i++) {
o.push(clone(obj[i]));
}
} else {
o = {};
for (var j in obj) {
o[j] = clone(obj[j]);
}
}
}
} else {
o = obj;
}
return o;
}
/**
* 以POST表单方式打开新窗口的JQUERY实现
@param:url 需要打开的URL
@param:args URL的参数,数据类型为object
@param:name 打开URL窗口的名字,如果同一按钮需要重复地打开新窗口,
而不是在第一次打开的窗口做刷新,此参数应每次不同
@param:windowParam 新打开窗口的参数配置
* @author: haijiang.mo
*/
function OpenPostWindow(url, args, name, windowParam) {
//创建表单对象
var _form = $("<form></form>", {
'id': 'tempForm',
'method': 'post',
'action': url,
'target': name,
'style': 'display:none'
}).appendTo($("body"));
//将隐藏域加入表单
for (var i in args) {
_form.append($("<input>", { 'type': 'hidden', 'name': i, 'value': args[i] }));
}
//克隆窗口参数对象
var windowConfig = clone(windowDefaultConfig);
//配置窗口
for (var i in windowParam) {
windowConfig[i] = windowParam[i];
}
//窗口配置字符串
var windowConfigStr = "";
for (var i in windowConfig) {
windowConfigStr += i + "=" + windowConfig[i] + ",";
}
//绑定提交触发事件
_form.bind('submit', function () {
window.open("about:blank", name);
//window.open("about:blank", name, windowConfigStr);
});
//触发提交事件
_form.trigger("submit");
//表单删除
_form.remove();
}
function createButton(backgroudcolor, text, url, type, params) {
var btn = $("<li><span style='margin-top:-10px;cursor:pointer;height:30px;width:55px;background:" + backgroudcolor + ";display:inline-block;text-align:center;line-height:30px;color:white;'>" + text + "</span></li>");
$(".ul_subject_menu ").append(btn);
btn.click(function () {
if (type === 'post') {
var formData = new Object;
params.split("&").forEach(function (item) {
formData[item.split('=')[0]] = item.split('=')[1];
});
OpenPostWindow(url, formData, 'test', null)
} else {
window.open(url);
}
});
}
addCSS('https://cdn.bootcss.com/layer/2.3/skin/layer.css');
var text = $("h1 span")[0].innerText;
var movieName = text.split(" ")[0];
var configs = [{
color: "#f8d306",
text: "磁力猫",
url: "https://www.cilimao.me/search?word=" + movieName
}, {
color: "#1b6d9d",
text: "字幕库",
url: "https://www.zimuku.la/search?q=" + movieName
}, {
color: "#c0392b",
text: "射手网",
url: "https://assrt.net/sub/?searchword=" + movieName
}, {
color: "#39ac6a",
text: "58网盘",
url: "http://www.58wangpan.com/search/kw" + movieName
}, {
color: "#268dcd",
text: "bd-film",
url: "https://www.bd2020.com/search.jspx?q=" + movieName
}, {
color: "#2B7ACD",
text: "5ndy",
type: "post",
url: "http://www.5ndy.com/search.php?mod=forum",
params: "searchsubmit=yes&srchfid=38&srchtxt=" + movieName
//srchfid:指定搜索范围,38表示只在百度云电影下载板块内搜索
}, {
color: "#222",
text: "哔嘀影视",
url: "https://bde4.com/search/" + movieName
}, {
color: "red",
text: "片库",
url: "https://www.pianku.tv/s/go.php?q=" + movieName
}]
configs.forEach(function (item) {
createButton(item.color, item.text, item.url, item.type, item.params);
});
var info = $('#info').text();
//var imdb_id = $("[href^='https://www.imdb.com']").text(); //获取imdb链接里的imdb_id
let imdb_id = info.match(/(?<=IMDb:\s)[^\n]*/)[0];
let apikey = '26abfbd0';
let apiurl = 'https://www.omdbapi.com/?tomatoes=false&apikey=' + apikey + '&i=' + imdb_id;
$.ajax({
url: apiurl,
type: "GET",
dataType: "json",
success: function (response) {
var imdb_MovieName = response.Title;
if (imdb_MovieName != null) createButton("red", "1337x", 'https://1377x.to/search/' + imdb_MovieName + '/1/');
}
});
// 调整底下剧情简介的位置
let interest_sectl_selector = $('#interest_sectl');
interest_sectl_selector.after($('div.grid-16-8 div.related-info'));
interest_sectl_selector.attr('style', 'float:right');
$('div.related-info').attr('style', 'width:480px;float:left');
$('#link-report').css('margin-bottom', '0px');
$("#interest_sect_level").css('padding-top', '0px');
//增加预告片显示
var div = $('<div id="divPiao" style="position: fixed; right:1px!important;right:18px;margin-right:30px; bottom:50px;"></div>');
var ul = $("<ul class='related-pic-bd'></ul>");
var li = $(".label-trailer"); //.clone();
ul.append($(".label-trailer"));
var a = li.find("a");
var url = a.attr("href");
a.attr("href", "javascript:void()");
a.click(function () {
popWin(url);
})
div.append(ul);
$("body").append(div);
document.addEventListener("keydown", function (e) {
if (e.keyCode === 192) {
popWin(url);
}
}, false);
})();