feat: Vultr/DO/Cloudflare适配器分页处理(避免多VPS/域名同步遗漏)+ 分页测试

This commit is contained in:
gouki
2026-08-02 17:59:51 +00:00
parent 8ba58caaa8
commit 3ef84180b4
4 changed files with 135 additions and 68 deletions
+16 -10
View File
@@ -42,16 +42,22 @@ class CloudflareAdapter(BaseAdapter):
return {"ok": False, "message": str(e)}
def list_domains(self) -> list:
data = self._get("/zones?per_page=50")
result = []
for z in data.get("result", []):
result.append(
NormalizedDomain(
external_id=z.get("id"),
domain_name=z.get("name"),
registrar="cloudflare",
status="active" if z.get("status") == "active" else (z.get("status") or "unknown"),
raw=z,
page = 1
while True:
data = self._get(f"/zones?per_page=50&page={page}")
for z in data.get("result", []):
result.append(
NormalizedDomain(
external_id=z.get("id"),
domain_name=z.get("name"),
registrar="cloudflare",
status="active" if z.get("status") == "active" else (z.get("status") or "unknown"),
raw=z,
)
)
)
info = data.get("result_info", {})
if page >= info.get("total_pages", 1):
break
page += 1
return result