import json from typing import List from app.core.parsers.apple import parse_training_data as adp from app.core.parsers.obsidian import parse_training_data as odp from app.core.dto.training import TrainingDTO def dump_trainings_to_json(trainings: List[TrainingDTO], filename="trainings.json"): """Dump training data to JSON file using DTO format.""" trainings_data = [] for training in trainings: training_dict = training.model_dump() trainings_data.append(training_dict) with open(filename, 'w', encoding='utf-8') as f: json.dump(trainings_data, f, indent=2, ensure_ascii=False, default=str) print(f"Trainings dumped to {filename}") def main(): # Parse Obsidian notes obsidian_trainings = odp() for training in obsidian_trainings: for exercise in training.exercises: print(exercise.name) # Parse Apple notes apple_trainings = adp() # Combine trainings all_trainings = obsidian_trainings + apple_trainings print(f"Obsidian trainings: {len(obsidian_trainings)}") print(f"Apple trainings: {len(apple_trainings)}") print(f"Total trainings: {len(all_trainings)}") # Dump to JSON dump_trainings_to_json(all_trainings) if __name__ == "__main__": main()