genai-cooperativo / documenter.py
sandro-timia's picture
qqq
1ea5c22
raw
history blame
No virus
2.06 kB
import os
import json
# Define a set of multimedia file extensions
MULTIMEDIA_EXTENSIONS = {'.jpg', '.jpeg', '.png', '.gif', '.bmp',
'.mp3', '.wav', '.aac', '.flac',
'.mp4', '.avi', '.mov', '.mkv', '.wmv'}
def get_directory_structure(root_dir):
def build_structure(current_dir):
structure = []
for item in os.listdir(current_dir):
item_path = os.path.join(current_dir, item)
if os.path.isdir(item_path):
structure.append({
"name": item,
"type": "directory",
"content": None,
"children": build_structure(item_path)
})
else:
file_extension = os.path.splitext(item)[1].lower()
if file_extension in MULTIMEDIA_EXTENSIONS:
# For multimedia files, don't capture the content
structure.append({
"name": item,
"type": "file",
"content": None, # No content for multimedia files
"children": []
})
else:
with open(item_path, 'r', encoding='utf-8', errors='ignore') as file:
file_content = file.read()
structure.append({
"name": item,
"type": "file",
"content": file_content,
"children": []
})
return structure
return build_structure(root_dir)
def generate_json(output_file):
current_directory = os.getcwd()
structure = get_directory_structure(current_directory)
with open(output_file, 'w', encoding='utf-8') as json_file:
json.dump(structure, json_file, indent=4)
if __name__ == "__main__":
output_json_file = "output.json"
generate_json(output_json_file)
print(f"Directory structure saved to {output_json_file}")