chore: account-manager — runtime_env sibling root, wait-login and browser fixes
All checks were successful
技能自动化发布 / release (push) Successful in 43s
All checks were successful
技能自动化发布 / release (push) Successful in 43s
This commit is contained in:
@@ -46,7 +46,7 @@ def get_account_by_id(account_id):
|
||||
cur = conn.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT id, name, platform, phone, profile_dir, url, login_status, last_login_at, extra_json,
|
||||
SELECT id, name, platform, phone, profile_dir, url, extra_json,
|
||||
created_at, updated_at
|
||||
FROM accounts WHERE id = ?
|
||||
""",
|
||||
@@ -62,14 +62,12 @@ def get_account_by_id(account_id):
|
||||
"phone": row[3] or "",
|
||||
"profile_dir": (row[4] or "").strip(),
|
||||
"url": row[5] or PLATFORM_URLS.get(row[2], ""),
|
||||
"login_status": int(row[6] or 0),
|
||||
"last_login_at": _unix_to_iso_local(row[7]),
|
||||
"created_at": _unix_to_iso_local(row[9]),
|
||||
"updated_at": _unix_to_iso_local(row[10]),
|
||||
"created_at": _unix_to_iso_local(row[7]),
|
||||
"updated_at": _unix_to_iso_local(row[8]),
|
||||
}
|
||||
if row[8]:
|
||||
if row[6]:
|
||||
try:
|
||||
extra = json.loads(row[8])
|
||||
extra = json.loads(row[6])
|
||||
if isinstance(extra, dict):
|
||||
acc.update(extra)
|
||||
except Exception:
|
||||
@@ -79,21 +77,13 @@ def get_account_by_id(account_id):
|
||||
conn.close()
|
||||
|
||||
|
||||
def mark_login_status(account_id, success: bool):
|
||||
def touch_account_updated_at(account_id) -> None:
|
||||
"""登录 DOM 检测成功等场景下刷新 updated_at,供 pick-web 等按最近活跃选号。"""
|
||||
now = _now_unix()
|
||||
conn = get_conn()
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
if success:
|
||||
cur.execute(
|
||||
"UPDATE accounts SET login_status = 1, last_login_at = ?, updated_at = ? WHERE id = ?",
|
||||
(now, now, account_id),
|
||||
)
|
||||
else:
|
||||
cur.execute(
|
||||
"UPDATE accounts SET login_status = 0, updated_at = ? WHERE id = ?",
|
||||
(now, account_id),
|
||||
)
|
||||
cur.execute("UPDATE accounts SET updated_at = ? WHERE id = ?", (now, account_id))
|
||||
conn.commit()
|
||||
finally:
|
||||
conn.close()
|
||||
@@ -105,8 +95,8 @@ def fetch_list_rows(platform_key: str, limit: int):
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
sql = (
|
||||
"SELECT id, name, platform, phone, profile_dir, url, login_status, "
|
||||
"last_login_at, extra_json, created_at, updated_at FROM accounts "
|
||||
"SELECT id, name, platform, phone, profile_dir, url, "
|
||||
"extra_json, created_at, updated_at FROM accounts "
|
||||
)
|
||||
if platform_key == "all":
|
||||
cur.execute(sql + "ORDER BY created_at DESC, id DESC LIMIT ?", (int(limit),))
|
||||
@@ -140,50 +130,21 @@ def fetch_ids_for_list_json(platform_key: str, lim: int):
|
||||
conn.close()
|
||||
|
||||
|
||||
def fetch_pick_logged_in_id(platform_key: str) -> Optional[int]:
|
||||
conn = get_conn()
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT id FROM accounts
|
||||
WHERE platform = ? AND login_status = 1
|
||||
ORDER BY (last_login_at IS NULL), last_login_at DESC
|
||||
LIMIT 1
|
||||
""",
|
||||
(platform_key,),
|
||||
)
|
||||
row = cur.fetchone()
|
||||
return int(row[0]) if row else None
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
def fetch_pick_web_candidate_id(platform_key: str) -> Optional[int]:
|
||||
"""该平台一条账号:按 updated_at、created_at 倒序,与是否登录无关。"""
|
||||
conn = get_conn()
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT id FROM accounts
|
||||
WHERE platform = ? AND login_status = 1
|
||||
ORDER BY (last_login_at IS NULL), last_login_at DESC
|
||||
WHERE platform = ?
|
||||
ORDER BY updated_at DESC, created_at DESC, id DESC
|
||||
LIMIT 1
|
||||
""",
|
||||
(platform_key,),
|
||||
)
|
||||
row = cur.fetchone()
|
||||
if not row:
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT id FROM accounts
|
||||
WHERE platform = ?
|
||||
ORDER BY updated_at DESC, id DESC
|
||||
LIMIT 1
|
||||
""",
|
||||
(platform_key,),
|
||||
)
|
||||
row = cur.fetchone()
|
||||
return int(row[0]) if row else None
|
||||
finally:
|
||||
conn.close()
|
||||
@@ -216,8 +177,8 @@ def insert_account_row(
|
||||
cur = conn.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
INSERT INTO accounts (name, platform, phone, profile_dir, url, login_status, last_login_at, extra_json, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, 0, NULL, NULL, ?, ?)
|
||||
INSERT INTO accounts (name, platform, phone, profile_dir, url, extra_json, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, NULL, ?, ?)
|
||||
""",
|
||||
(name, platform_key, phone_store, profile_dir, url, now, now),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user