// ==UserScript==
// @name 🔍神兽论文助手-【论文撰写(中文/英文)】【论文修改】【开题报告】【论文提纲】【论文题目】【论文图标生成】【降重-中文】【降重-英文】
// @namespace http://tampermonkey.net/
// @version 1.2
// @description 本文通过分析某大学毕业生原论文,聚焦核心观点与方法,精简表述,去除30%以上相似度内容,形成新版本,既保留学术价值又确保原创性提升,欢迎加入QQ群:74028813
// @author 神兽论文1.0版本
// @grant none
// @run-at document-end
// @license MIT
// @icon https://qinghy.top/upload/images/123.gif
// @match *://*/*
// @match *://*.chaoxing.com/*
// @match *://*.edu.cn/*
// @match *://*.nbdlib.cn/*
// @match *://*.hnsyu.net/*
// @match *://*.gdhkmooc.com/*
// @match *://*.zhihuishu.com/*
// @match *://*.taobao.com/*
// @match *://*.tmall.com/*
// @match *://chaoshi.detail.tmall.com/*
// @match *://*.tmall.hk/*
// @match *://*.liangxinyao.com/*
// @match *://*.jd.com/*
// @match *://*.jd.hk/*
// @match *://*.jkcsjd.com/*
// @match *://*.yiyaojd.com/*
// @match *://*.vip.com/*
// @match *://*.vipglobal.hk/*
// @exclude *://login.taobao.com/*
// @exclude *://login.tmall.com/*
// @exclude *://uland.taobao.com/*
// @exclude *://pages.tmall.com/*
// @exclude *://wq.jd.com/*
// @connect mooc1-1.chaoxing.com
// @connect mooc1.chaoxing.com
// @connect mooc1-2.chaoxing.com
// @connect passport2-api.chaoxing.com
// @connect www.tiku.me
// @connect cx.icodef.com
// @connect cx.icodef.com
// @connect q.icodef.com
// @connect azkou.cn
// @connect localhost
// @connect 127.0.0.1
// @grant GM_getResourceText
// @grant GM_getValue
// @grant GM_info
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// @grant unsafeWindow
// @grant GM_getTab
// @grant GM_saveTab
// @grant GM_listValues
// @grant GM_deleteValue
// @grant GM_notification
// @grant GM_addValueChangeListener
// @grant GM_removeValueChangeListener
// @run-at document-start
// @antifeature ads
// @namespace https://qinghy.top
// @homepage https://scriptcat.org/zh-CN/script-show-page/3038
// @source https://qinghy.top
// @antifeature payment 可使用web付费脚本平台进行播放、考试、题库
// ==/UserScript==
(function() {
'use strict';
const floatWindow = document.createElement('div');
floatWindow.style.position = 'fixed';
floatWindow.style.top = '50px';
floatWindow.style.right = '50px';
floatWindow.style.width = '300px';
floatWindow.style.height = '400px';
floatWindow.style.backgroundColor = '#fff';
floatWindow.style.border = '1px solid #ccc';
floatWindow.style.boxShadow = '0 2px 10px rgba(0,0,0,0.1)';
floatWindow.style.zIndex = '9999';
floatWindow.style.padding = '10px';
floatWindow.style.boxSizing = 'border-box';
floatWindow.style.fontFamily = 'Arial, sans-serif';
const titleBar = document.createElement('div');
titleBar.style.display = 'flex';
titleBar.style.justifyContent = 'space-between';
titleBar.style.alignItems = 'center';
titleBar.style.marginBottom = '10px';
titleBar.style.borderBottom = '1px solid #eee';
titleBar.style.paddingBottom = '5px';
titleBar.style.cursor = 'move';
const titleLabel = document.createElement('span');
titleLabel.textContent = '神兽论文助手';
titleLabel.style.fontSize = '18px';
titleLabel.style.color = '#333';
const closeButton = document.createElement('button');
closeButton.textContent = 'X';
closeButton.style.background = 'none';
closeButton.style.border = 'none';
closeButton.style.cursor = 'pointer';
closeButton.style.fontSize = '16px';
closeButton.style.color = '#999';
closeButton.style.transition = 'color 0.3s';
closeButton.onmouseover = () => { closeButton.style.color = '#333'; };
closeButton.onmouseout = () => { closeButton.style.color = '#999'; };
closeButton.onclick = () => {
floatWindow.remove();
};
const collapseButton = document.createElement('button');
collapseButton.textContent = '-';
collapseButton.style.background = 'none';
collapseButton.style.border = 'none';
collapseButton.style.cursor = 'pointer';
collapseButton.style.fontSize = '16px';
collapseButton.style.color = '#999';
collapseButton.style.transition = 'color 0.3s';
collapseButton.onmouseover = () => { collapseButton.style.color = '#333'; };
collapseButton.onmouseout = () => { collapseButton.style.color = '#999'; };
collapseButton.onclick = toggleCollapse;
const resizeButton = document.createElement('button');
resizeButton.textContent = '🔍';
resizeButton.style.background = 'none';
resizeButton.style.border = 'none';
resizeButton.style.cursor = 'pointer';
resizeButton.style.fontSize = '16px';
resizeButton.style.color = '#999';
resizeButton.style.transition = 'color 0.3s';
resizeButton.onmouseover = () => { resizeButton.style.color = '#333'; };
resizeButton.onmouseout = () => { resizeButton.style.color = '#999'; };
resizeButton.onclick = toggleResize;
titleBar.appendChild(titleLabel);
titleBar.appendChild(resizeButton);
titleBar.appendChild(collapseButton);
titleBar.appendChild(closeButton);
const navBar = document.createElement('div');
navBar.style.display = 'flex';
navBar.style.marginBottom = '10px';
const homeButton = createNavButton('首页', showHomeContent);
const aiGenButton = createNavButton('论文生成', showAIGenContent);
const myPageButton = createNavButton('个人信息', showMyPageContent);
navBar.appendChild(homeButton);
navBar.appendChild(aiGenButton);
navBar.appendChild(myPageButton);
const contentArea = document.createElement('div');
contentArea.id = 'content-area';
contentArea.style.height = 'calc(100% - 70px)'; // 根据标题栏和导航栏的高度调整
contentArea.style.overflowY = 'auto';
contentArea.style.paddingTop = '10px';
floatWindow.appendChild(titleBar);
floatWindow.appendChild(navBar);
floatWindow.appendChild(contentArea);
document.body.appendChild(floatWindow);
showHomeContent();
function createNavButton(label, onClickHandler) {
const button = document.createElement('button');
button.textContent = label;
button.style.flex = '1';
button.style.textAlign = 'center';
button.style.padding = '10px 15px';
button.style.border = 'none';
button.style.marginRight = '5px';
button.style.cursor = 'pointer';
button.style.backgroundColor = '#f0f0f0';
button.style.borderRadius = '4px';
button.style.transition = 'background-color 0.3s, box-shadow 0.3s';
button.onmouseover = () => { button.style.backgroundColor = '#e0e0e0'; button.style.boxShadow = '0 2px 5px rgba(0,0,0,0.1)'; };
button.onmouseout = () => { button.style.backgroundColor = '#f0f0f0'; button.style.boxShadow = 'none'; };
button.onclick = () => {
Array.from(document.querySelectorAll('.nav-button')).forEach(btn => btn.style.backgroundColor = '#f0f0f0');
button.style.backgroundColor = '#d0d0d0';
onClickHandler();
};
button.classList.add('nav-button');
return button;
}
function showHomeContent() {
const contentArea = document.getElementById('content-area');
contentArea.innerHTML = `
首页
欢迎来到神兽论文!这里是您的起点。
登录地址:神兽论文
`;
const submitOrderButton = contentArea.querySelector('#submit-order');
submitOrderButton.onclick = () => {
const orderTypeSelect = contentArea.querySelector('#order-type');
const selectedValue = orderTypeSelect.value;
if (selectedValue) {
alert(`您选择了: ${selectedValue}`);
} else {
alert('请选择一个订单类型');
}
};
}
function showAIGenContent() {
const contentArea = document.getElementById('content-area');
contentArea.innerHTML = `
论文生成模范
这里展示神兽论文生成的内容。
您可以在这里查看各种神兽论文生成的结果。
`;
const generateContentButton = contentArea.querySelector('#generate-content');
generateContentButton.onclick = () => {
const aiScenarioSelect = contentArea.querySelector('#ai-scenario');
const selectedValue = aiScenarioSelect.value;
if (selectedValue) {
alert(`您选择了: ${selectedValue}`);
} else {
alert('请选择一个AI生成场景');
}
};
const iconGenerateButton = contentArea.querySelector('#icon-generate');
iconGenerateButton.onclick = showIconGenerationPopup;
const degradeAIGCButton = contentArea.querySelector('#degrade-aigc');
degradeAIGCButton.onclick = showDegradeAIGCPopup;
}
function showMyPageContent() {
const contentArea = document.getElementById('content-area');
contentArea.innerHTML = `
个人中心
这是您的个人中心页面。
您可以在这一部分管理自己的信息和设置。
`;
const contactMeButton = contentArea.querySelector('#contact-me');
contactMeButton.onclick = showContactInfo;
const viewRecordsButton = contentArea.querySelector('#view-records');
viewRecordsButton.onclick = showGenerationRecords;
const priceTableButton = contentArea.querySelector('#price-table');
priceTableButton.onclick = showPriceTableContent;
}
function showContactInfo() {
const contentArea = document.getElementById('content-area');
contentArea.innerHTML = `
联系我们
联系方式QQ群: 74028813
WX号: 暂无
`;
const backButton = contentArea.querySelector('#back-to-my-page');
backButton.onclick = showMyPageContent;
}
function showGenerationRecords() {
const contentArea = document.getElementById('content-area');
contentArea.innerHTML = `
生成记录
| ID |
生成名称 |
任务状态 |
操作 |
时间 |
| LW032 |
论文提纲 |
进行中 |
|
2023-10-01 12:34:56 |
| LW033 |
实习日报 |
进行中 |
|
2023-10-02 08:12:34 |
`;
const queryButtons = contentArea.querySelectorAll('.query-btn');
queryButtons.forEach(button => {
button.onclick = () => {
const recordId = button.getAttribute('data-id');
alert(`查询记录 ID: ${recordId}`);
};
});
const paramsButtons = contentArea.querySelectorAll('.params-btn');
paramsButtons.forEach(button => {
button.onclick = () => {
const recordId = button.getAttribute('data-id');
alert(`查看记录 ID: ${recordId} 的参数`);
};
});
}
function showPriceTableContent() {
const contentArea = document.getElementById('content-area');
contentArea.innerHTML = `
论文接单价格表
论文接单格式(填好后才能报价)
题目:朔州市鑫众和物业公司智慧社区建设及管理效能提升研究
字数:8k-1w
查重:20以内
学校:吕梁学院
学历:本
目的:学位
其它:无
论文开题等格式模板一并发送!
---------------------------------------------------------
论文交单格式(填好后才能报价)
题目:已有[请填写具体题目]/自拟/选题
字数:
查重:
学校:
学历:专/本/自考/国开
目的:作业/毕业/学位
其它:无/开题报告/任务书
论文开题等格式模板一并发送! 等格式,其它格式论文也可以接,谢谢合作!
联系人qq:417545796
`;
const backButton = contentArea.querySelector('#back-to-my-page');
backButton.onclick = showMyPageContent;
}
let isCollapsed = false;
function toggleCollapse() {
if (isCollapsed) {
navBar.style.display = 'flex';
contentArea.style.height = 'calc(100% - 70px)';
collapseButton.textContent = '-';
} else {
navBar.style.display = 'none';
contentArea.style.height = 'calc(100% - 30px)';
collapseButton.textContent = '+';
}
isCollapsed = !isCollapsed;
}
let isResized = false;
function toggleResize() {
if (isResized) {
floatWindow.style.width = '300px';
floatWindow.style.height = '400px';
resizeButton.textContent = '🔍';
} else {
floatWindow.style.width = '600px';
floatWindow.style.height = '600px';
resizeButton.textContent = '🔧';
}
isResized = !isResized;
}
let offsetX, offsetY;
titleBar.addEventListener('mousedown', (e) => {
offsetX = e.clientX - floatWindow.offsetLeft;
offsetY = e.clientY - floatWindow.offsetTop;
document.addEventListener('mousemove', mouseMoveHandler);
document.addEventListener('mouseup', mouseUpHandler);
});
function mouseMoveHandler(e) {
floatWindow.style.left = `${e.clientX - offsetX}px`;
floatWindow.style.top = `${e.clientY - offsetY}px`;
}
function mouseUpHandler() {
document.removeEventListener('mousemove', mouseMoveHandler);
document.removeEventListener('mouseup', mouseUpHandler);
}
function showIconGenerationPopup() {
const popup = document.createElement('div');
popup.style.position = 'fixed';
popup.style.top = '50%';
popup.style.left = '50%';
popup.style.transform = 'translate(-50%, -50%)';
popup.style.width = '400px';
popup.style.height = '500px';
popup.style.backgroundColor = '#fff';
popup.style.border = '1px solid #ccc';
popup.style.boxShadow = '0 2px 10px rgba(0,0,0,0.1)';
popup.style.zIndex = '10000';
popup.style.padding = '20px';
popup.style.boxSizing = 'border-box';
popup.style.fontFamily = 'Arial, sans-serif';
const closePopupButton = document.createElement('button');
closePopupButton.textContent = 'X';
closePopupButton.style.position = 'absolute';
closePopupButton.style.top = '10px';
closePopupButton.style.right = '10px';
closePopupButton.style.background = 'none';
closePopupButton.style.border = 'none';
closePopupButton.style.cursor = 'pointer';
closePopupButton.style.fontSize = '16px';
closePopupButton.style.color = '#999';
closePopupButton.style.transition = 'color 0.3s';
closePopupButton.onmouseover = () => { closePopupButton.style.color = '#333'; };
closePopupButton.onmouseout = () => { closePopupButton.style.color = '#999'; };
closePopupButton.onclick = () => {
popup.remove();
};
const popupTitle = document.createElement('h2');
popupTitle.textContent = '图标生成选项';
popupTitle.style.marginBottom = '20px';
const optionsContainer = document.createElement('div');
optionsContainer.style.display = 'grid';
optionsContainer.style.gridTemplateColumns = 'repeat(auto-fill, minmax(100px, 1fr))';
optionsContainer.style.gap = '10px';
const icons = [
'添加数据',
'插入表格',
'Word原生图表',
'Matplotlib图表',
'Mermaid图表',
'插入代码',
'插入流程图',
'E-R图',
'插入类图',
'插入架构图',
'插入时序图',
'插入饼图',
'插入XY图',
'插入思维导图'
];
icons.forEach(icon => {
const optionDiv = document.createElement('div');
optionDiv.style.display = 'flex';
optionDiv.style.flexDirection = 'column';
optionDiv.style.alignItems = 'center';
optionDiv.style.justifyContent = 'center';
optionDiv.style.border = '1px solid #ccc';
optionDiv.style.borderRadius = '4px';
optionDiv.style.padding = '10px';
optionDiv.style.cursor = 'pointer';
optionDiv.style.transition = 'background-color 0.3s';
optionDiv.onmouseover = () => { optionDiv.style.backgroundColor = '#f0f0f0'; };
optionDiv.onmouseout = () => { optionDiv.style.backgroundColor = '#fff'; };
optionDiv.onclick = () => {
alert(`您选择了: ${icon}`);
popup.remove();
};
const iconText = document.createElement('span');
iconText.textContent = icon;
iconText.style.fontSize = '14px';
iconText.style.color = '#333';
optionDiv.appendChild(iconText);
optionsContainer.appendChild(optionDiv);
});
popup.appendChild(closePopupButton);
popup.appendChild(popupTitle);
popup.appendChild(optionsContainer);
document.body.appendChild(popup);
let popupOffsetX, popupOffsetY;
popupTitle.addEventListener('mousedown', (e) => {
popupOffsetX = e.clientX - popup.offsetLeft;
popupOffsetY = e.clientY - popup.offsetTop;
document.addEventListener('mousemove', popupMouseMoveHandler);
document.addEventListener('mouseup', popupMouseUpHandler);
});
function popupMouseMoveHandler(e) {
popup.style.left = `${e.clientX - popupOffsetX}px`;
popup.style.top = `${e.clientY - popupOffsetY}px`;
}
function popupMouseUpHandler() {
document.removeEventListener('mousemove', popupMouseMoveHandler);
document.removeEventListener('mouseup', popupMouseUpHandler);
}
}
function showDegradeAIGCPopup() {
const popup = document.createElement('div');
popup.style.position = 'fixed';
popup.style.top = '50%';
popup.style.left = '50%';
popup.style.transform = 'translate(-50%, -50%)';
popup.style.width = '400px';
popup.style.height = '350px';
popup.style.backgroundColor = '#fff';
popup.style.border = '1px solid #ccc';
popup.style.boxShadow = '0 2px 10px rgba(0,0,0,0.1)';
popup.style.zIndex = '10000';
popup.style.padding = '20px';
popup.style.boxSizing = 'border-box';
popup.style.fontFamily = 'Arial, sans-serif';
const closePopupButton = document.createElement('button');
closePopupButton.textContent = 'X';
closePopupButton.style.position = 'absolute';
closePopupButton.style.top = '10px';
closePopupButton.style.right = '10px';
closePopupButton.style.background = 'none';
closePopupButton.style.border = 'none';
closePopupButton.style.cursor = 'pointer';
closePopupButton.style.fontSize = '16px';
closePopupButton.style.color = '#999';
closePopupButton.style.transition = 'color 0.3s';
closePopupButton.onmouseover = () => { closePopupButton.style.color = '#333'; };
closePopupButton.onmouseout = () => { closePopupButton.style.color = '#999'; };
closePopupButton.onclick = () => {
popup.remove();
};
const popupTitle = document.createElement('h2');
popupTitle.textContent = '降AIGC/降重';
popupTitle.style.marginBottom = '20px';
const instructions = document.createElement('p');
instructions.textContent = `
使用提示:
选择上传内容时最大可支持1000字符,
选择上传文件时最大可支持30000字符。
请上传 .docx 文件,不要直接上传土拨鼠生成好的论文,先在WPS中另存为再去上传。
上传可能会删除表格、增删章节等,使用后请检查论文格式是否正确。
`;
instructions.style.color = '#555';
const fileUploadContainer = document.createElement('div');
fileUploadContainer.style.marginBottom = '10px';
const fileUploadLabel = document.createElement('label');
fileUploadLabel.htmlFor = 'file-upload';
fileUploadLabel.textContent = '上传文件 (.docx): ';
fileUploadLabel.style.display = 'block';
fileUploadLabel.style.marginBottom = '5px';
const fileUploadInput = document.createElement('input');
fileUploadInput.type = 'file';
fileUploadInput.id = 'file-upload';
fileUploadInput.accept = '.docx';
fileUploadInput.style.marginBottom = '10px';
fileUploadInput.style.border = '1px solid black';
fileUploadContainer.appendChild(fileUploadLabel);
fileUploadContainer.appendChild(fileUploadInput);
const contentUploadContainer = document.createElement('div');
const contentUploadLabel = document.createElement('label');
contentUploadLabel.htmlFor = 'content-upload';
contentUploadLabel.textContent = '上传内容: ';
contentUploadLabel.style.display = 'block';
contentUploadLabel.style.marginBottom = '5px';
const contentUploadTextarea = document.createElement('textarea');
contentUploadTextarea.id = 'content-upload';
contentUploadTextarea.rows = '5';
contentUploadTextarea.cols = '40';
contentUploadTextarea.placeholder = '在此输入论文内容...';
contentUploadTextarea.maxLength = '1000';
contentUploadTextarea.style.border = '1px solid black';
contentUploadContainer.appendChild(contentUploadLabel);
contentUploadContainer.appendChild(contentUploadTextarea);
const uploadSuccessMessage = document.createElement('div');
uploadSuccessMessage.id = 'upload-success-message';
uploadSuccessMessage.style.color = 'green';
uploadSuccessMessage.style.marginTop = '10px';
uploadSuccessMessage.style.display = 'none';
const submitButton = document.createElement('button');
submitButton.textContent = '提交保存';
submitButton.style.padding = '10px 20px';
submitButton.style.backgroundColor = '#007bff';
submitButton.style.color = 'white';
submitButton.style.border = 'none';
submitButton.style.borderRadius = '4px';
submitButton.style.cursor = 'pointer';
submitButton.style.transition = 'background-color 0.3s';
submitButton.onclick = handleSubmission;
popup.appendChild(closePopupButton);
popup.appendChild(popupTitle);
popup.appendChild(instructions);
popup.appendChild(fileUploadContainer);
popup.appendChild(contentUploadContainer);
popup.appendChild(submitButton);
popup.appendChild(uploadSuccessMessage);
document.body.appendChild(popup);
let popupOffsetX, popupOffsetY;
popupTitle.addEventListener('mousedown', (e) => {
popupOffsetX = e.clientX - popup.offsetLeft;
popupOffsetY = e.clientY - popup.offsetTop;
document.addEventListener('mousemove', popupMouseMoveHandler);
document.addEventListener('mouseup', popupMouseUpHandler);
});
function popupMouseMoveHandler(e) {
popup.style.left = `${e.clientX - popupOffsetX}px`;
popup.style.top = `${e.clientY - popupOffsetY}px`;
}
function popupMouseUpHandler() {
document.removeEventListener('mousemove', popupMouseMoveHandler);
document.removeEventListener('mouseup', popupMouseUpHandler);
}
fileUploadInput.addEventListener('change', () => {
if (fileUploadInput.files.length > 0) {
const fileSize = fileUploadInput.files[0].size;
if (fileSize <= 1000000) {
document.getElementById('upload-success-message').textContent = '上传成功!';
document.getElementById('upload-success-message').style.display = 'block';
} else {
alert('文件大小超过限制,请上传小于1000KB的文件。');
document.getElementById('upload-success-message').textContent = '';
document.getElementById('upload-success-message').style.display = 'none';
}
} else {
document.getElementById('upload-success-message').textContent = '';
document.getElementById('upload-success-message').style.display = 'none';
}
});
contentUploadTextarea.addEventListener('input', () => {
if (contentUploadTextarea.value.length > 0 && contentUploadTextarea.value.length <= 1000) {
document.getElementById('upload-success-message').textContent = '上传成功!';
document.getElementById('upload-success-message').style.display = 'block';
} else {
document.getElementById('upload-success-message').textContent = '';
document.getElementById('upload-success-message').style.display = 'none';
}
});
function handleSubmission() {
const messageElement = document.getElementById('upload-success-message');
messageElement.textContent = '正在提交...';
messageElement.style.color = 'orange';
messageElement.style.display = 'block';
submitButton.disabled = true;
setTimeout(() => {
messageElement.textContent = '上传失败';
messageElement.style.color = 'red';
submitButton.disabled = false;
}, 60000); // 1分钟
}
}
})();