diff --git a/homeassistant/observers.py b/homeassistant/observers.py index 353aad1c7b0..17000ed7bc0 100644 --- a/homeassistant/observers.py +++ b/homeassistant/observers.py @@ -278,10 +278,8 @@ class DeviceTracker(object): # Make sure that each device is mapped # to a unique category name - name = row['name'] - - if not name: - name = "unnamed_device" + name = util.slugify(row['name']) if row['name'] \ + else "unnamed_device" tries = 0 suffix = "" diff --git a/homeassistant/util.py b/homeassistant/util.py index 102f01a10aa..a27032aa72e 100644 --- a/homeassistant/util.py +++ b/homeassistant/util.py @@ -2,7 +2,17 @@ import re +RE_SANITIZE_FILENAME = re.compile(r"(~|(\.\.)|/|\+)") +RE_SLUGIFY = re.compile(r'[^A-Za-z0-9_]+') + def sanitize_filename(filename): """ Sanitizes a filename by removing .. / and \\. """ - return re.sub(r"(~|(\.\.)|/|\+)", "", filename) + return RE_SANITIZE_FILENAME.sub("", filename) + + +def slugify(text): + """ Slugifies a given text. """ + text = text.strip().replace(" ", "_") + + return RE_SLUGIFY.sub("", text)