MCPcopy Create free account
hub / github.com/CJackHwang/AIstudioProxyAPI / _force_ui_state_settings

Function _force_ui_state_settings

browser_utils/models/ui_state.py:97–147  ·  view source on GitHub ↗

Forcefully set the UI state. Args: page: Playwright page object. req_id: Request ID for logging. Returns: bool: Whether the setting was successful.

(page: AsyncPage, req_id: str = "unknown")

Source from the content-addressed store, hash-verified

95
96
97async def _force_ui_state_settings(page: AsyncPage, req_id: str = "unknown") -> bool:
98 """
99 Forcefully set the UI state.
100
101 Args:
102 page: Playwright page object.
103 req_id: Request ID for logging.
104
105 Returns:
106 bool: Whether the setting was successful.
107 """
108 try:
109 logger.debug("[State] Forcefully setting UI state...")
110
111 # First verify current state
112 current_state = await _verify_ui_state_settings(page, req_id)
113
114 if not current_state["needsUpdate"]:
115 logger.debug("[State] State is already correct, no update needed")
116 return True
117
118 # Get existing preferences or create new ones
119 prefs = current_state.get("prefs", {})
120
121 # Force key configurations
122 prefs["isAdvancedOpen"] = True
123 prefs["areToolsOpen"] = True
124
125 # Save to localStorage
126 prefs_str = json.dumps(prefs)
127 await page.evaluate(
128 "(prefsStr) => localStorage.setItem('aiStudioUserPreference', prefsStr)",
129 prefs_str,
130 )
131
132 logger.debug("[State] Set: isAdvancedOpen=true, areToolsOpen=true")
133
134 # Verify if setting was successful
135 verify_state = await _verify_ui_state_settings(page, req_id)
136 if not verify_state["needsUpdate"]:
137 logger.debug("[State] Setting verification successful")
138 return True
139 else:
140 logger.warning("UI state setting verification failed, may need to retry")
141 return False
142
143 except asyncio.CancelledError:
144 raise
145 except Exception as e:
146 logger.error(f"Error forcefully setting UI state: {e}")
147 return False
148
149
150async def _force_ui_state_with_retry(

Calls 5

debugMethod · 0.80
warningMethod · 0.80
errorMethod · 0.80
getMethod · 0.45