#1 - 2019-6-29 10:02
yuzhan1990
Dialogue.moe 动画对白全文检索工具,简单来说就是查找对白的出处,与saucenao和whatanime类似,不过这个是检索对白的,详见https://bgm.tv/group/topic/351313
虽然它提供了按动画的Bangumi ID检索的功能,但没有显示检索结果中的动画的ID,于是自己写了个脚本,来显示它.示例:
脚本使用前
妄想改造人改藏 ep.02 Score: 19.231
脚本使用后
10940妄想改造人改藏 ep.02 Score: 19.231
截图不能,意会就好~
它的功能在于,在找出对应关键词的各条字幕后,快速复制id到Bangumi ID检索栏,进行进一步检索,无需点开各个标题来查看对应的id
本来想实现的功能是,点击id即可自动复制到Bangumi ID检索栏,再自动点击搜索按钮,一键实现结果中搜索.但撞了墙,在给元素添加点击事件后,不清楚怎样让事件去定位是哪个元素触发的,因此无法区分输入对应的id,只能输入固定字符.还望大佬指点,这样的代码要怎样写~
此外,由于无法得知检索按钮按下后出结果的延迟时间,因此设置每秒触发一遍,感觉有些浪费性能.不知道在后端实现这项功能,能否直接照搬这段代码?方便的话还是希望原作者 @windrises能在后端就直接把id给显示出来,当然要能实现点击即可在目标番剧中搜索就更好啦!
最后附上代码,粘贴至油猴即可使用:
// ==UserScript==
// @名字 dialogue.moe显示动画名的ID
// @名字space http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://dialogue.moe/
// @七濑 none
// ==/UserScript==
(function() {
'use strict';
function showID(){
var table = document.querySelectorAll('table > tbody > tr');
var cln;
var id;
var title;
for(var i=0;i<table.length;i++){
cln = document.createElement('span');
id = table.querySelector('td > div > div > div > div > button > span > a').getAttribute('href').replace(/.*\//g,'');
cln.textContent = id;
title = table.querySelector('td > div > div > div.hidden-xs-only.el-row.is-justify-space-around.el-row--flex > div');
if(!table.querySelector('td > div > div > div.hidden-xs-only.el-row.is-justify-space-around.el-row--flex > div > button:nth-child(2)')){
title.insertBefore(cln,title.childNodes[0]);
}
//cln.addEventListener("click", function(){document.querySelector('div.el-col.el-col-24.el-col-sm-12.el-col-lg-8 > div > input').value = cln.textContent;});
}
}
setInterval(showID, 1000);
})();
虽然它提供了按动画的Bangumi ID检索的功能,但没有显示检索结果中的动画的ID,于是自己写了个脚本,来显示它.示例:
脚本使用前
妄想改造人改藏 ep.02 Score: 19.231
脚本使用后
10940妄想改造人改藏 ep.02 Score: 19.231
截图不能,意会就好~
它的功能在于,在找出对应关键词的各条字幕后,快速复制id到Bangumi ID检索栏,进行进一步检索,无需点开各个标题来查看对应的id
本来想实现的功能是,点击id即可自动复制到Bangumi ID检索栏,再自动点击搜索按钮,一键实现结果中搜索.但撞了墙,在给元素添加点击事件后,不清楚怎样让事件去定位是哪个元素触发的,因此无法区分输入对应的id,只能输入固定字符.还望大佬指点,这样的代码要怎样写~
此外,由于无法得知检索按钮按下后出结果的延迟时间,因此设置每秒触发一遍,感觉有些浪费性能.不知道在后端实现这项功能,能否直接照搬这段代码?方便的话还是希望原作者 @windrises能在后端就直接把id给显示出来,当然要能实现点击即可在目标番剧中搜索就更好啦!
最后附上代码,粘贴至油猴即可使用:
// ==UserScript==
// @名字 dialogue.moe显示动画名的ID
// @名字space http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://dialogue.moe/
// @七濑 none
// ==/UserScript==
(function() {
'use strict';
function showID(){
var table = document.querySelectorAll('table > tbody > tr');
var cln;
var id;
var title;
for(var i=0;i<table.length;i++){
cln = document.createElement('span');
id = table.querySelector('td > div > div > div > div > button > span > a').getAttribute('href').replace(/.*\//g,'');
cln.textContent = id;
title = table.querySelector('td > div > div > div.hidden-xs-only.el-row.is-justify-space-around.el-row--flex > div');
if(!table.querySelector('td > div > div > div.hidden-xs-only.el-row.is-justify-space-around.el-row--flex > div > button:nth-child(2)')){
title.insertBefore(cln,title.childNodes[0]);
}
//cln.addEventListener("click", function(){document.querySelector('div.el-col.el-col-24.el-col-sm-12.el-col-lg-8 > div > input').value = cln.textContent;});
}
}
setInterval(showID, 1000);
})();
前端的问题我也是一脸懵逼 github里有vue源码