forked from sass/tipibot
More bug fixes
This commit is contained in:
@@ -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__":
|
||||
|
||||
Reference in New Issue
Block a user