Skip to content

Commit 33cac5a

Browse files
committed
INTEGRITY: Add additional modification-time column in file table.
1 parent 4c9a5e7 commit 33cac5a

File tree

4 files changed

+27
-8
lines changed

4 files changed

+27
-8
lines changed

dat_parser.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ def map_checksum_data(content_string):
3333
elif tokens[i] == "size-rd":
3434
current_rom["size-rd"] = int(tokens[i + 1])
3535
i += 2
36+
elif tokens[i] == "modification-time":
37+
current_rom["modification-time"] = tokens[i + 1]
38+
i += 2
3639
else:
3740
checksum_key = tokens[i]
3841
checksum_value = tokens[i + 1] if len(tokens) >= 6 else "0"

db_functions.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,13 +234,16 @@ def insert_file(file, detection, src, conn):
234234
values.append(file["size-r"] if "size-r" in file else "0")
235235
values.append(file["size-rd"] if "size-rd" in file else "0")
236236

237+
modification_time = file["modification-time"] if "modification-time" in file else ""
238+
values.append(modification_time)
239+
237240
values.extend([checksum, detection, detection_type])
238241

239242
# Parameterised Query
240243
placeholders = (
241-
["%s"] * (len(values[:5])) + ["@fileset_last"] + ["%s"] * 2 + ["NOW()"]
244+
["%s"] * (len(values[:6])) + ["@fileset_last"] + ["%s"] * 2 + ["NOW()"]
242245
)
243-
query = f"INSERT INTO file ( name, size, `size-r`, `size-rd`, checksum, fileset, detection, detection_type, `timestamp` ) VALUES ({', '.join(placeholders)})"
246+
query = f"INSERT INTO file ( name, size, `size-r`, `size-rd`, `modification-time`, checksum, fileset, detection, detection_type, `timestamp` ) VALUES ({', '.join(placeholders)})"
244247

245248
with conn.cursor() as cursor:
246249
cursor.execute(query, values)

fileset.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ def fileset():
189189
query = """SELECT game.name as 'game name', engineid, gameid, extra, platform, language, fileset.set_dat_metadata FROM fileset JOIN game ON game.id = fileset.game JOIN engine ON engine.id = game.engine WHERE fileset.id = %s"""
190190
else:
191191
query = """SELECT game.name as 'game name', engineid, gameid, extra, platform, language FROM fileset JOIN game ON game.id = fileset.game JOIN engine ON engine.id = game.engine WHERE fileset.id = %s"""
192-
print(query)
193192
cursor.execute(query, (id,))
194193
result = {**result, **cursor.fetchone()}
195194
else:
@@ -240,6 +239,7 @@ def fileset():
240239
"detection",
241240
"detection_type",
242241
"timestamp",
242+
"modification-time",
243243
]
244244

245245
if sort:
@@ -250,13 +250,10 @@ def fileset():
250250
if "desc" in sort:
251251
order += " DESC"
252252

253-
columns_to_select = "file.id, name, size, `size-r`, `size-rd`, checksum, detection, detection_type, `timestamp`"
253+
columns_to_select = "file.id, name, size, `size-r`, `size-rd`, checksum, detection, detection_type, `timestamp`, `modification-time`"
254254
columns_to_select += ", ".join(md5_columns)
255-
print(
256-
f"SELECT file.id, name, size, `size-r`, `size-rd`, checksum, detection, detection_type, `timestamp` FROM file WHERE fileset = {id} {order}"
257-
)
258255
cursor.execute(
259-
f"SELECT file.id, name, size, `size-r`, `size-rd`, checksum, detection, detection_type, `timestamp` FROM file WHERE fileset = {id} {order}"
256+
f"SELECT file.id, name, size, `size-r`, `size-rd`, checksum, detection, detection_type, `timestamp`, `modification-time` FROM file WHERE fileset = {id} {order}"
260257
)
261258
result = cursor.fetchall()
262259

schema.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,22 @@ def migrate_column(cursor, table_name, column_name, add_sql, modify_sql):
244244
"ALTER TABLE log MODIFY COLUMN `text` VARCHAR(5000);",
245245
)
246246

247+
migrate_column(
248+
cursor,
249+
"fileset",
250+
"set_dat_metadata",
251+
"ALTER TABLE fileset ADD COLUMN set_dat_metadata VARCHAR(5000) DEFAULT '';",
252+
"ALTER TABLE fileset MODIFY COLUMN set_dat_metadata VARCHAR(5000) DEFAULT '';",
253+
)
254+
255+
migrate_column(
256+
cursor,
257+
"file",
258+
"modification-time",
259+
"ALTER TABLE file ADD COLUMN `modification-time` VARCHAR(100) DEFAULT '';",
260+
"ALTER TABLE file MODIFY COLUMN `modification-time` VARCHAR(100) DEFAULT '';",
261+
)
262+
247263
for index, definition in indices.items():
248264
try:
249265
cursor.execute(definition)

0 commit comments

Comments
 (0)