feat(bot): implement HWID device list and deletion

This commit is contained in:
2026-06-17 15:40:35 +07:00
parent edfe1e6874
commit 93f05e46b5
7 changed files with 123 additions and 20 deletions

View File

@@ -1,11 +1,15 @@
import logging
from dataclasses import dataclass
from datetime import UTC, datetime, timedelta
from typing import List
from uuid import UUID
from remnawave import RemnawaveSDK
from remnawave.models import CreateUserRequestDto, UpdateUserRequestDto
from remnawave.models import (
CreateUserRequestDto,
DeleteUserHwidDeviceResponseDto,
HWIDDeleteRequest,
UpdateUserRequestDto,
)
from remnawave.models.hwid import HwidDeviceDto
logger = logging.getLogger(__name__)
@@ -352,14 +356,21 @@ async def create_user(
logger.warning("Failed to create user username=%s: %s", username, exc)
return None
async def get_hwid_list(
sdk: RemnawaveSDK,
user_uuid: str
) -> List[HwidDeviceDto] | None:
async def get_hwid_list(sdk: RemnawaveSDK, user_uuid: str) -> list[HwidDeviceDto] | None:
try:
resp = await sdk.hwid.get_hwid_user(user_uuid)
return resp.devices
except Exception as exc:
except Exception:
logger.exception("failed to fetch hwid list for user=%s", user_uuid)
return
async def delete_hwid(sdk: RemnawaveSDK, user_uuid: str, hwid: str) -> bool:
body = HWIDDeleteRequest(user_uuid=user_uuid, hwid=hwid)
try:
resp = await sdk.hwid.delete_hwid_to_user(body)
return isinstance(resp, DeleteUserHwidDeviceResponseDto)
except Exception:
logger.exception("failed to fetch hwid list for user=%s", user_uuid)
return False