Began work on metadata validation
authortilly-Q <nattilypigeonfowl@gmail.com>
Thu, 27 Mar 2014 17:31:04 +0000 (13:31 -0400)
committertilly-Q <nattilypigeonfowl@gmail.com>
Mon, 21 Apr 2014 16:10:19 +0000 (12:10 -0400)
mediagoblin/gmg_commands/batchaddmedia.py

index 678c8ab4ff8815eb275d1079ade2079a9b2f32ad..83aea7b7b072413ead7e3fd89885f10391a5ab7b 100644 (file)
@@ -26,6 +26,7 @@ from mediagoblin.submit.lib import (
     FileUploadLimit, UserUploadLimit, UserPastUploadLimit)
 
 from mediagoblin import mg_globals
+from jsonschema import validate
 
 def parser_setup(subparser):
     subparser.description = """\
@@ -215,3 +216,35 @@ def parse_csv_file(file_contents):
 def teardown(temp_files):
     for temp_file in temp_files:
         subprocess.call(['rm','-r',temp_file])
+
+def check_metadata_format(metadata_dict):
+    schema = json.loads("""
+{
+    "$schema":"http://json-schema.org/schema#",
+    "properties":{
+        "@context":{},
+        "contributor":{},
+        "coverage":{},
+        "created":{},
+        "creator":{},
+        "date":{},
+        "description":{},
+        "format":{},
+        "identifier":{},
+        "language":{},
+        "publisher":{},
+        "relation":{},
+        "rights" : {
+            "format":"uri",
+            "type":"string"
+        },
+        "source":{},
+        "subject":{},
+        "title":{},
+        "type":{}
+    },
+    "additionalProperties": false,
+    "required":["title","@context"]
+}""")
+    try:
+        validate(metadata_dict, schema)