mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-09 13:58:36 +03:00
28 lines
770 B
Python
28 lines
770 B
Python
"""WeChat-owned persisted login-state detection."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
from typing import Any
|
|
|
|
from nanobot.channels.contracts import channel_field_value
|
|
from nanobot.config.paths import get_config_path
|
|
|
|
|
|
def local_state_present(section: Any) -> bool:
|
|
configured_dir = channel_field_value(section, "stateDir")
|
|
state_dir = (
|
|
Path(str(configured_dir)).expanduser()
|
|
if configured_dir
|
|
else get_config_path().parent / "weixin"
|
|
)
|
|
try:
|
|
payload = json.loads((state_dir / "account.json").read_text(encoding="utf-8"))
|
|
except (OSError, ValueError, TypeError):
|
|
return False
|
|
return bool(str(payload.get("token") or "").strip())
|
|
|
|
|
|
__all__ = ["local_state_present"]
|