// ==UserScript==
// @name ahedu文件下载
// @namespace aheduDownloader.taozhiyu.gitee.io
// @version 0.3
// @description ahedu文件下载,右击文件名称下载
// @author 涛之雨
// @homepageURL https://greasyfork.org/zh-CN/scripts/440303
// @match http://www.ahedu.cn/EduResource/index.php?*
// @match http://www.ahedu.cn/search/index.php?*
// @icon http://www.ahedu.cn/EduResource/addons/theme/stv_resource/_static/images/favicon.ico
// @grant none
// @license MIT
// @downloadURL none
// ==/UserScript==
/* global layer flvjs*/
/* jshint esversion: 8 */
(function() {
'use strict';
//教师资源页
console.group('%cahedu文件下载脚本 %c by 涛之雨 ','color:white;background:green;font-size:30px;padding:10px','font-size:30px;padding:10px;background:orange;');
console.log('彩蛋(算是吧)');
console.groupEnd('cahedu文件下载脚本 by 涛之雨 ');
const appName= location.href.match(/app=([^&]+)/),
acyName=location.href.match(/acy_name=([^&]+)/);
if(location.pathname.startsWith("/EduResource")){
if(!location.href.match(/rid=([\da-z]+)/))return;
if(!appName||appName.length<2||!acyName||acyName.length<2){
return;
}
var getVideoLink=async dom=> await fetch("http://www.ahedu.cn/EduResource/index.php?app="+appName[1]+"&mod=ResList&act=downloadRes&acy_name="+acyName[1], {
"headers": {
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"pragma": "no-cache",
},
"referrer": location.href,
"body": "rid="+ dom.getAttribute("data-value"),
"method": "POST"
}).then(a=>a.json()).then(a=>{
if(a.code!==200){
throw '';
}
return a.url;
}).catch(a=>!layer.msg("网络请求出错...", {icon: 5}));
document.querySelectorAll('.zuopin_resource_a').forEach(a=>{
a.oncontextmenu=async x=>{
x.preventDefault();
const v=await getVideoLink(x.target);
if(v){
layer.msg("加载成功,准备下载", {icon: 1});
window.location.href=v;
}
return false;
};
});
layer.msg("脚本加载成功
右键点击[文件名]下载文件", {icon: 1});
setTimeout(function(){
const prev=document.querySelector('#preview_flv');
if(prev&&prev.innerText.startsWith('Error loading')){
(async function(){
var v=await getVideoLink(document.querySelector('.cur a'));
if(/\.flv$/.test(v)){
// @require https://cdn.bootcdn.net/ajax/libs/flv.js/1.6.2/flv.min.js
//flvjs.isSupported()&&
// prev.innerHTML=``;
// var flvPlayer = flvjs.createPlayer({
// type: 'flv',
// url: v
// });
// flvPlayer.attachMediaElement(prev.querySelector('video'));
// flvPlayer.load();
layer.msg("暂不支持在线播放flv格式
您可以尝试下载", {icon: 7});
}if(/\.mp4$/.test(v)){
prev.innerHTML=``;
layer.msg("已为您修复并重构播放界面", {icon: 1});
}else{
layer.msg("暂不支持的格式
您可以尝试下载", {icon: 7});
}
})();
}
},2000);
}else if(location.pathname.startsWith("/search")){
var rid=location.href.match(/resId=([\da-z]+)/);
if(rid.length<2){
return;
}
var links=document.body.parentElement.innerHTML.match(new RegExp(`[^'"]+${rid[1]}[^'"]+`,'g'));
if(!links){
links=document.body.parentElement.innerHTML.match(/fileurl\s*=\s*['"][^'"]+/g);
if(!links){
layer.msg("获取链接出错...", {icon: 5});
return;
}
links=links[0].match(/[^'"]+$/g);
}
links=[...new Set(links)].filter(a=>!a.match(/html|qrCode/));
if(links.length!==1){
layer.msg("获取到未预期的链接数量...
请F12打开控制台查看链接
理论上每个都一样", {icon: 3});
console.clear();
console.group('%cahedu文件下载脚本 %c by 涛之雨 ','color:white;background:green;font-size:30px;padding:10px','font-size:30px;padding:10px;background:orange;');
links.map(a=>console.log(a));
console.groupEnd('cahedu文件下载脚本 by 涛之雨 ');
return false;
}
document.querySelectorAll('.down').forEach(x=>{
x.oncontextmenu=x=>{
layer.msg("加载成功,准备下载", {icon: 1});
window.location.href=links;
return false;
};
});
layer.msg("脚本加载成功
右键点击[下载]按钮
即可下载文件", {icon: 1});
}
})();