Index: sitescripts/notifications/parser.py
diff --git a/sitescripts/notifications/parser.py b/sitescripts/notifications/parser.py
index d8679b89b625495b593b2484b4b0cc6a27cc6329..33045408e90e96a42bcdc15d29d45c5427376b18 100644
--- a/sitescripts/notifications/parser.py
+++ b/sitescripts/notifications/parser.py
@@ -27,23 +27,40 @@ from sitescripts.utils import get_config
 
 def _parse_targetspec(value, name):
     target = {}
-    for spec in value.split():
-        known = False
-        for parameter in ('extension', 'application', 'platform'):
-            if spec.startswith(parameter + '='):
-                target[parameter] = spec[len(parameter + '='):]
-                known = True
-            elif spec.startswith(parameter + 'Version>='):
-                target[parameter + 'MinVersion'] = spec[len(parameter + 'Version>='):]
-                known = True
-            elif spec.startswith(parameter + 'Version<='):
-                target[parameter + 'MaxVersion'] = spec[len(parameter + 'Version<='):]
-                known = True
-            elif spec.startswith(parameter + 'Version='):
-                target[parameter + 'MinVersion'] = target[parameter + 'MaxVersion'] = spec[len(parameter + 'Version='):]
-                known = True
-        if not known:
-            raise Exception("Unknown target specifier '%s' in file '%s'" % (spec, name))
+
+    items = [
+        (r'^(extension|application|platform)(=)(.+)$', {
+            '=': (lambda k, v: {k: v}),
+        }),
+        (r'^(extension|application|platform)Version(=|\>=|\<=)(.+)$', {
+            '>=': (lambda k, v: {k + 'MinVersion': v}),
+            '<=': (lambda k, v: {k + 'MaxVersion': v}),
+            '=': (lambda k, v: {k + 'MinVersion': v, k + 'MaxVersion': v}),
+        }),
+        (r'^(blockedTotal)(=|\>=|\<=)(\d+)$', {
+            '>=': (lambda k, v: {k + 'Min': int(v)}),
+            '<=': (lambda k, v: {k + 'Max': int(v)}),
+            '=': (lambda k, v: {k + 'Min': int(v), k + 'Max': int(v)}),
+        }),
+        (r'^(locales)(=)([\w\-,]+)$', {
+            '=': (lambda k, v: {k: v.split(',')}),
+        }),
+    ]
+
+    try:
+        for spec in value.split():
+            for regx, ops in items:
+                m = re.search(regx, spec)
+                if m:
+                    key, op, value = m.groups()
+                    target.update(ops[op](key, value))
+                    break
+            else:
+                raise ValueError
+    except (KeyError, ValueError):
+        raise Exception(
+            "Unknown target specifier '{}' in file '{}'".format(spec, name))
+
     return target
 
 
