CCNU-xiaoya-DownLoader

Add dowmload button to xiaoya

// ==UserScript==
// @name         CCNU-xiaoya-DownLoader
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Add dowmload button to xiaoya
// @author       zhouxinghua001
// @match        https://ccnu.ai-augmented.com/*
// @icon         https://aia-publication.oss-cn-shanghai.aliyuncs.com/oss-ccnu/jw/d8d7c652859b47f69be5311222d56f09.png
// @grant        none
// @run-at       document-end
// ==/UserScript==


(function () {
    'use strict';
    console.log("小雅下载器开始执行");
    console.log(document);
    var targetElementSelector = "#aia_main_header > div.ta-header-menu > div";
    var observer = new MutationObserver(function (mutations) {
        var check=1;
        mutations.forEach(function (mutation) {
            if (document.querySelector(targetElementSelector)&&check==1) {
                check=2;
                var parentNode = document.querySelector("#aia_main_header > div.ta-header-menu > div");
                var floatingButton = document.createElement('div');
                floatingButton.innerHTML = '<button id="download-button">下载</button>';
                parentNode.appendChild(floatingButton);
                document.getElementById('download-button').addEventListener('click', function () {
                    var allCookies = document.cookie;
                    var targetCookieName = 'HS-prd-access-token';
                    var cookiesArray = allCookies.split(';');
                    for (var i = 0; i < cookiesArray.length; i++) {
                        var cookie = cookiesArray[i].trim();
                        if (cookie.indexOf(targetCookieName + '=') === 0) {
                            var authToken = cookie.substring(targetCookieName.length + 1);
                            break;
                        }
                    }
                    var currentUrl = window.location.href;
                    var parts = currentUrl.split('/');
                    var index = parts.indexOf('mycourse');
                    if (index !== -1 && index < parts.length - 1) {
                        var group_id = parts[index + 1];
                    }
                    var node_id = parts[parts.length - 1];
                    var xhr1 = new XMLHttpRequest();
                    var url1 = "https://ccnu.ai-augmented.com/api/jx-iresource/resource/queryCourseResources?group_id=" + group_id
                    xhr1.open('GET', url1, true);
                    xhr1.responseType = 'json';
                    xhr1.setRequestHeader('Authorization', 'Bearer ' + authToken);
                    xhr1.send();
                    xhr1.onload = function () {
                        var courselist = xhr1.response.data;
                        for (var i of courselist) {
                            if (i.id == node_id) {
                                var id = i.quote_id;
                                break;
                            }
                        }
                        var xhr2 = new XMLHttpRequest();
                        var url2 = "https://ccnu.ai-augmented.com/api/jx-oresource/cloud/file_url/" + id
                        xhr2.open('GET', url2, true);
                        xhr2.responseType = 'json';
                        xhr2.setRequestHeader('Authorization', 'Bearer ' + authToken);
                        xhr2.send();
                        xhr2.onload = function () {

                            var downloadLink = xhr2.response.data.url;
                            window.open(downloadLink)

                        }
                    };
                })

                observer.disconnect();
            }
        });
    });
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
})();