bilibili搜索加强版,现网页版不支持复合搜索选框!
// ==UserScript==
// @name Bsearch(intumu.com)
// @namespace http://tampermonkey.net/
// @version 0.0.11
// @description bilibili搜索加强版,现网页版不支持复合搜索选框!
// @author yeayee
// @match https://search.bilibili.com/*
// @icon https://static.hdslb.com/mobile/img/512.png
// @grant GM_xmlhttpRequest
// @grant GM_addStyle
// @grant GM_openInTab
// @grant GM_registerMenuCommand
// @grant GM_setValue
// @grant GM_getValue
// @run-at document-end
// @require https://cdn.staticfile.org/jquery/3.4.0/jquery.min.js
// @require https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js
// @require https://unpkg.com/axios/dist/axios.min.js
// @connect search.bilibili.com
// @connect api.bilibili.com
// @connect *.bilibili.com
// @license MIT
// ==/UserScript==
(function () {
'use strict';
// grant GM_getResourceText
$("head").append($(
'<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/github-markdown-css/5.2.0/github-markdown.css" media="(prefers-color-scheme: dark)">'
));
// 通过class定位button
const buttons = document.getElementsByClassName('vui_button vui_button--blue vui_button--lg search-button');
// 遍历每个button
for (let i = 0; i < buttons.length; i++) {
const button = buttons[i];
// 创建新的button元素
const newButton = document.createElement('button');
newButton.setAttribute('id', 'newbutton');
newButton.innerHTML = '按时间+播放量搜索';
// 将新的button插入到button后面
button.parentNode.insertBefore(newButton, button.nextSibling);
};
const button = document.getElementById('newbutton');
if (button) {
button.addEventListener('click', function() {
// 点击事件处理逻辑
console.log('newButton click!');
const inputElements = document.getElementsByClassName('search-input-el'); // 获取所有带有该class的input元素
let values = [];
for (let i = 0; i < inputElements.length; i++) {
values.push(inputElements[i].value); // 将每个input元素的value添加到数组中
}
console.log(values[0]); // 打印数组中的值
var pg =1
var url = 'https://api.bilibili.com/x/web-interface/wbi/search/type?page='+pg+'&keyword='+values[0]+'&search_type=video'
console.log(url)
let alldata = [];
// Get current page headers
const headers = Object.fromEntries(new Headers(document.headers));
// Define GET request options
const options = {
method: 'GET',
url: url,
headers: headers,
responseType: 'json',
onload: function(response) {
console.log(response.response);
var jsonData = JSON.parse(response.response);
var numPages = jsonData["data"]["numPages"];
alldata.push(jsonData["data"]["result"])
}
};
// Send GET request using GM_xmlhttpRequest
GM_xmlhttpRequest(options);
});
} else {
console.log('Button not found!');
}
})();