🏠 Home 

EDUSRC-EXPORTER-为EDUSRC添加导出报告按钮

为EDUSRC添加导出报告按钮


安装此脚本?
// ==UserScript==
// @name         EDUSRC-EXPORTER-为EDUSRC添加导出报告按钮
// @namespace    https://greasyfork.org/zh-CN/scripts/481373-edusrc-exporter
// @version      1.2
// @description  为EDUSRC添加导出报告按钮
// @author       XiaO_WanG
// @match        https://src.sjtu.edu.cn/profile/post/*
// @match        https://src.sjtu.edu.cn/post/*
// @icon         https://src.sjtu.edu.cn/static/img/main.ico
// @grant        unsafeWindow
// @license      MPL
// @description  zh-cn
// ==/UserScript==
(function () {
'use strict';
const $w = unsafeWindow, $l = $w.location.href, $d = $w.document;
if ($l.toLowerCase().includes("https://src.sjtu.edu.cn/post/")) {
var rows = $('tbody tr');
var reportBtnTh = $('<th></th>').text('操作').addClass('am-text-center');
rows.eq(0).append(reportBtnTh);
var exportButton = $('<a></a>').text('导出').addClass('am-btn am-btn-primary am-btn-xs');
exportButton.on('click', function () {
var name = rows.eq(1).find('td:nth-child(2) a').text().trim();
var time = rows.eq(1).find('td:nth-child(1)').text().trim();
var author = rows.eq(1).find('td:nth-child(3) a').text().trim();
var content = $("body > div > div > div.am-container > div > div > article > div.am-article-bd").html().replace(/https:\/\/src.sjtu.edu.cn\/media\/images\//g, "/media/images/").replace(/\/media\/images\//g, "https://src.sjtu.edu.cn/media/images/");
var blob = new Blob([content], { type: 'text/html' });
var url = window.URL.createObjectURL(blob);
var a = $('<a></a>').attr('href', url).attr('download', time + "-" + author + "-" + name + '.html').get(0);
a.click();
window.URL.revokeObjectURL(url);
});
var cell = $('<td></td>').addClass('am-text-center').append(exportButton);
rows.eq(1).append(cell);
} else {
function down(link, name, time) {
fetch(link)
.then(response => response.text())
.then(html => {
var header = '<meta charset="utf-8">';
var content = new DOMParser().parseFromString(html, 'text/html').querySelector("body > div > div > div.am-container > div > div > article > div.am-article-bd").innerHTML.replace(/https:\/\/src.sjtu.edu.cn\/media\/images\//g, "/media/images/").replace(/\/media\/images\//g, "https://src.sjtu.edu.cn/media/images/");
var blob = new Blob([header + content], { type: 'text/html' });
var url = window.URL.createObjectURL(blob);
var a = document.createElement('a');
a.href = url;
a.download = time + "-" + name + '.html';
a.click();
window.URL.revokeObjectURL(url);
})
.catch(error => {
console.error('Error fetching content:', error);
});
};
var rows = $("tbody tr");
rows.each(function(index, row) {
if ($(row).attr('class') === undefined) {
var exportButton = $('<a></a>').text('导出').addClass('am-btn am-btn-primary am-btn-xs');
exportButton.on('click', function() {
var link = $(row).find('td:nth-child(2) a').attr('href');
var name = $(row).find('td:nth-child(2) a').text().trim();
var time = $(row).find('td:nth-child(1)').text().trim();
down(link, name, time);
});
var cell = $('<td></td>').addClass('am-text-center am-hide-sm-down');
cell.append(exportButton);
$(row).append(cell);
} else {
var exportTiele = $('<td></td>').addClass('am-hide-sm-down am-text-center').text('导出');
$(row).append(exportTiele);
}
});
var exportAll = $('<span></span>').text('导出本页所有报告').addClass('fa-search fa');
var exportAllBtn = $('<a></a>').addClass('btn btn-primary').append(exportAll);
exportAllBtn.on('click', function() {
rows.each(function(index, row) {
if ($(row).attr('class') === undefined) {
var link = $(row).find('td:nth-child(2) a').attr('href');
var name = $(row).find('td:nth-child(2) a').text().trim();
var time = $(row).find('td:nth-child(1)').text().trim();
down(link, name, time);
}
});
});
$("body > div.main-body > div > div.am-container > div > div > form > div.am-u-lg-3.am-u-md-3.am-u-sm-3.am-u-end").append(exportAllBtn);
$("body > div.main-body > div > div.am-container > div > div > table > tbody > tr.null.am-primary > td:nth-child(3)").width("10%");
$("body > div.main-body > div > div.am-container > div > div > table > tbody > tr.null.am-primary > td:nth-child(4)").width("10%");
$("body > div.main-body > div > div.am-container > div > div > table > tbody > tr.null.am-primary > td:nth-child(5)").width("10%");
$("body > div.main-body > div > div.am-container > div > div > table > tbody > tr.null.am-primary > td:nth-child(6)").width("10%");
}
})();