diff --git a/scripts/artifacts/googleMapsGmm.py b/scripts/artifacts/googleMapsGmm.py index 991cb3db..1f101376 100644 --- a/scripts/artifacts/googleMapsGmm.py +++ b/scripts/artifacts/googleMapsGmm.py @@ -85,44 +85,50 @@ def get_googleMapsGmm(files_found, report_folder, seeker, wrap_text): db = open_sqlite_db_readonly(file_found) file_found_myplaces = file_found cursor = db.cursor() - cursor.execute(''' - select - rowid, - key_string, - round(latitude*.000001,6), - round(longitude*.000001,6), - sync_item, - timestamp - from sync_item - ''') - all_rows = cursor.fetchall() + # --- MULAI PERBAIKAN --- + try: + cursor.execute(''' + select + rowid, + key_string, + round(latitude*.000001,6), + round(longitude*.000001,6), + sync_item, + timestamp + from sync_item + ''') + all_rows = cursor.fetchall() - for row in all_rows: - id = row[0] - keystring = row[1] - latitude = row[2] - longitude = row[3] - syncitem = row[4] - timestamp = row[5] - pb = blackboxprotobuf.decode_message(syncitem, 'None') + for row in all_rows: + id = row[0] + keystring = row[1] + latitude = row[2] + longitude = row[3] + syncitem = row[4] + timestamp = row[5] + pb = blackboxprotobuf.decode_message(syncitem, 'None') - if keystring == "0:0": - label = "Home" - elif keystring == "1:0": - label = "Work" - else: - label = pb[0].get('6', {}).get('7', b'').decode('utf-8') + if keystring == "0:0": + label = "Home" + elif keystring == "1:0": + label = "Work" + else: + label = pb[0].get('6', {}).get('7', b'').decode('utf-8') - address = pb[0].get('6', {}).get('2', b'').decode('utf-8') - url = pb[0].get('6', {}).get('6', b'').decode('utf-8') - url = f'{url}' - timestamp = datetime.fromtimestamp(timestamp/1000, tz=timezone.utc) - timestamp = convert_utc_human_to_timezone(timestamp, 'UTC') - data_list_myplaces.append((timestamp,label,latitude,longitude,address,url)) + address = pb[0].get('6', {}).get('2', b'').decode('utf-8') + url = pb[0].get('6', {}).get('6', b'').decode('utf-8') + url = f'{url}' + timestamp = datetime.fromtimestamp(timestamp/1000, tz=timezone.utc) + timestamp = convert_utc_human_to_timezone(timestamp, 'UTC') + data_list_myplaces.append((timestamp,label,latitude,longitude,address,url)) + + except sqlite3.OperationalError: + logfunc(f"Table sync_item not found in {file_found}") + # --- AKHIR PERBAIKAN --- + db.close() else: continue - if data_list_storage: report = ArtifactHtmlReport('Google Search History Maps') report.start_artifact_report(report_folder, 'Google Search History Maps') @@ -150,4 +156,4 @@ def get_googleMapsGmm(files_found, report_folder, seeker, wrap_text): tlactivity = f'Google Maps Label Places' timeline(report_folder, tlactivity, data_list_myplaces, data_headers) else: - logfunc('No Google Maps Label Places data available') \ No newline at end of file + logfunc('No Google Maps Label Places data available') diff --git a/scripts/artifacts/offlinePages.py b/scripts/artifacts/offlinePages.py index 8e20c906..6667b085 100644 --- a/scripts/artifacts/offlinePages.py +++ b/scripts/artifacts/offlinePages.py @@ -24,7 +24,9 @@ def get_offlinePages(files_found, report_folder, seeker, wrap_text): file_found = str(file_found) modified_time = os.path.getmtime(file_found) + utc_modified_date = datetime.fromtimestamp(modified_time, tz=timezone.utc) + # ------------------------- timestamp = convert_utc_int_to_timezone(utc_modified_date, 'UTC') @@ -59,4 +61,4 @@ def get_offlinePages(files_found, report_folder, seeker, wrap_text): ('*/*.mhtml', '*/*.mht'), get_offlinePages) } - \ No newline at end of file +