提交 95fdcd75 编写于 作者: H hjdhnx

修复alist搜索问题

上级 64320711
3.9.23beta1
\ No newline at end of file
3.9.23beta2
\ No newline at end of file
......@@ -24,6 +24,7 @@ String.prototype.rstrip = function (chars) {
};
var showMode = 'single';
var searchDriver = '';
var limit_search_show = 200;
/**
* 打印日志
* @param any 任意变量
......@@ -63,6 +64,10 @@ const http = function (url, options = {}) {
const __drives = {};
function isMedia(file){
return /\.(wmv|mpeg|mov|ram|swf|mp4|mp3|wma|avi|rm|rmvb|flv|mpg|mkv|m3u8)$/.test(file);
}
function get_drives_path(tid) {
const index = tid.indexOf('$');
const name = tid.substring(0, index);
......@@ -95,7 +100,10 @@ function get_drives(name) {
}
function init(ext) {
const data = http.get(ext).json();
let alist_data = ext.split(';');
let alist_data_url = alist_data[0];
limit_search_show = alist_data.length>1?Number(alist_data[1])||limit_search_show:limit_search_show;
const data = http.get(alist_data_url).json();
searchDriver = (data.find(x=>x.search)||{}).name||'';
data.forEach(item => {
let _path_param = [];
......@@ -338,11 +346,12 @@ function detail(tid) {
let isSearch = tid.endsWith('#search#');
let otid = tid;
tid = tid.replace('#search#','');
let isFile = isMedia(tid);
let { drives, path } = get_drives_path(tid);
if (path.endsWith("/")) { //长按文件夹可以 加载里面全部视频到详情
return getAll(otid,tid,drives,path);
} else {
if(isSearch){
if(isSearch&&!isFile){
return getAll(otid,tid,drives,path);
}else if(showMode==='all'){
let new_tid = tid.split('/').slice(0,-1).join('/')+'/';
......@@ -400,10 +409,18 @@ function search(wd, quick) {
print(driver);
let html = http.get(driver.server + '/search?box='+wd+'&url=').text();
let lists = pdfa(html,'div&&ul&&a');
print(lists.length);
print(`搜索结果数:${lists.length},搜索结果显示数量限制:${limit_search_show}`);
let vods = [];
let excludeReg = /\.(pdf|epub|mobi|txt|doc)$/; // 过滤后缀文件
lists.forEach(it=>{
let vid = searchDriver+'$'+pdfh(it,'a&&href')+'#search#';
let vhref = pdfh(it,'a&&href');
if(vhref){
vhref = unescape(vhref);
}
if(excludeReg.test(vhref)){
return; //跳过本次循环
}
let vid = searchDriver+'$'+vhref+'#search#';
vods.push({
vod_name:pdfh(it,'a&&Text'),
vod_id:vid,
......@@ -411,6 +428,8 @@ function search(wd, quick) {
vod_remarks:searchDriver
});
});
// 截取搜索结果
vods = vods.slice(0,limit_search_show);
print(vods);
return JSON.stringify({
'list': vods
......
此差异已折叠。
......@@ -52,6 +52,7 @@
###### 2022/11/22
- [X] 增加了alist的api,版本号升级至 3.9.23
- [X] 支持alist搜索小雅的结构,配置里加 "search": true, 仅取前面第一个alist
- [X] alist搜索支持限制搜索结果数,默认取前200. "ext":"{{host}}/txt/json/alist.json;200" 这种格式,分号隔开传参数
- [X] 需要在custom.conf加一行自定义配置,例如:
```json
{"key":"Alist","name":"Alist","type":3,"api":"{{host}}/libs/alist.min.js","searchable":2,"quickSearch":0,"filterable":0,"ext":"{{host}}/txt/json/alist.json"},
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册