migrate.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. import json
  2. import sqlite3
  3. import pickle
  4. import uuid
  5. from datetime import datetime
  6. from collections import defaultdict
  7. with sqlite3.connect("./rollbot.sqlite") as db:
  8. cur = db.execute("SELECT person_id, curses, blessings FROM curse_bless_score")
  9. karma = defaultdict(int)
  10. for (pid, c, b) in cur:
  11. karma[pid] -= c
  12. karma[pid] += b
  13. curses = {k: json.dumps({"score": v, "zero_passes": 0}) for k, v in karma.items()}
  14. print(curses)
  15. # cur = db.execute("SELECT items, group_id FROM watchlist")
  16. # watchlist = []
  17. # for (items, _) in cur:
  18. # watchlist += pickle.loads(items)
  19. # print(watchlist)
  20. dead_guys = {}
  21. cur = db.execute("SELECT state, games, timestamp FROM hangguy_dead_guy")
  22. for (state, liftime, timestamp) in cur:
  23. timestamp = datetime.fromisoformat(timestamp)
  24. dead_guys[f"{uuid.uuid4().hex}-{timestamp.isoformat()}"] = json.dumps({"state": state, "lifetime": liftime, "timestamp": timestamp.timestamp()})
  25. print(dead_guys)
  26. with sqlite3.connect("./rollbot.db") as db:
  27. db.executemany("INSERT INTO curse_score VALUES (?, ?)", list(curses.items()))
  28. # db.execute("INSERT INTO watchlist VALUES (?, ?)", .items())
  29. db.executemany("INSERT INTO dead_guy VALUES (?, ?)", list(dead_guys.items()))