re-add date_added field from Grouvee export

This commit is contained in:
Ben Goldsworthy 2024-02-03 16:03:15 +00:00
parent 1f5760073f
commit 4a16cb8490
4 changed files with 27639 additions and 27103 deletions

View file

@ -1,26 +1,29 @@
[ [
{ {
"Title": "Death Stranding", "Title": "Death Stranding",
"Date Started": "2024-01-25", "Date Started": "2024-01-25",
"Platforms": "PC", "Platforms": "PC",
"Developers": "Kojima Productions", "Developers": "Kojima Productions",
"Date Released": "2019-11-08", "Date Released": "2019-11-08",
"GiantBomb ID": "54232" "GiantBomb ID": "54232",
}, "date_added": "2019-12-04T21:27:08Z"
{ },
"Title": "Ancestors: The Humankind Odyssey", {
"Platform": "PC", "Title": "Ancestors: The Humankind Odyssey",
"Date Started": "2023-08-08", "Platform": "PC",
"Developers": "Panache Digital Games", "Date Started": "2023-08-08",
"Date Released": "2019-08-27", "Developers": "Panache Digital Games",
"GiantBomb ID": "49527" "Date Released": "2019-08-27",
}, "GiantBomb ID": "49527",
{ "date_added": "2020-05-24T18:26:59Z"
"Title": "TIS-100", },
"Platforms": "PC", {
"Date Started": "2016-12-24", "Title": "TIS-100",
"Developers": "Zachtronics Industries", "Platforms": "PC",
"Date Released": "2015-07-20", "Date Started": "2016-12-24",
"GiantBomb ID": "49901" "Developers": "Zachtronics Industries",
} "Date Released": "2015-07-20",
] "GiantBomb ID": "49901",
"date_added": "2020-01-06T12:41:38Z"
}
]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,61 @@
import json
with open(f"./scripts/grouvee.json", "r", encoding="utf-8") as log_file:
orig_log_items = json.load(log_file)
for log in ["log", "current", "wishlist"]:
print(f"Processing {log}")
with open(f"./data/games/{log}.json", "r", encoding="utf-8") as log_file:
log_items = json.load(log_file)
for i, item in enumerate(log_items):
print(f"Processing {item['Title']}...")
if "GiantBomb ID" in item:
orig_item = [""]
if "" != item["GiantBomb ID"]:
orig_item = [
orig_item
for orig_item in orig_log_items
if orig_item["giantbomb_id"] == int(item["GiantBomb ID"])
]
elif "" == item["GiantBomb ID"]:
orig_item = [
orig_item
for orig_item in orig_log_items
if orig_item["name"] == item["Title"]
]
if [] == orig_item:
print(f"No item {item['Title']} found in original log!")
log_items[i] = item
break
elif 1 < len(orig_item):
raise Exception(f"Multiple items returned for {item['Title']}!")
else:
orig_item = orig_item[0]
if "Wish List" in orig_item["shelves"]:
item["date_added"] = orig_item["shelves"]["Wish List"]["date_added"]
elif "Backlog" in orig_item["shelves"]:
item["date_added"] = orig_item["shelves"]["Backlog"]["date_added"]
elif "Played" in orig_item["shelves"] and "log" == log:
item["date_added"] = orig_item["shelves"]["Played"]["date_added"]
else:
print(f"No date_added for {item['Title']}!")
log_items[i] = item
print(f"Finished processing {item['Title']}.")
with open(f"./data/games/{log}.json", "w", encoding="utf-8") as log_file:
json.dump(log_items, log_file, indent=4)
print(f"Finished processing {log}.")