diff --git a/pyproject.toml b/pyproject.toml index e6b6187..124a6f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,8 @@ dependencies = [ "sqlalchemy", "textual", "tomli", - "tomli_w" + "tomli_w", + "unidecode" ] [project.urls] diff --git a/src/pilgrim/service/travel_diary_service.py b/src/pilgrim/service/travel_diary_service.py index e1aa6e6..8932b8c 100644 --- a/src/pilgrim/service/travel_diary_service.py +++ b/src/pilgrim/service/travel_diary_service.py @@ -7,7 +7,7 @@ from pilgrim.utils import DirectoryManager from sqlalchemy.exc import IntegrityError from pilgrim.models.travel_diary import TravelDiary - +from unidecode import unidecode class TravelDiaryService: def __init__(self, session): @@ -20,8 +20,10 @@ class TravelDiaryService: - Replaces spaces with underscores - Ensures name is unique by adding a suffix if needed """ + transliterated_name = unidecode(name) + # Remove special characters and replace spaces - safe_name = re.sub(r'[^\w\s-]', '', name) + safe_name = re.sub(r'[^\w\s-]', '', transliterated_name) safe_name = safe_name.strip().replace(' ', '_').lower() # Ensure we have a valid name