// ==UserScript==
// @name CNKI学位论文学校标记(侧边筛选)
// @namespace http://tampermonkey.net/
// @version 0.1.2
// @description CNKI 搜索结果 学位论文 标记 侧边筛选
// @author You
// @match https://kns.cnki.net/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=cnki.net
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
const universities985 = [
"清华大学", "北京大学", "厦门大学", "南京大学", "复旦大学",
"天津大学", "浙江大学", "南开大学", "西安交通大学", "东南大学",
"武汉大学", "上海交通大学", "山东大学", "湖南大学", "中国人民大学",
"吉林大学", "重庆大学", "电子科技大学", "四川大学", "中山大学",
"华南理工大学", "兰州大学", "东北大学", "西北工业大学", "哈尔滨工业大学",
"华中科技大学", "中国海洋大学", "北京理工大学", "大连理工大学", "北京航空航天大学",
"北京师范大学", "同济大学", "中南大学", "中国科学技术大学",
"中国农业大学", "国防科学技术大学", "中央民族大学", "华东师范大学", "西北农林科技大学"
];
const universities211 = [
// 北京(26所)
"清华大学", "北京大学", "中国人民大学", "北京工业大学", "北京理工大学",
"北京航空航天大学", "北京化工大学", "北京邮电大学", "对外经济贸易大学",
"中国传媒大学", "中央民族大学", "中国矿业大学(北京)", "中央财经大学",
"中国政法大学", "中国石油大学", "中央音乐学院", "北京体育大学",
"北京外国语大学", "北京交通大学", "北京科技大学", "北京林业大学",
"中国农业大学", "北京中医药大学", "华北电力大学", "北京师范大学",
"中国地质大学",
// 上海(9所)
"复旦大学", "华东师范大学", "上海外国语大学", "上海大学", "同济大学",
"华东理工大学", "东华大学", "上海财经大学", "上海交通大学",
// 天津(4所)
"南开大学", "天津大学", "天津医科大学",
// 重庆(2所)
"重庆大学", "西南大学",
// 河北(1所)
"华北电力大学(保定)",
// 山西(1所)
"太原理工大学",
// 内蒙古(1所)
"内蒙古大学",
// 辽宁(4所)
"大连理工大学", "东北大学", "辽宁大学", "大连海事大学",
// 吉林(3所)
"吉林大学", "东北师范大学", "延边大学",
// 黑龙江(4所)
"东北农业大学", "东北林业大学", "哈尔滨工业大学", "哈尔滨工程大学",
// 江苏(11所)
"南京大学", "东南大学", "苏州大学", "河海大学", "中国药科大学",
"中国矿业大学(徐州)", "南京师范大学", "南京理工大学", "南京航空航天大学",
"江南大学", "南京农业大学",
// 浙江(1所)
"浙江大学",
// 安徽(3所)
"安徽大学", "合肥工业大学", "中国科学技术大学",
// 福建(2所)
"厦门大学", "福州大学",
// 江西(1所)
"南昌大学",
// 山东(3所)
"山东大学", "中国海洋大学", "中国石油大学(华东)",
// 河南(1所)
"郑州大学",
// 湖北(7所)
"武汉大学", "华中科技大学", "中国地质大学(武汉)", "华中师范大学",
"华中农业大学", "中南财经政法大学", "武汉理工大学",
// 湖南(3所)
"湖南大学", "中南大学", "湖南师范大学",
// 广东(4所)
"中山大学", "暨南大学", "华南理工大学", "华南师范大学",
// 广西(1所)
"广西大学",
// 四川(5所)
"四川大学", "西南交通大学", "电子科技大学", "西南财经大学", "四川农业大学",
// 云南(1所)
"云南大学",
// 贵州(1所)
"贵州大学",
// 陕西(7所)
"西北大学", "西安交通大学", "西北工业大学", "陕西师范大学",
"西北农林科技大学", "西安电子科技大学", "长安大学",
// 甘肃(1所)
"兰州大学",
// 新疆(2所)
"新疆大学", "石河子大学",
// 海南(1所)
"海南大学",
// 宁夏(1所)
"宁夏大学",
// 青海(1所)
"青海大学",
// 西藏(1所)
"西藏大学",
// 军事系统(3所)
"第二军医大学", "第四军医大学", "国防科学技术大学"
];
function markUniversities() {
// 选择ul元素
const ulElements = document.querySelectorAll('dd[field="CBWDM"][tit=" 学位授予单位"] div.resultlist ul');
ulElements.forEach(ul => {
// 获取ul下所有的li元素
const liElements = ul.querySelectorAll('li');
liElements.forEach(li => {
// 获取li下的a元素内的文本
const aElement = li.querySelector('a');
if (aElement) {
const universityName = aElement.textContent.trim();
if(universities985.includes(universityName)) {
// 985标记
const span = document.createElement('span');
span.textContent = '[985] ';
span.style.color = '#e74c3c';
span.style.fontWeight = 'bold';
aElement.insertBefore(span, aElement.firstChild);
} else if(universities211.includes(universityName)) {
// 211标记
const span = document.createElement('span');
span.textContent = '[211] ';
span.style.color = '#3498db';
span.style.fontWeight = 'bold';
aElement.insertBefore(span, aElement.firstChild);
}
}
});
});
}
// 添加一个定时器,确保在DOM加载完成后执行
setTimeout(markUniversities, 1000);
// 监听DOM变化,处理动态加载的内容
const observer = new MutationObserver(function(mutations) {
markUniversities();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
})();