Greasy Fork

Greasy Fork is available in English.

ahedu文件下载

ahedu文件下载,右击文件名称下载

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         ahedu文件下载
// @namespace    aheduDownloader.taozhiyu.gitee.io
// @version      0.4
// @description  ahedu文件下载,右击文件名称下载
// @author       涛之雨
// @homepageURL  http://greasyfork.icu/zh-CN/scripts/440303
// @match        *://www.ahedu.cn/EduResource/index.php?*
// @match        *://www.ahedu.cn/search/index.php?*
// @icon         https://www.ahedu.cn/EduResource/addons/theme/stv_resource/_static/images/favicon.ico
// @grant        none
// @license      MIT
// ==/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("//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("脚本加载成功<br>右键点击[文件名]下载文件", {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=`<video src='${v}' controls style='width:100%;height:100%' muted></video>`;
                        // var flvPlayer = flvjs.createPlayer({
                        //     type: 'flv',
                        //     url: v
                        // });
                        // flvPlayer.attachMediaElement(prev.querySelector('video'));
                        // flvPlayer.load();
                        layer.msg("暂不支持在线播放flv格式<br>您可以尝试下载", {icon: 7});
                    }if(/\.mp4$/.test(v)){
                        prev.innerHTML=`<video src='${v}' controls style='width:100%;height:100%'></video>`;
                        layer.msg("已为您修复并重构播放界面", {icon: 1});
                    }else{
                        layer.msg("暂不支持的格式<br>您可以尝试下载", {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("获取到未预期的链接数量...<br>请F12打开控制台查看链接<br>理论上每个都一样", {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("脚本加载成功<br>右键点击[下载]按钮<br>即可下载文件", {icon: 1});
    }
})();