@@ -328,18 +328,13 @@ async def user_subscription(
328328 """
329329 Provides a subscription link based on the user agent (Clash, V2Ray, etc.).
330330 """
331- # Handle HTML request (subscription page)
332331 sub_settings : SubSettings = await subscription_settings ()
333332 db_user = await self .get_validated_sub (db , token )
334333 user = await self .validated_user (db_user )
335-
336- await self .validate_and_register_hwid (
337- db , db_user .id , db_user .hwid_limit , x_hwid , x_device_os , x_ver_os , x_device_model
338- )
339-
340334 is_browser_request = "text/html" in accept_header
335+ is_subscription_page_request = is_browser_request and not sub_settings .disable_sub_template
341336
342- if not sub_settings . disable_sub_template and is_browser_request :
337+ if is_subscription_page_request :
343338 template = (
344339 db_user .admin .sub_template
345340 if db_user .admin and db_user .admin .sub_template
@@ -365,6 +360,9 @@ async def user_subscription(
365360 )
366361 )
367362 else :
363+ await self .validate_and_register_hwid (
364+ db , db_user .id , db_user .hwid_limit , x_hwid , x_device_os , x_ver_os , x_device_model
365+ )
368366 matched_rule = self .detect_client_rule (user_agent , sub_settings .rules )
369367 client_type = matched_rule .target if matched_rule else None
370368 if client_type == ConfigFormat .block or not client_type :
0 commit comments