feat: advanced RW sync system
This commit is contained in:
10
external/rw.py
vendored
10
external/rw.py
vendored
@@ -412,7 +412,7 @@ async def delete_hwid(sdk: RemnawaveSDK, user_uuid: str, hwid: str) -> bool:
|
||||
|
||||
|
||||
async def update_expire_at(sdk: RemnawaveSDK, user_uuid: str, expire_at: datetime):
|
||||
dto = UpdateUserRequestDto(uuid=user_uuid, expire_at=expire_at) # type: ignore
|
||||
dto = UpdateUserRequestDto(uuid=UUID(user_uuid), expire_at=expire_at)
|
||||
try:
|
||||
await sdk.users.update_user(body=dto)
|
||||
return True
|
||||
@@ -463,6 +463,11 @@ async def sync_subscription_by_telegram_id(
|
||||
return False
|
||||
|
||||
rw_user = await get_rw_user(sdk, telegram_id=telegram_id, username=username)
|
||||
if expires_at <= datetime.now(UTC):
|
||||
if rw_user is None:
|
||||
return True
|
||||
return await disable_user(sdk, rw_user.uuid)
|
||||
|
||||
if rw_user is None:
|
||||
rw_username = _build_rw_username(username=username)
|
||||
rw_user = await create_user(
|
||||
@@ -483,7 +488,8 @@ async def sync_subscription_by_telegram_id(
|
||||
|
||||
expire_synced = await update_expire_at(sdk, rw_user.uuid, expires_at)
|
||||
devices_synced = await set_hwid_limit(sdk, rw_user.uuid, devices)
|
||||
return expire_synced and devices_synced
|
||||
enabled = await enable_user(sdk, rw_user.uuid)
|
||||
return expire_synced and devices_synced and enabled
|
||||
|
||||
|
||||
def build_subscription_link(short_uuid: str):
|
||||
|
||||
Reference in New Issue
Block a user