Skip to content

Commit c22a190

Browse files
committed
✨ Add backwards compatibility
1 parent b26c99f commit c22a190

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

src/tasks.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,10 @@ def read_analytics_file(package_status_id, package_id, link, session):
156156
All this data will be useful to parse more complex things later.
157157
'''
158158

159-
user_content = zip.open('Account/user.json')
159+
user_path = 'Account/user.json'
160+
if user_path not in zip.namelist() and 'account/user.json' in zip.namelist():
161+
user_path = 'account/user.json'
162+
user_content = zip.open(user_path)
160163
user_json = orjson.loads(user_content.read())
161164
user_data = {
162165
'id': user_json['id'],
@@ -191,7 +194,7 @@ def read_analytics_file(package_status_id, package_id, link, session):
191194
We read it line by line (each line is a JSON object).
192195
'''
193196

194-
analytics_file_name = next((name for name in zip.namelist() if name.startswith('Activity/analytics') and name.endswith('.json')), None)
197+
analytics_file_name = next((name for name in zip.namelist() if (name.startswith('Activity/analytics') or name.startswith('activity/analytics')) and name.endswith('.json')), None)
195198

196199
if analytics_file_name:
197200

@@ -351,7 +354,10 @@ def read_analytics_file(package_status_id, package_id, link, session):
351354
This will be used later to get the guild name from the guild_id.
352355
'''
353356

354-
server_content = zip.open('Servers/index.json')
357+
server_path = 'Servers/index.json'
358+
if server_path not in zip.namelist() and 'servers/index.json' in zip.namelist():
359+
server_path = 'servers/index.json'
360+
server_content = zip.open(server_path)
355361
server_json = orjson.loads(server_content.read())
356362
for guild_id in server_json:
357363
guilds.append({
@@ -364,7 +370,10 @@ def read_analytics_file(package_status_id, package_id, link, session):
364370
This will be used later to get the channel name from the channel_id (or to check whether it is a DM or a Guild Channel).
365371
'''
366372

367-
message_index_content = zip.open('Messages/index.json')
373+
message_index_path = 'Messages/index.json'
374+
if message_index_path not in zip.namelist() and 'messages/index.json' in zip.namelist():
375+
message_index_path = 'messages/index.json'
376+
message_index_content = zip.open(message_index_path)
368377
message_index_json = orjson.loads(message_index_content.read())
369378
for channel_id in message_index_json:
370379
full_name = message_index_json[channel_id]
@@ -395,7 +404,7 @@ def read_analytics_file(package_status_id, package_id, link, session):
395404
compute_times = []
396405
compute_1_times = []
397406
compute_2_times = []
398-
channel_json_files = [file_name for file_name in namelist if file_name.startswith('Messages/') and file_name.endswith('channel.json')]
407+
channel_json_files = [file_name for file_name in namelist if (file_name.startswith('Messages/') or file_name.startswith('messages/')) and file_name.endswith('channel.json')]
399408
print(f'Found {len(channel_json_files)} channel files')
400409
for channel_json_file in channel_json_files:
401410
read_time_start = time.time()
@@ -406,14 +415,15 @@ def read_analytics_file(package_status_id, package_id, link, session):
406415
channel_json = orjson.loads(channel_content.read())
407416
read_time_diff = time.time() - read_time_start
408417
read_json_times.append(read_time_diff)
409-
channel_id = re.match(r'Messages\/c?([0-9]{16,32})\/', channel_json_file).group(1)
418+
channel_id = re.match(r'(?:Messages|messages)\/c?([0-9]{16,32})\/', channel_json_file).group(1)
410419
# new package includes 'c' before the channel id
411-
is_new_package = channel_json_file.startswith('Messages/c')
420+
is_new_package = channel_json_file.startswith('Messages/c') or channel_json_file.startswith('messages/c')
412421
read_time_start = time.time()
413-
ch_msgs_file_name = f'Messages/{"c" if is_new_package else ""}{channel_id}/messages.json'
422+
messages_folder = 'Messages' if channel_json_file.startswith('Messages/') else 'messages'
423+
ch_msgs_file_name = f'{messages_folder}/{"c" if is_new_package else ""}{channel_id}/messages.json'
414424
if ch_msgs_file_name not in namelist:
415425
continue
416-
message_content = zip.open(f'Messages/{"c" if is_new_package else ""}{channel_id}/messages.json')
426+
message_content = zip.open(ch_msgs_file_name)
417427
read_time_diff = time.time() - read_time_start
418428
read_channel_times.append(read_time_diff)
419429
read_time_start = time.time()

0 commit comments

Comments
 (0)