重构duckduckgo邮箱获取

This commit is contained in:
QLHazyCoder
2026-05-12 02:26:46 +08:00
parent 745010d6c9
commit f81cc74c29
16 changed files with 492 additions and 53 deletions
+20 -10
View File
@@ -14,6 +14,7 @@
getCloudflareTempEmailAddressFromResponse,
getCloudflareTempEmailConfig,
getCustomEmailPoolEmail,
getRegistrationEmailBaseline,
getState,
ensureMail2925AccountForFlow,
joinCloudflareTempEmailUrl,
@@ -59,7 +60,7 @@
const localPart = String(options.localPart || '').trim().toLowerCase() || generateCloudflareAliasLocalPart();
const aliasEmail = `${localPart}@${domain}`;
await setEmailState(aliasEmail);
await setEmailState(aliasEmail, { source: 'generated:cloudflare' });
await addLog(`Cloudflare 邮箱:已生成 ${aliasEmail}`, 'ok');
return aliasEmail;
}
@@ -161,7 +162,7 @@
throw new Error('Cloudflare Temp Email 未返回可用邮箱地址。');
}
await setEmailState(address);
await setEmailState(address, { source: 'generated:cloudflare-temp-email' });
await addLog(`Cloudflare Temp Email:已生成 ${address}`, 'ok');
return address;
}
@@ -174,7 +175,7 @@
throwIfStopped();
const {
generateNew = true,
previousEmail = '',
baselineEmail = '',
} = options;
await addLog(`Duck 邮箱:正在打开自动填充设置(${generateNew ? '生成新地址' : '复用当前地址'}...`);
@@ -185,7 +186,7 @@
source: 'background',
payload: {
generateNew,
previousEmail: normalizeEmailForComparison(previousEmail),
baselineEmail: normalizeEmailForComparison(baselineEmail),
},
});
@@ -196,7 +197,7 @@
throw new Error('未返回 Duck 邮箱地址。');
}
await setEmailState(result.email);
await setEmailState(result.email, { source: 'generated:duck' });
await addLog(`Duck 邮箱:${result.generated ? '已生成' : '已读取'} ${result.email}`, 'ok');
return result.email;
}
@@ -214,7 +215,7 @@
);
}
await setEmailState(email);
await setEmailState(email, { source: 'generated:custom-pool' });
await addLog(`自定义邮箱池:已取用 ${email}`, 'ok');
return email;
}
@@ -253,7 +254,7 @@
}
const email = buildGeneratedAliasEmail(mergedState);
await setEmailState(email);
await setEmailState(email, { source: `generated:${provider || 'alias'}` });
await addLog(`${provider === 'gmail' ? 'Gmail +tag' : '2925'}:已生成 ${email}`, 'ok');
return email;
}
@@ -311,11 +312,20 @@
if (generator === CLOUDFLARE_TEMP_EMAIL_GENERATOR) {
return fetchCloudflareTempEmailAddress(mergedState, options);
}
const resolvedDuckBaselineEmail = typeof getRegistrationEmailBaseline === 'function'
? getRegistrationEmailBaseline(mergedState, {
preferredEmail: options.currentEmail,
fallbackEmail: options.baselineEmail,
})
: String(
options.currentEmail
|| options.baselineEmail
|| mergedState.email
|| ''
).trim();
return fetchDuckEmail({
...options,
previousEmail: options.previousEmail !== undefined
? options.previousEmail
: mergedState.email,
baselineEmail: resolvedDuckBaselineEmail,
});
}