您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
asaasda EYAN
- // ==UserScript==
- // @name ShareCODE
- // @namespace https://bbs.tampermonkey.net.cn/
- // @version 0.1.0
- // @description asaasda EYAN
- // @author HydroGest
- // @license MIT
- // @match http://121.36.38.167/
- // @grant GM_xmlhttpRequest
- // @grant unsafeWindow
- // @grant GM_setValue
- // @grant GM_getValue
- // @grant GM_deleteValue
- // ==/UserScript==
- (function() {
- 'use strict';
- const menuDiv = document.querySelectorAll('.menu')[2];
- if (menuDiv) {
- const newItem = document.createElement('div');
- newItem.className = 'item';
- newItem.innerHTML = '<i class="closed captioning icon"></i>加载共享文件';
- newItem.addEventListener('click', loadSharedFile);
- menuDiv.appendChild(newItem);
- }
- function loadSharedFile() {
- const pcode = prompt('请输入取件码');
- if (!pcode) {
- alert("错误的取件码!");
- return;
- }
- const code = getPublicCode(pcode);
- if (code) {
- sourceEditor.setValue(code);
- }
- }
- function generateRandomCode(length = 6) {
- let result = '';
- const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
- for (let i = 0; i < length; i++) {
- result += characters.charAt(Math.floor(Math.random() * characters.length));
- }
- return result;
- }
- function savePublicCode(code) {
- const pickUpCode = generateRandomCode();
- const expirationDate = new Date();
- expirationDate.setDate(expirationDate.getDate() + 1);
- // 使用 GM_setValue 来模拟 localStorage.setItem
- GM_setValue(pickUpCode, JSON.stringify({ code, expirationDate }));
- return pickUpCode;
- }
- function getPublicCode(pickUpCode) {
- const storedData = GM_getValue(pickUpCode);
- if (!storedData) {
- return null;
- }
- const { code, expirationDate } = JSON.parse(storedData);
- const currentDate = new Date();
- if (currentDate > expirationDate) {
- GM_deleteValue(pickUpCode);
- return null;
- }
- return code;
- }
- function shareFile(filename) {
- GM_xmlhttpRequest({
- method: 'GET',
- url: `/load_file_content?filename=${encodeURIComponent(filename)}`,
- onload: function(response) {
- const data = JSON.parse(response.responseText);
- if (data.success) {
- console.log(data.code);
- const code = savePublicCode(data.code);
- alert(`代码分享成功!取件码:${code}`);
- } else {
- alert('Failed to load file content: ' + data.message);
- }
- },
- onerror: function(error) {
- console.error('Error:', error);
- alert('An error occurred while loading file content.');
- }
- });
- }
- // 渲染文件列表
- function renderFileList() {
- const data = fileListData;
- const currentPage = fileListCurPage;
- console.log(data, currentPage);
- if (!data) {
- showFileList();
- return;
- }
- const fileListDiv = document.getElementById('file-list');
- fileListDiv.innerHTML = '';
- // 计算总页数
- const totalItems = data.files.length;
- const itemsPerPage = 8;
- totalPages = Math.ceil(totalItems / itemsPerPage);
- // 对文件列表按时间倒序排序
- data.files.sort((a, b) => new Date(b.created_time) - new Date(a.created_time));
- // 创建文件列表并进行分页显示
- const startIndex = (currentPage - 1) * itemsPerPage;
- const endIndex = Math.min(startIndex + itemsPerPage, totalItems);
- document.getElementById("cur-page").setAttribute("data-text", currentPage + "/" + totalPages);
- for (let i = startIndex; i < endIndex; i++) {
- const file = data.files[i];
- const fileItemDiv = document.createElement('div');
- fileItemDiv.className = 'item';
- fileItemDiv.style.display = 'flex';
- fileItemDiv.style.alignItems = 'center';
- fileItemDiv.style.justifyContent = 'space-between';
- fileItemDiv.style.marginBottom = '10px';
- const fileName = document.createElement('div');
- fileName.classList.add('content');
- fileName.style.flexGrow = '1';
- const filename = file.filename;
- const date = new Date(file.created_time.replace('GMT', 'UTC+8:00'));
- const time = date.toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' });
- // 创建包含编号和文件名的容器
- const fileInfoDiv = document.createElement('div');
- fileInfoDiv.style.display = 'flex';
- fileInfoDiv.style.alignItems = 'center';
- // 添加编号
- const fileNumber = document.createElement('span');
- fileNumber.textContent = `${i + 1}. `;
- fileNumber.style.color = '#000';
- fileNumber.style.fontWeight = 'bold';
- // 添加文件名
- const fileTitle = document.createElement('span');
- fileTitle.textContent = filename;
- fileTitle.style.color = '#007bff';
- // 将编号和文件名添加到容器中
- fileInfoDiv.appendChild(fileNumber);
- fileInfoDiv.appendChild(fileTitle);
- fileName.innerHTML = `
- ${fileInfoDiv.outerHTML}
- <div class="description">上次修改时间:${time}</div>
- `;
- const icon = document.createElement('i');
- icon.className = "large file middle aligned icon";
- const fileManage = document.createElement('div');
- fileManage.className = "right floated content";
- fileManage.style.display = 'flex';
- fileManage.style.gap = '10px';
- const fileButton = document.createElement('div');
- fileButton.className = 'ui button compact';
- fileButton.innerHTML = `<i class="folder open icon"></i>加载`;
- fileButton.style.writingMode = 'horizontal-tb';
- fileButton.style.whiteSpace = 'nowrap';
- fileButton.onclick = () => loadFileContent(file.filename);
- const deleteButton = document.createElement('div');
- deleteButton.className = 'ui red button compact';
- deleteButton.innerHTML = '<i class="trash icon"></i>';
- deleteButton.style.writingMode = 'horizontal-tb';
- deleteButton.style.whiteSpace = 'nowrap';
- deleteButton.onclick = () => deleteFile(file.filename, false);
- const shareButton = document.createElement('div');
- shareButton.className = 'ui button compact';
- shareButton.innerHTML = '<i class="share icon"></i>分享';
- shareButton.style.writingMode = 'horizontal-tb';
- shareButton.style.whiteSpace = 'nowrap';
- shareButton.onclick = () => shareFile(file.filename);
- const manageButtons = document.createElement('div');
- manageButtons.className = "ui buttons";
- manageButtons.appendChild(fileButton);
- manageButtons.appendChild(shareButton);
- manageButtons.appendChild(deleteButton);
- fileManage.append(manageButtons);
- fileItemDiv.appendChild(icon);
- fileItemDiv.appendChild(fileName);
- fileItemDiv.appendChild(fileManage);
- fileListDiv.appendChild(fileItemDiv);
- }
- }
- unsafeWindow.renderFileList = renderFileList;
- })();