// ==UserScript==
// @name 阿里云盘多账号localStorage管理器
// @namespace http://tampermonkey-multiple-accounts
// @version 1.0.3
// @description 用于管理多个账号的localStorage信息
// @match https://www.aliyundrive.com/*
// @match https://www.alipan.com/*
// @grant GM_setValue
// @grant GM_getValue
// @downloadURL https://update.greasyfork.icu/scripts/466488/%E9%98%BF%E9%87%8C%E4%BA%91%E7%9B%98%E5%A4%9A%E8%B4%A6%E5%8F%B7localStorage%E7%AE%A1%E7%90%86%E5%99%A8.user.js
// @updateURL https://update.greasyfork.icu/scripts/466488/%E9%98%BF%E9%87%8C%E4%BA%91%E7%9B%98%E5%A4%9A%E8%B4%A6%E5%8F%B7localStorage%E7%AE%A1%E7%90%86%E5%99%A8.meta.js
// ==/UserScript==
(function () {
'use strict';
// 定义变量
var accounts = GM_getValue('accounts', {});
var currentAccount = null;
var currentLocalStorage = null;
var currentHost = window.location.host;
var currentName = JSON.parse(localStorage.token).nick_name || ''
// 创建设置按钮
var settingsButton = document.createElement('div');
settingsButton.innerHTML = `
`;
document.body.appendChild(settingsButton);
// 显示管理面板
function showManagementPanel() {
// 移除之前的管理页面
var previousPanel = document.getElementById('multiple-accounts-panel');
if (previousPanel) {
previousPanel.parentNode.removeChild(previousPanel);
}
// 创建弹出元素
var panel = document.createElement('div');
panel.id = 'multiple-accounts-panel';
panel.style.position = 'fixed';
panel.style.top = '0';
panel.style.left = '0';
panel.style.width = '100%';
panel.style.height = '100%';
panel.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
panel.style.zIndex = '9999';
panel.innerHTML = `
多账号localStorage管理器
${Object.keys(accounts[currentHost] || {}).map(function (account) {
return `
`;
}).join('')}
`;
document.body.appendChild(panel);
// 绑定事件
panel.addEventListener('click', function (e) {
var accountName = e.target.getAttribute('data-account');
if (e.target.classList.contains('login-button')) {
localStorage.clear();
var data = accounts[currentHost][accountName];
for (var key in data) {
localStorage.setItem(key, data[key]);
}
location.reload();
} else if (e.target.classList.contains('update-button')) {
accounts[currentHost][accountName] = getLocalStorageData();
GM_setValue('accounts', accounts);
showManagementPanel();
} else if (e.target.classList.contains('delete-button')) {
delete accounts[currentHost][accountName];
GM_setValue('accounts', accounts);
showManagementPanel();
}
else if(e.target == panel){
panel.parentNode.removeChild(panel);
}
});
// 保存当前账号
document.getElementById('save-current-button').onclick = function () {
var accountName = document.getElementById('account-name-input').value.trim();
if (accountName === '') {
alert('请输入账号名称');
return;
}
if (!accounts[currentHost]) {
accounts[currentHost] = {};
}
accounts[currentHost][accountName] = getLocalStorageData();
GM_setValue('accounts', accounts);
showManagementPanel();
};
}
// 获取当前localStorage数据
function getLocalStorageData() {
var data = {};
for (var i = 0; i < localStorage.length; i++) {
var key = localStorage.key(i);
data[key] = localStorage.getItem(key);
}
return data;
}
// 设置按钮点击事件
settingsButton.onclick = function () {
showManagementPanel();
};
})();