deploy: auto commit repo-root changes 2026-06-13 00:33:38

This commit is contained in:
hajimi
2026-06-13 00:33:38 +08:00
parent c3385b0e04
commit 186521392d
2 changed files with 52 additions and 7 deletions
+3 -7
View File
@@ -625,15 +625,10 @@ class AiCommentRepository:
for index in range(1, target_count + 1): for index in range(1, target_count + 1):
persona = self._persona_for_index(index) persona = self._persona_for_index(index)
account = f"{BOT_ACCOUNT_PREFIX}{index:04d}" account = f"{BOT_ACCOUNT_PREFIX}{index:04d}"
nickname = self._build_bot_nickname(index)
row = indexed.get(index) row = indexed.get(index)
if row: if row:
if row["nickname"] != nickname:
cursor.execute(
f"UPDATE `{self.prefix}user` SET nickname=%s, update_time=%s WHERE id=%s",
(nickname, now, row["id"]),
)
continue continue
nickname = self._build_bot_nickname(index)
password = self._create_password(self._random_password(), salt) password = self._create_password(self._random_password(), salt)
sn = self._create_user_sn(cursor) sn = self._create_user_sn(cursor)
cursor.execute( cursor.execute(
@@ -651,7 +646,8 @@ class AiCommentRepository:
for row in rows: for row in rows:
index = self._parse_account_index(row["account"]) index = self._parse_account_index(row["account"])
persona = self._persona_for_index(index) persona = self._persona_for_index(index)
users.append(VirtualUser(int(row["id"]), row["account"], self._build_bot_nickname(index), persona["key"])) nickname = str(row.get("nickname") or "").strip() or self._build_bot_nickname(index)
users.append(VirtualUser(int(row["id"]), row["account"], nickname, persona["key"]))
self._virtual_users_cache = list(users) self._virtual_users_cache = list(users)
return users[:target_count] return users[:target_count]
@@ -80,6 +80,32 @@ class FakeClient:
) )
class RecordingCursor:
def __init__(self):
self.executed = []
def __enter__(self):
return self
def __exit__(self, exc_type, exc, tb):
return False
def execute(self, sql, params=None):
self.executed.append((sql, params))
class RecordingConnection:
def __init__(self):
self.cursor_obj = RecordingCursor()
self.commits = 0
def cursor(self):
return self.cursor_obj
def commit(self):
self.commits += 1
class AiCommentDispatchTest(unittest.TestCase): class AiCommentDispatchTest(unittest.TestCase):
def test_merge_candidates_merges_selection_sources_by_target(self): def test_merge_candidates_merges_selection_sources_by_target(self):
merged = merge_candidates( merged = merge_candidates(
@@ -217,6 +243,29 @@ class AiCommentDispatchTest(unittest.TestCase):
self.assertNotIn("·", nickname) self.assertNotIn("·", nickname)
self.assertGreaterEqual(len(nickname), 3) self.assertGreaterEqual(len(nickname), 3)
def test_existing_virtual_user_nickname_comes_from_user_table(self):
repo = AiCommentRepository.__new__(AiCommentRepository)
repo.prefix = "la_"
repo.conn = RecordingConnection()
repo._virtual_users_cache = None
repo._settings_cache = None
existing_rows = [
{
"id": 83,
"account": "ai_comment_0001",
"nickname": "赛点阿泽已手动改名",
"avatar": "/avatar.png",
}
]
repo._load_virtual_users = lambda limit=None: list(existing_rows)
repo._load_site_config = lambda group, name: ""
users = repo.ensure_virtual_users(1)
self.assertEqual(users[0].nickname, "赛点阿泽已手动改名")
executed_sql = "\n".join(sql for sql, _ in repo.conn.cursor_obj.executed)
self.assertNotIn("UPDATE `la_user` SET nickname", executed_sql)
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()