69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
import os
|
|
import re
|
|
|
|
input_file = '/media/haunter/e11cc3d4-c894-42cd-8c43-fe2cb25293fd/Vcode_raidbot/grepo-remote/GrepolisRemoteControl.user.js'
|
|
out_dir = '/media/haunter/e11cc3d4-c894-42cd-8c43-fe2cb25293fd/Vcode_raidbot/grepo-remote/bot_modules'
|
|
|
|
if not os.path.exists(out_dir):
|
|
os.makedirs(out_dir)
|
|
|
|
with open(input_file, 'r', encoding='utf-8') as f:
|
|
lines = f.readlines()
|
|
|
|
# Find the start of the IIFE
|
|
start_idx = 0
|
|
for i, line in enumerate(lines):
|
|
if line.strip().startswith('(function'):
|
|
start_idx = i + 1
|
|
break
|
|
|
|
# Extract the body of the IIFE (excluding the last '})();')
|
|
end_idx = len(lines)
|
|
for i in range(len(lines) - 1, -1, -1):
|
|
if line.strip().startswith('})();'):
|
|
end_idx = i
|
|
break
|
|
|
|
# Remove use strict if present
|
|
body_lines = [line for line in lines[start_idx:end_idx] if 'use strict' not in line]
|
|
|
|
# We will group them manually into files based on logical sections
|
|
sections = []
|
|
current_section = []
|
|
for line in body_lines:
|
|
current_section.append(line)
|
|
|
|
content = "".join(body_lines)
|
|
|
|
# Split by known markers
|
|
blocks = {
|
|
'00_config.js': [],
|
|
'01_ui.js': [],
|
|
'02_state.js': [],
|
|
'03_captcha.js': [],
|
|
'04_execute.js': [],
|
|
'05_main.js': []
|
|
}
|
|
|
|
current_file = '00_config.js'
|
|
|
|
for line in body_lines:
|
|
if '// Toolbar indicator button' in line:
|
|
current_file = '01_ui.js'
|
|
elif '// Push town state to relay' in line:
|
|
current_file = '02_state.js'
|
|
elif '// Captcha detection' in line:
|
|
current_file = '03_captcha.js'
|
|
elif '// Execute: Farm Upgrade' in line:
|
|
current_file = '04_execute.js'
|
|
elif '// Poll for and execute pending commands' in line:
|
|
current_file = '05_main.js'
|
|
|
|
blocks[current_file].append(line)
|
|
|
|
for filename, lines in blocks.items():
|
|
with open(os.path.join(out_dir, filename), 'w', encoding='utf-8') as f:
|
|
f.writelines(lines)
|
|
|
|
print("Split completed.")
|