Fengsuid commited on
Commit
73d7212
·
1 Parent(s): 8934785

feat: add DDG channel numbering in registration logs

Browse files

- Auto-assign DDG-1, DDG-2... labels to DDG providers
- Show channel label in mailbox creation logs and error messages
- Makes it easy to see which DDG account is being used or has hit limit

services/register/mail_provider.py CHANGED
@@ -289,6 +289,7 @@ class DDGMailProvider(BaseMailProvider):
289
 
290
  def __init__(self, entry: dict, conf: dict):
291
  super().__init__(conf, str(entry.get("provider_ref") or ""))
 
292
  self.ddg_token = str(entry["ddg_token"]).strip()
293
  self.cf_api_base = str(entry.get("api_base") or entry.get("cf_api_base") or "").rstrip("/")
294
  self.cf_inbox_jwt = str(entry.get("cf_inbox_jwt") or "").strip()
@@ -349,14 +350,14 @@ class DDGMailProvider(BaseMailProvider):
349
  ddg_address = f"{ddg_address_part}@duck.com"
350
 
351
  if _is_ddg_alias_duplicate(ddg_address):
352
- raise RuntimeError(f"DDG日上限已达,别名 {ddg_address} 已存在,自动切换邮箱提供商")
353
 
354
  _record_ddg_alias(ddg_address)
355
 
356
  if not self.cf_inbox_jwt:
357
  raise RuntimeError("DDGMail 需要 cf_inbox_jwt(DDG 转发目标的固定收件箱 JWT),请在邮箱配置中填写 CF Inbox JWT")
358
 
359
- return {"provider": self.name, "provider_ref": self.provider_ref, "address": ddg_address, "token": self.cf_inbox_jwt}
360
 
361
  def _parse_raw_recipient(self, raw_text: str) -> str:
362
  if not raw_text:
@@ -777,7 +778,16 @@ class YydsMailProvider(BaseMailProvider):
777
 
778
 
779
  def _entries(mail_config: dict) -> list[dict]:
780
- return [{**item, "provider_ref": f"{item['type']}#{index + 1}"} for index, item in enumerate(mail_config["providers"])]
 
 
 
 
 
 
 
 
 
781
 
782
 
783
  def _enabled_entries(mail_config: dict) -> list[dict]:
 
289
 
290
  def __init__(self, entry: dict, conf: dict):
291
  super().__init__(conf, str(entry.get("provider_ref") or ""))
292
+ self.label = str(entry.get("label") or self.provider_ref)
293
  self.ddg_token = str(entry["ddg_token"]).strip()
294
  self.cf_api_base = str(entry.get("api_base") or entry.get("cf_api_base") or "").rstrip("/")
295
  self.cf_inbox_jwt = str(entry.get("cf_inbox_jwt") or "").strip()
 
350
  ddg_address = f"{ddg_address_part}@duck.com"
351
 
352
  if _is_ddg_alias_duplicate(ddg_address):
353
+ raise RuntimeError(f"[{self.label}] DDG日上限已达,别名 {ddg_address} 已存在,自动切换邮箱提供商")
354
 
355
  _record_ddg_alias(ddg_address)
356
 
357
  if not self.cf_inbox_jwt:
358
  raise RuntimeError("DDGMail 需要 cf_inbox_jwt(DDG 转发目标的固定收件箱 JWT),请在邮箱配置中填写 CF Inbox JWT")
359
 
360
+ return {"provider": self.name, "provider_ref": self.provider_ref, "address": ddg_address, "token": self.cf_inbox_jwt, "label": self.label}
361
 
362
  def _parse_raw_recipient(self, raw_text: str) -> str:
363
  if not raw_text:
 
778
 
779
 
780
  def _entries(mail_config: dict) -> list[dict]:
781
+ result: list[dict] = []
782
+ counters: dict[str, int] = {}
783
+ for item in mail_config["providers"]:
784
+ idx = len(result) + 1
785
+ t = item.get("type", "")
786
+ cnt = counters.get(t, 0) + 1
787
+ counters[t] = cnt
788
+ label = f"DDG-{cnt}" if t == "ddg_mail" else f"{t}#{idx}"
789
+ result.append({**item, "provider_ref": f"{item['type']}#{idx}", "label": label})
790
+ return result
791
 
792
 
793
  def _enabled_entries(mail_config: dict) -> list[dict]:
services/register/openai_register.py CHANGED
@@ -610,7 +610,8 @@ class PlatformRegistrar:
610
  email = str(mailbox.get("address") or "").strip()
611
  if not email:
612
  raise RuntimeError("邮箱服务未返回 address")
613
- step(index, f"邮箱创建完成: {email}")
 
614
  password = _random_password()
615
  first_name, last_name = _random_name()
616
  self._platform_authorize(email, index)
 
610
  email = str(mailbox.get("address") or "").strip()
611
  if not email:
612
  raise RuntimeError("邮箱服务未返回 address")
613
+ label = str(mailbox.get("label") or "")
614
+ step(index, f"邮箱创建完成[{label}]: {email}")
615
  password = _random_password()
616
  first_name, last_name = _random_name()
617
  self._platform_authorize(email, index)