44 lines
1.3 KiB
Python
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()
|