feat: add scoped alpha sync and local self-correlation
This commit is contained in:
+17
-12
@@ -257,20 +257,25 @@ class WqClient:
|
||||
errors[key] = str(exc)
|
||||
return usage_snapshot(data, errors)
|
||||
|
||||
async def alphas(self, submission, hidden, offset, before):
|
||||
async def alphas(self, submission, hidden, offset, before, *, date_from=None, date_to=None):
|
||||
# Cover every platform stage; submitted records are not assumed to be OS only.
|
||||
status_key = "status" if submission == "UNSUBMITTED" else "status!"
|
||||
return await self.get(
|
||||
"/users/self/alphas",
|
||||
{
|
||||
status_key: "UNSUBMITTED",
|
||||
"hidden": str(hidden).lower(),
|
||||
"limit": 100,
|
||||
"offset": offset,
|
||||
"order": "dateCreated",
|
||||
"dateCreated<": before,
|
||||
},
|
||||
)
|
||||
params = {
|
||||
status_key: "UNSUBMITTED",
|
||||
"hidden": str(hidden).lower(),
|
||||
"limit": 100,
|
||||
"offset": offset,
|
||||
"order": "dateCreated",
|
||||
"dateCreated<": before,
|
||||
}
|
||||
if date_from is not None and date_to is not None:
|
||||
# Daily intervals are [UTC midnight, next midnight). Submitted dates
|
||||
# use the actual submission time, independently of creation or stage.
|
||||
field = "dateCreated" if submission == "UNSUBMITTED" else "dateSubmitted"
|
||||
params.update({f"{field}>=": date_from, f"{field}<": date_to, "order": field})
|
||||
if field == "dateCreated":
|
||||
params["dateCreated<"] = min(before, date_to)
|
||||
return await self.get("/users/self/alphas", params)
|
||||
|
||||
async def alpha(self, alpha_id):
|
||||
return await self.get(f"/alphas/{alpha_id}")
|
||||
|
||||
Reference in New Issue
Block a user