@@ -286,13 +286,9 @@ async def user_subscription(
286286 return HTMLResponse (
287287 render_template (
288288 template ,
289- {
290- "user" : user ,
291- "links" : links ,
292- "announce" : formatted_announce ,
293- "announce_url" : sub_settings .announce_url ,
294- "apps" : self ._make_apps_import_urls (sub_settings .applications , format_variables ),
295- },
289+ self ._build_raw_subscription_payload (
290+ user , links , formatted_announce , sub_settings , format_variables
291+ ),
296292 )
297293 )
298294 else :
@@ -374,6 +370,34 @@ async def user_subscription_with_client_type(
374370 # Create response headers
375371 return Response (content = conf , media_type = media_type , headers = response_headers )
376372
373+ def _build_raw_subscription_payload (
374+ self ,
375+ user : UsersResponseWithInbounds ,
376+ links : list [str ],
377+ formatted_announce : str ,
378+ sub_settings : SubSettings ,
379+ format_variables : dict ,
380+ ) -> dict [str , Any ]:
381+ return {
382+ "user" : user ,
383+ "links" : links ,
384+ "announce" : formatted_announce ,
385+ "announce_url" : sub_settings .announce_url ,
386+ "apps" : self ._make_apps_import_urls (sub_settings .applications , format_variables ),
387+ }
388+
389+ async def user_subscription_raw (self , db : AsyncSession , token : str ):
390+ sub_settings : SubSettings = await subscription_settings ()
391+ db_user = await self .get_validated_sub (db , token )
392+ user = await self .validated_user (db_user )
393+ links = []
394+ if sub_settings .allow_browser_config :
395+ conf , _ = await self .fetch_config (user , ConfigFormat .links )
396+ links = conf .splitlines ()
397+ format_variables = await self .get_format_variables (user )
398+ formatted_announce = self ._format_announce (sub_settings , format_variables )
399+ return self ._build_raw_subscription_payload (user , links , formatted_announce , sub_settings , format_variables )
400+
377401 async def user_subscription_by_user (
378402 self ,
379403 db_user : User ,
0 commit comments