|
@@ -12,13 +12,14 @@ log = logging.getLogger("mau.web.public.analytics")
|
|
|
segment_url: URL = URL("https://api.segment.io/v1/track")
|
|
|
http: aiohttp.ClientSession | None = None
|
|
|
segment_key: str | None = None
|
|
|
+segment_user_id: str | None = None
|
|
|
|
|
|
|
|
|
async def _track(user: u.User, event: str, properties: dict) -> None:
|
|
|
await http.post(
|
|
|
segment_url,
|
|
|
json={
|
|
|
- "userId": user.mxid,
|
|
|
+ "userId": segment_user_id or user.mxid,
|
|
|
"event": event,
|
|
|
"properties": {"bridge": "signal", **properties},
|
|
|
},
|
|
@@ -32,7 +33,8 @@ def track(user: u.User, event: str, properties: dict | None = None):
|
|
|
asyncio.create_task(_track(user, event, properties or {}))
|
|
|
|
|
|
|
|
|
-def init(key):
|
|
|
- global segment_key, http
|
|
|
+def init(key, user_id: str | None = None):
|
|
|
+ global segment_key, segment_user_id, http
|
|
|
segment_key = key
|
|
|
+ segment_user_id = user_id
|
|
|
http = aiohttp.ClientSession()
|