feat: 添加 CPA 回调模式支持,允许选择第六步或第八步回调
This commit is contained in:
@@ -56,6 +56,8 @@ const rowVpsPassword = document.getElementById('row-vps-password');
|
||||
const inputVpsPassword = document.getElementById('input-vps-password');
|
||||
const rowLocalCpaStep9Mode = document.getElementById('row-local-cpa-step9-mode');
|
||||
const localCpaStep9ModeButtons = Array.from(document.querySelectorAll('[data-local-cpa-step9-mode]'));
|
||||
const rowCpaCallbackMode = document.getElementById('row-cpa-callback-mode');
|
||||
const cpaCallbackModeButtons = Array.from(document.querySelectorAll('[data-cpa-callback-mode]'));
|
||||
const rowSub2ApiUrl = document.getElementById('row-sub2api-url');
|
||||
const inputSub2ApiUrl = document.getElementById('input-sub2api-url');
|
||||
const rowSub2ApiEmail = document.getElementById('row-sub2api-email');
|
||||
@@ -190,6 +192,7 @@ const AUTO_RUN_MAX_RETRIES_PER_ROUND = 3;
|
||||
const AUTO_STEP_DELAY_MIN_SECONDS = 0;
|
||||
const AUTO_STEP_DELAY_MAX_SECONDS = 600;
|
||||
const DEFAULT_LOCAL_CPA_STEP9_MODE = 'submit';
|
||||
const DEFAULT_CPA_CALLBACK_MODE = 'step8';
|
||||
const MAIL_2925_MODE_PROVIDE = 'provide';
|
||||
const MAIL_2925_MODE_RECEIVE = 'receive';
|
||||
const DEFAULT_MAIL_2925_MODE = MAIL_2925_MODE_PROVIDE;
|
||||
@@ -1121,6 +1124,7 @@ function collectSettingsPayload() {
|
||||
vpsUrl: inputVpsUrl.value.trim(),
|
||||
vpsPassword: inputVpsPassword.value,
|
||||
localCpaStep9Mode: getSelectedLocalCpaStep9Mode(),
|
||||
cpaCallbackMode: getSelectedCpaCallbackMode(),
|
||||
sub2apiUrl: inputSub2ApiUrl.value.trim(),
|
||||
sub2apiEmail: inputSub2ApiEmail.value.trim(),
|
||||
sub2apiPassword: inputSub2ApiPassword.value,
|
||||
@@ -1162,6 +1166,12 @@ function normalizeLocalCpaStep9Mode(value = '') {
|
||||
: DEFAULT_LOCAL_CPA_STEP9_MODE;
|
||||
}
|
||||
|
||||
function normalizeCpaCallbackMode(value = '') {
|
||||
return String(value || '').trim().toLowerCase() === 'step6'
|
||||
? 'step6'
|
||||
: DEFAULT_CPA_CALLBACK_MODE;
|
||||
}
|
||||
|
||||
function normalizeMail2925Mode(value = '') {
|
||||
return String(value || '').trim().toLowerCase() === MAIL_2925_MODE_RECEIVE
|
||||
? MAIL_2925_MODE_RECEIVE
|
||||
@@ -1191,6 +1201,20 @@ function setLocalCpaStep9Mode(mode) {
|
||||
});
|
||||
}
|
||||
|
||||
function getSelectedCpaCallbackMode() {
|
||||
const activeButton = cpaCallbackModeButtons.find((button) => button.classList.contains('is-active'));
|
||||
return normalizeCpaCallbackMode(activeButton?.dataset.cpaCallbackMode);
|
||||
}
|
||||
|
||||
function setCpaCallbackMode(mode) {
|
||||
const resolvedMode = normalizeCpaCallbackMode(mode);
|
||||
cpaCallbackModeButtons.forEach((button) => {
|
||||
const active = button.dataset.cpaCallbackMode === resolvedMode;
|
||||
button.classList.toggle('is-active', active);
|
||||
button.setAttribute('aria-pressed', String(active));
|
||||
});
|
||||
}
|
||||
|
||||
function getSelectedMail2925Mode() {
|
||||
const activeButton = mail2925ModeButtons.find((button) => button.classList.contains('is-active'));
|
||||
return normalizeMail2925Mode(activeButton?.dataset.mail2925Mode);
|
||||
@@ -1437,6 +1461,7 @@ function applySettingsState(state) {
|
||||
inputVpsUrl.value = state?.vpsUrl || '';
|
||||
inputVpsPassword.value = state?.vpsPassword || '';
|
||||
setLocalCpaStep9Mode(state?.localCpaStep9Mode);
|
||||
setCpaCallbackMode(state?.cpaCallbackMode);
|
||||
selectPanelMode.value = state?.panelMode || 'cpa';
|
||||
inputSub2ApiUrl.value = state?.sub2apiUrl || '';
|
||||
inputSub2ApiEmail.value = state?.sub2apiEmail || '';
|
||||
@@ -2766,6 +2791,7 @@ function updatePanelModeUI() {
|
||||
rowVpsUrl.style.display = useSub2Api ? 'none' : '';
|
||||
rowVpsPassword.style.display = useSub2Api ? 'none' : '';
|
||||
rowLocalCpaStep9Mode.style.display = useSub2Api ? 'none' : '';
|
||||
rowCpaCallbackMode.style.display = useSub2Api ? 'none' : '';
|
||||
rowSub2ApiUrl.style.display = useSub2Api ? '' : 'none';
|
||||
rowSub2ApiEmail.style.display = useSub2Api ? '' : 'none';
|
||||
rowSub2ApiPassword.style.display = useSub2Api ? '' : 'none';
|
||||
@@ -4033,6 +4059,18 @@ localCpaStep9ModeButtons.forEach((button) => {
|
||||
});
|
||||
});
|
||||
|
||||
cpaCallbackModeButtons.forEach((button) => {
|
||||
button.addEventListener('click', () => {
|
||||
const nextMode = button.dataset.cpaCallbackMode;
|
||||
if (getSelectedCpaCallbackMode() === normalizeCpaCallbackMode(nextMode)) {
|
||||
return;
|
||||
}
|
||||
setCpaCallbackMode(nextMode);
|
||||
markSettingsDirty(true);
|
||||
saveSettings({ silent: true }).catch(() => { });
|
||||
});
|
||||
});
|
||||
|
||||
hotmailServiceModeButtons.forEach((button) => {
|
||||
button.addEventListener('click', () => {
|
||||
if (button.disabled) {
|
||||
@@ -4805,6 +4843,9 @@ chrome.runtime.onMessage.addListener((message, _sender, sendResponse) => {
|
||||
if (message.payload.localCpaStep9Mode !== undefined) {
|
||||
setLocalCpaStep9Mode(message.payload.localCpaStep9Mode);
|
||||
}
|
||||
if (message.payload.cpaCallbackMode !== undefined) {
|
||||
setCpaCallbackMode(message.payload.cpaCallbackMode);
|
||||
}
|
||||
if (message.payload.oauthUrl !== undefined) {
|
||||
displayOauthUrl.textContent = message.payload.oauthUrl || '等待中...';
|
||||
displayOauthUrl.classList.toggle('has-value', Boolean(message.payload.oauthUrl));
|
||||
@@ -4968,6 +5009,7 @@ initHotmailListExpandedState();
|
||||
updateSaveButtonState();
|
||||
updateConfigMenuControls();
|
||||
setLocalCpaStep9Mode(DEFAULT_LOCAL_CPA_STEP9_MODE);
|
||||
setCpaCallbackMode(DEFAULT_CPA_CALLBACK_MODE);
|
||||
setMail2925Mode(DEFAULT_MAIL_2925_MODE);
|
||||
initializeReleaseInfo().catch((err) => {
|
||||
console.error('Failed to initialize release info:', err);
|
||||
|
||||
Reference in New Issue
Block a user