Update proxy configuration
(
self,
enabled: bool,
proxy_url: Optional[str] = None,
media_proxy_enabled: Optional[bool] = None,
media_proxy_url: Optional[str] = None
)
| 1372 | return None |
| 1373 | |
| 1374 | async def update_proxy_config( |
| 1375 | self, |
| 1376 | enabled: bool, |
| 1377 | proxy_url: Optional[str] = None, |
| 1378 | media_proxy_enabled: Optional[bool] = None, |
| 1379 | media_proxy_url: Optional[str] = None |
| 1380 | ): |
| 1381 | """Update proxy configuration""" |
| 1382 | async with self._connect(write=True) as db: |
| 1383 | db.row_factory = aiosqlite.Row |
| 1384 | cursor = await db.execute("SELECT * FROM proxy_config WHERE id = 1") |
| 1385 | row = await cursor.fetchone() |
| 1386 | |
| 1387 | if row: |
| 1388 | current = dict(row) |
| 1389 | new_media_proxy_enabled = ( |
| 1390 | media_proxy_enabled |
| 1391 | if media_proxy_enabled is not None |
| 1392 | else current.get("media_proxy_enabled", False) |
| 1393 | ) |
| 1394 | new_media_proxy_url = ( |
| 1395 | media_proxy_url |
| 1396 | if media_proxy_url is not None |
| 1397 | else current.get("media_proxy_url") |
| 1398 | ) |
| 1399 | |
| 1400 | await db.execute(""" |
| 1401 | UPDATE proxy_config |
| 1402 | SET enabled = ?, proxy_url = ?, |
| 1403 | media_proxy_enabled = ?, media_proxy_url = ?, |
| 1404 | updated_at = CURRENT_TIMESTAMP |
| 1405 | WHERE id = 1 |
| 1406 | """, (enabled, proxy_url, new_media_proxy_enabled, new_media_proxy_url)) |
| 1407 | else: |
| 1408 | new_media_proxy_enabled = media_proxy_enabled if media_proxy_enabled is not None else False |
| 1409 | new_media_proxy_url = media_proxy_url |
| 1410 | await db.execute(""" |
| 1411 | INSERT INTO proxy_config (id, enabled, proxy_url, media_proxy_enabled, media_proxy_url) |
| 1412 | VALUES (1, ?, ?, ?, ?) |
| 1413 | """, (enabled, proxy_url, new_media_proxy_enabled, new_media_proxy_url)) |
| 1414 | |
| 1415 | await db.commit() |
| 1416 | |
| 1417 | async def get_generation_config(self) -> Optional[GenerationConfig]: |
| 1418 | """Get generation configuration""" |
no test coverage detected