Spaces:
Running
Running
nacho commited on
Commit ·
0d78fef
1
Parent(s): 4b9c49a
feat: 在网页端导入账号时自动持久化到 settings.json,防止重启后丢失
Browse files
main.py
CHANGED
|
@@ -376,6 +376,18 @@ async def import_accounts(request: Request, admin_key: str = Header(...)):
|
|
| 376 |
new_accounts.append(manager.accounts[email])
|
| 377 |
imported += 1
|
| 378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 379 |
# 异步触发新导入账号的预登录
|
| 380 |
async def prelogin_new_accounts():
|
| 381 |
for account in new_accounts:
|
|
@@ -650,6 +662,15 @@ def _apply_settings(data: dict):
|
|
| 650 |
enabled=data["log_file_enabled"],
|
| 651 |
max_mb=data.get("log_file_max_mb", 10),
|
| 652 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 653 |
|
| 654 |
|
| 655 |
def _setup_file_handler(enabled: bool, max_mb: int = 10):
|
|
|
|
| 376 |
new_accounts.append(manager.accounts[email])
|
| 377 |
imported += 1
|
| 378 |
|
| 379 |
+
# 持久化到 settings.json
|
| 380 |
+
if imported > 0:
|
| 381 |
+
saved = _load_settings()
|
| 382 |
+
saved_accounts = saved.get("accounts", [])
|
| 383 |
+
acc_map = {a.get("email"): a for a in saved_accounts if a.get("email")}
|
| 384 |
+
for acc in accounts:
|
| 385 |
+
e = acc.get("email")
|
| 386 |
+
if e and acc.get("password"):
|
| 387 |
+
acc_map[e] = acc
|
| 388 |
+
saved["accounts"] = list(acc_map.values())
|
| 389 |
+
_save_settings(saved)
|
| 390 |
+
|
| 391 |
# 异步触发新导入账号的预登录
|
| 392 |
async def prelogin_new_accounts():
|
| 393 |
for account in new_accounts:
|
|
|
|
| 662 |
enabled=data["log_file_enabled"],
|
| 663 |
max_mb=data.get("log_file_max_mb", 10),
|
| 664 |
)
|
| 665 |
+
if "accounts" in data:
|
| 666 |
+
for acc in data["accounts"]:
|
| 667 |
+
if acc.get("email") and acc.get("password") and acc.get("email") not in manager.accounts:
|
| 668 |
+
manager.add_account(
|
| 669 |
+
email=acc["email"],
|
| 670 |
+
password=acc["password"],
|
| 671 |
+
name=acc.get("name", ""),
|
| 672 |
+
proxy=acc.get("proxy")
|
| 673 |
+
)
|
| 674 |
|
| 675 |
|
| 676 |
def _setup_file_handler(enabled: bool, max_mb: int = 10):
|