Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ <h2 class="text-center mb-4">🔐 OpenList Token 获取工具</h2>
<option value="dropboxs_go">Drop Box (OAuth2) 跳转登录</option>
<option value="googleui_go">GoogleDrive Login (OAuth2)</option>
<option value="yandexui_go">YandexDrive Login (OAuth2)</option>
<option value="pds_go">Aliyun PDS (OAuth2) 跳转登录</option>
</select>
</div>

Expand Down Expand Up @@ -84,6 +85,65 @@ <h2 class="text-center mb-4">🔐 OpenList Token 获取工具</h2>
<label for="refresh-token" class="form-label">刷新令牌(Refresh Token)</label>
<textarea id="refresh-token" class="form-control" rows="3" readonly onclick="autoCopy(this)"></textarea>
</div>

<div id="pds-views" hidden>
<div class="mb-3">
<label for="pds-device-name-input" class="form-label">Device Name</label>
<input type="text" id="pds-device-name-input" class="form-control">
</div>

<div class="mb-3">
<label for="pds-user-code-output" class="form-label">User Code</label>
<input type="text" id="pds-user-code-output" class="form-control" readonly onclick="autoCopy(this)">
</div>

<div class="d-grid gap-2 mb-3">
<button class="btn btn-primary" id="pds-open-auth-button" onclick="openPdsAuthURL()" disabled>打开授权页面</button>
</div>

<div class="mb-3">
<label for="pds-status-output" class="form-label">授权状态</label>
<input type="text" id="pds-status-output" class="form-control" readonly onclick="autoCopy(this)">
</div>

<div class="mb-3">
<label for="pds-token-type-input" class="form-label">Token Type</label>
<input type="text" id="pds-token-type-input" class="form-control">
</div>

<div class="mb-3">
<label for="pds-expires-at-input" class="form-label">Expires At</label>
<input type="number" id="pds-expires-at-input" class="form-control">
</div>

<div class="d-grid gap-2 mb-3">
<button class="btn btn-primary" onclick="loadPdsDrives()">列出 Drive</button>
</div>

<div class="mb-3">
<label for="pds-drive-select" class="form-label">Drive</label>
<select id="pds-drive-select" class="form-select"></select>
</div>

<div class="mb-3">
<label for="pds-drive-id-input" class="form-label">Drive ID</label>
<input type="text" id="pds-drive-id-input" class="form-control">
</div>

<div class="mb-3">
<label for="pds-root-folder-id-input" class="form-label">Root Folder ID</label>
<input type="text" id="pds-root-folder-id-input" class="form-control">
</div>

<div class="d-grid gap-2 mb-3">
<button class="btn btn-primary" onclick="buildPDSConfig()">生成配置</button>
</div>

<div class="mb-3">
<label for="pds-config-output" class="form-label">OpenList PDS 配置</label>
<textarea id="pds-config-output" class="form-control" rows="12" readonly onclick="autoCopy(this)"></textarea>
</div>
</div>
<div id="sharepoint-views">
<div class="mb-3" id="sharepoint-url-view">
<label for="sharepoint-url" class="form-label">SharePoint SiteURL</label>
Expand Down Expand Up @@ -173,6 +233,7 @@ <h4>隐私政策和使用条款</h4>
</div>

<script src="/static/event.js"></script>
<script src="/static/pds.js"></script>
<script src="/static/login.js"></script>
<script src="/static/token.js"></script>
<script src="/static/theme.js"></script>
Expand Down
34 changes: 34 additions & 0 deletions public/static/event.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,40 @@ function onSelect() {
const appSecretContainer = client_key_input.closest('.mb-3');
const serverUseContainer = server_use_input.closest('.mb-3');
const callbackContainer = direct_url_input.closest('.mb-3');
const clientIdLabel = clientIdContainer.querySelector('label');
const appSecretLabel = appSecretContainer.querySelector('label');
const callbackLabel = callbackContainer.querySelector('label');
const pdsViews = document.getElementById('pds-views');
const accessTokenInput = document.getElementById('access-token');
const refreshTokenInput = document.getElementById('refresh-token');
clientIdLabel.textContent = '客户端ID(ClientID/AppID)';
appSecretLabel.textContent = '应用秘钥 (AppKey/Secret)';
callbackLabel.textContent = '回调地址(Callback URL)';
pdsViews.hidden = true;
accessTokenInput.readOnly = true;
refreshTokenInput.readOnly = true;
accessTokenInput.setAttribute('onclick', 'autoCopy(this)');
refreshTokenInput.setAttribute('onclick', 'autoCopy(this)');
if (driver_txt_input.value === "pds_go") {
clientIdContainer.style.display = 'block';
appSecretContainer.style.display = 'block';
serverUseContainer.style.display = 'none';
secret_key_views.hidden = true;
callbackContainer.style.display = 'block';
clientIdLabel.textContent = 'PDS Domain ID';
appSecretLabel.textContent = 'Client ID';
callbackLabel.textContent = '授权链接';
direct_url_input.value = '';
pdsViews.hidden = false;
accessTokenInput.readOnly = false;
refreshTokenInput.readOnly = false;
accessTokenInput.removeAttribute('onclick');
refreshTokenInput.removeAttribute('onclick');
shared_all_views.hidden = true;
shared_btn_views.classList.remove('d-grid');
if (typeof initPDSDefaults === 'function') initPDSDefaults();
return;
}
// 阿里云盘扫码登录v2不需要客户端ID、应用机密和回调地址 ================
if (driver_txt_input.value === "alicloud_cs"
|| driver_txt_input.value === "alicloud_tv"
Expand Down
5 changes: 5 additions & 0 deletions public/static/login.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ async function getLogin(refresh = false) {
const qrModalTitle = document.getElementById('qr-modal-title');
let driver_pre = driver_txt.split("_")[0]
let check_flag = true;
if (driver_txt === "pds_go") {
if (refresh) await refreshPdsToken();
else await startPdsLogin();
return;
}
// 阿里云盘扫码v2直接调用专用API,不需要构建传统的requests路径
if (driver_txt === "alicloud_cs" && !refresh) {
qrModalTitle.textContent = '阿里云盘扫码登录v2';
Expand Down
Loading