aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/routing.py4
-rw-r--r--mediagoblin/templates/mediagoblin/metadata_contexts/v170
-rw-r--r--mediagoblin/views.py6
-rw-r--r--setup.py2
4 files changed, 81 insertions, 1 deletions
diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py
index 1393f01c..a6b2a543 100644
--- a/mediagoblin/routing.py
+++ b/mediagoblin/routing.py
@@ -28,7 +28,9 @@ _log = logging.getLogger(__name__)
def get_url_map():
add_route('index', '/', 'mediagoblin.views:root_view')
add_route('terms_of_service','/terms_of_service',
- 'mediagoblin.views:terms_of_service')
+ 'mediagoblin.views:terms_of_service'),
+ add_route('metadata_context','/metadata_context/v<int:version_number>/',
+ 'mediagoblin.views:metadata_context_view'),
mount('/auth', auth_routes)
mount('/mod', moderation_routes)
diff --git a/mediagoblin/templates/mediagoblin/metadata_contexts/v1 b/mediagoblin/templates/mediagoblin/metadata_contexts/v1
new file mode 100644
index 00000000..1325d920
--- /dev/null
+++ b/mediagoblin/templates/mediagoblin/metadata_contexts/v1
@@ -0,0 +1,70 @@
+{
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "contributor":{
+ "@id":"dc:title",
+ "@type":"xsd:string"
+ },
+ "coverage":{
+ "@id":"dc:coverage",
+ "@type":"xsd:string"
+ },
+ "created":{
+ "@id":"dc:created",
+ "@type":"xsd:date"
+ },
+ "creator":{
+ "@id":"dc:created",
+ "@type":"xsd:date"
+ },
+ "date":{
+ "@id":"dc:date",
+ "@type":"xsd:date"
+ },
+ "description":{
+ "@id":"dc:description",
+ "@type":"xsd:string"
+ },
+ "format":{
+ "@id":"dc:format",
+ "@type":"xsd:string"
+ },
+ "identifier":{
+ "@id":"dc:identifier",
+ "@type":"xsd:string"
+ },
+ "language":{
+ "@id":"dc:language",
+ "@type":"xsd:string"
+ },
+ "publisher":{
+ "@id":"dc:publisher",
+ "@type":"xsd:string"
+ },
+ "relation":{
+ "@id":"dc:relation",
+ "@type":"xsd:string"
+ },
+ "rights":{
+ "@id":"dc:rights",
+ "@type":"xsd:anyURI"
+ },
+ "source":{
+ "@id":"dc:source",
+ "@type":"xsd:string"
+ },
+ "subject":{
+ "@id":"dc:subject",
+ "@type":"xsd:string"
+ },
+ "title": {
+ "@id":"dc:title",
+ "@type":"xsd:string"
+ },
+ "type":{
+ "@id":"dc:type",
+ "@type":"xsd:string"
+ }
+ }
+}
diff --git a/mediagoblin/views.py b/mediagoblin/views.py
index 009e48e4..1ed71473 100644
--- a/mediagoblin/views.py
+++ b/mediagoblin/views.py
@@ -62,3 +62,9 @@ def terms_of_service(request):
return render_to_response(request,
'mediagoblin/terms_of_service.html', {})
+
+def metadata_context_view(request):
+ version = request.matchdict['version_number']
+ return render_to_response(request,
+ 'mediagoblin/metadata_contexts/v{version}'.format(
+ version=version), {})
diff --git a/setup.py b/setup.py
index 59f0ab8f..15fd913c 100644
--- a/setup.py
+++ b/setup.py
@@ -66,8 +66,10 @@ try:
'mock',
'itsdangerous',
'pytz',
+ 'six>=1.4.1',
'oauthlib==0.5.0',
'unidecode',
+ 'jsonschema',
'ExifRead',
# PLEASE change this when we can; a dependency is forcing us to set this