f1tness_parser/dump_trainings.py

44 lines
1.3 KiB
Python

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()