From 900dc18359fe5105dff17cce93d9d836ff93bc8c Mon Sep 17 00:00:00 2001 From: AB1908 <14124383+AB1908@users.noreply.github.com> Date: Wed, 6 May 2020 14:30:52 +0000 Subject: [PATCH] Change title parser to use regex (#21) * Change title parser to use regex * Fix incorrect extraction method * Fix incorrect regex --- galaxy_library_export.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/galaxy_library_export.py b/galaxy_library_export.py index 370c653..08bcbc1 100644 --- a/galaxy_library_export.py +++ b/galaxy_library_export.py @@ -2,6 +2,7 @@ import json import time import csv +import re database_location = "C:\\ProgramData\\GOG.com\\Galaxy\\storage\\galaxy-2.0.db" @@ -38,6 +39,7 @@ cursor.execute(owned_game_database) cursor.execute(owned_game_filtered_data) cursor.execute(unique_game_data) +title_regex = re.compile(r"""(?<=\{"title":").*(?="})""") with open("gameDB.csv", "w", encoding='utf-8', newline='') as csvfile: fieldnames = ['title', 'platformList', 'developers', 'publishers', 'releaseDate', 'genres', 'themes', 'criticsScore', 'gameMins'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) @@ -49,8 +51,8 @@ # For json.load() to work correctly, all double quotes must be correctly escaped metadata = json.loads(result[2].replace('"','\"')) row = metadata - row['title'] = result[1].split('"')[3] - row['title'] = row['title'].replace("\\","") + row['title'] = result[1].replace("\\","") + row['title'] = title_regex.findall(row["title"])[0] row['platformList'] = [] if any(platform in releaseKey for platform in platforms for releaseKey in result[0].split(",")): row['platformList'] = set(platforms[platform] for releaseKey in result[0].split(",") for platform in platforms if releaseKey.startswith(platform))