bind_server_main.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # -*- coding: utf-8 -*-
  2. """把 cqlongwu1988001 绑为"玖扬复古176"主账号 (server_users 表)。
  3. - 单主账号唯一: 应用层在 bind() 里先清同 server 旧主
  4. - 幂等
  5. """
  6. import pymysql
  7. CONN = dict(host="47.99.164.66", port=3306, user="root",
  8. password="hn02le.34lkdLKD", database="996cq",
  9. charset="utf8mb4", autocommit=True, connect_timeout=10)
  10. def main():
  11. conn = pymysql.connect(**CONN)
  12. try:
  13. with conn.cursor() as cur:
  14. cur.execute(
  15. "SELECT id FROM users WHERE username=%s", ("cqlongwu1988001",))
  16. user = cur.fetchone()
  17. if not user:
  18. print("FAIL: 用户 cqlongwu1988001 不在 MySQL users 表。先跑 A1 登录。")
  19. return 1
  20. user_id = user[0]
  21. cur.execute(
  22. "SELECT id FROM servers WHERE server_name=%s",
  23. ("玖扬复古176",))
  24. server = cur.fetchone()
  25. if not server:
  26. print("FAIL: 区服'玖扬复古176'不在 MySQL servers 表。先跑 B1。")
  27. return 1
  28. server_id = server[0]
  29. # bind 主账号
  30. with conn.cursor() as cur2:
  31. # 先清同 server 其它主
  32. cur2.execute(
  33. "UPDATE server_users SET is_main=0 "
  34. "WHERE server_id=%s AND user_id<>%s AND is_main=1",
  35. (server_id, user_id))
  36. # upsert
  37. cur2.execute("""
  38. INSERT INTO server_users (server_id, user_id, server_name, username, is_main)
  39. VALUES (%s, %s, %s, %s, 1)
  40. ON DUPLICATE KEY UPDATE
  41. server_name = VALUES(server_name),
  42. username = VALUES(username),
  43. is_main = 1
  44. """, (server_id, user_id, "玖扬复古176", "cqlongwu1988001"))
  45. cur.execute("""
  46. SELECT id, server_id, user_id, server_name, username, is_main, created_at
  47. FROM server_users WHERE server_id=%s AND user_id=%s
  48. """, (server_id, user_id))
  49. row = cur.fetchone()
  50. print("OK 绑定成功:")
  51. print(f" id = {row[0]}")
  52. print(f" server = {row[3]} (id={row[1]})")
  53. print(f" user = {row[4]} (id={row[2]})")
  54. print(f" is_main = {row[5]}")
  55. print(f" created_at = {row[6]}")
  56. print()
  57. print(" -> 每天 00:00 daily_zone_sync.py 会用此账号 token 调 getTodayOpen")
  58. return 0
  59. finally:
  60. conn.close()
  61. if __name__ == "__main__":
  62. import sys
  63. sys.exit(main())