1
0
forked from sass/tipibot

More bug fixes

This commit is contained in:
Rene Arumetsa
2026-05-03 15:11:32 +03:00
parent d65173fbe9
commit 07e7f5e0b2
9 changed files with 295 additions and 90 deletions

View File

@@ -42,26 +42,32 @@ async def main() -> None:
total = len(raw)
print(f"Found {total} user(s) in {DATA_FILE}")
created = skipped = errors = 0
created = updated = errors = 0
for uid, user in raw.items():
try:
record = dict(user)
record["user_id"] = uid
record.setdefault("balance", 0)
record.setdefault("exp", 0)
record.setdefault("items", [])
record.setdefault("item_uses", {})
record.setdefault("reminders", ["daily", "work", "beg", "crime", "rob"])
record.setdefault("eco_banned", False)
record.setdefault("daily_streak", 0)
existing = await pb_client.get_record(uid)
if existing:
await pb_client.update_record(existing["id"], record)
# Merge JSON fields *onto* the existing record so values that have
# accumulated in PB (items, daily_streak, reminders, etc.) are not
# clobbered by JSON defaults on a re-run. JSON values take
# precedence only for keys that are actually present.
merged: dict = {k: v for k, v in existing.items() if not k.startswith("_") and k != "id"}
merged.update(user)
merged["user_id"] = uid
await pb_client.update_record(existing["id"], merged)
print(f" [UPDATE] {uid}")
skipped += 1 # reuse skipped counter as "updated"
updated += 1
else:
record = dict(user)
record["user_id"] = uid
record.setdefault("balance", 0)
record.setdefault("exp", 0)
record.setdefault("items", [])
record.setdefault("item_uses", {})
record.setdefault("reminders", ["daily", "work", "beg", "crime", "rob"])
record.setdefault("eco_banned", False)
record.setdefault("daily_streak", 0)
await pb_client.create_record(record)
print(f" [CREATE] {uid}")
created += 1
@@ -69,7 +75,9 @@ async def main() -> None:
print(f" [ERROR] {uid}: {exc}")
errors += 1
print(f"\nDone. Created: {created} Skipped: {skipped} Errors: {errors}")
print(f"\nDone. Created: {created} Updated: {updated} Errors: {errors}")
if errors:
sys.exit(1)
if __name__ == "__main__":