diff --git a/app/core/dto/training.py b/app/core/dto/training.py index 6900456..c853add 100644 --- a/app/core/dto/training.py +++ b/app/core/dto/training.py @@ -22,4 +22,4 @@ class TrainingDTO(BaseModel): id: Optional[int] = None date: date trainer: Optional[str] = None - exercises: Optional[List[ApproachDTO]] = None + exercises: Optional[List[ExerciseDTO]] = None diff --git a/dump_trainings.py b/dump_trainings.py new file mode 100644 index 0000000..45afe28 --- /dev/null +++ b/dump_trainings.py @@ -0,0 +1,44 @@ +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()