sudo python setup.py install
+Install JSON-RPC server
+------------------------
+
+In order to use markers on the player, you will need a JSONN-RPC server for django::
+
+ git clone git://github.com/samuraisam/django-json-rpc.git
+ cd django-json-rpc
+ python setup.py install
+
+
Install Telemeta
------------------
ADMINS = telemeta requires that you indicate an administrator here
DATABASES = your database setting dict (don't forget to create the database if needed)
MEDIA_ROOT = absolute path to the media directory you just created
- INSTALLED_APPS = add 'telemeta' to the tuple
+ INSTALLED_APPS = add 'telemeta' and 'jsonrpc' to the tuple
Add the following variables:
class MediaInvalidCodeError(Exception):
pass
+class MediaItemMarker(ModelCore):
+ "2D marker object : text value vs. time"
+
+ element_type = 'marker'
+ item_id = CharField(_('item_id'), required=True)
+ public_id = CharField(_('public_id'), required=True)
+ time = CharField(_('time'), required=True)
+ description = TextField(_('description'))
+ author = CharField(_('author'))
+
+ class Meta(MetaCore):
+ db_table = 'media_markers'
+
+ def __unicode__(self):
+ return self.time + ' : ' + self.description + '(' + self.author + ')'
# Author: Olivier Guilyardi <olivier@samalyse.com>
from django.conf.urls.defaults import *
-from telemeta.models import MediaItem, MediaCollection
+from telemeta.models import MediaItem, MediaCollection, MediaItemMarker
from telemeta.web.base import WebView
+from jsonrpc import jsonrpc_site
import os.path
import telemeta.config
url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'},
name="telemeta-login"),
url(r'^logout/$', web_view.logout, name="telemeta-logout"),
+
+ # JSON RPC
+ url(r'^json/browse/', 'jsonrpc.views.browse', name="jsonrpc_browser"), # for the graphical browser/web console only, omissible
+ url(r'^json/$', jsonrpc_site.dispatch, name='jsonrpc_mountpoint'),
+ url(r'^json/(?P<method>[a-zA-Z0-9.]+)$', jsonrpc_site.dispatch), # for HTTP GET only, also omissible
)
import datetime
import timeside
+from jsonrpc import jsonrpc_method
+
from django.template import RequestContext, loader
from django import template
from django.http import HttpResponse
from django.core.context_processors import csrf
from telemeta.models import MediaItem, Location, MediaCollection, EthnicGroup
-from telemeta.models import dublincore, Enumeration
+from telemeta.models import dublincore, Enumeration, MediaItemMarker
import telemeta.interop.oai as oai
from telemeta.interop.oaidatasource import TelemetaOAIDataSource
from django.core.exceptions import ObjectDoesNotExist
from telemeta.cache import TelemetaCache
import telemeta.web.pages as pages
+
def render(request, template, data = None, mimetype = None):
return render_to_response(template, data, context_instance=RequestContext(request),
mimetype=mimetype)
def logout(self, request):
auth.logout(request)
return redirect('telemeta-home')
+
+ @jsonrpc_method('telemeta.add_marker')
+ def add_marker(request, item_id, public_id, time, description):
+ # FIXME: get current logged author
+ author = 'test'
+# item = MediaItem.objects.get(public_id=item_id)
+ m = MediaItemMarker(item_id=item_id)
+ m.public_id = public_id
+ m.time = time
+ m.description = description
+ m.author= author
+ m.save()
+# return m.__dict__
+
+ @jsonrpc_method('telemeta.del_marker')
+ def del_marker(request, public_id):
+ m = MediaItemMarker.objects.get(public_id=public_id)
+ m.delete()
+