self.save()
def __unicode__(self):
- return '_'.join([self.item.title, unicode(self.parameters.processor)])
+ return '_'.join([self.item.title, unicode(self.preset.processor)])
class Task(BaseResource):
def run(self, streaming=False):
self.status_setter(_RUNNING)
-
results_root = 'results'
results_path = os.path.join(settings.MEDIA_ROOT, results_root)
if not os.path.exists(results_path):
hdf5_file = str(self.experience.uuid) + '.hdf5'
item.hdf5 = os.path.join(item_path, hdf5_file)
item.save()
- if streaming:
+
+ def stream_task(pipe):
for chunk in pipe.stream():
yield chunk
+
+ if streaming:
+ stream_task(pipe)
else:
pipe.run()
+
item.lock_setter(True)
- #pipe.results.to_hdf5(item.hdf5.path)
+ # pipe.results.to_hdf5(item.hdf5.path)
for preset in presets.keys():
proc = presets[preset]
if proc.type == 'analyzer':
for result_id in proc.results.keys():
parameters = proc.results[result_id].parameters
- preset, c = Preset.objects.get_or_create(processor=preset.processor,
- parameters=unicode(parameters))
+ preset, c = Preset.objects.get_or_create(
+ processor=preset.processor,
+ parameters=unicode(parameters))
result, c = Result.objects.get_or_create(preset=preset,
item=item)
hdf5_file = str(result.uuid) + '.hdf5'
def run(sender, **kwargs):
instance = kwargs['instance']
- if instance.status == 2:
+ if instance.status == _PENDING:
instance.run()
-pre_save.connect(set_mimetype, sender=Item)
-pre_save.connect(set_hash, sender=Item)
-pre_save.connect(set_mimetype, sender=Result)
+post_save.connect(set_mimetype, sender=Item)
+post_save.connect(set_hash, sender=Item)
+post_save.connect(set_mimetype, sender=Result)
post_save.connect(run, sender=Task)
<li>author: {{ object.author }}</li>
<li>lock : {{ object.lock }}</li>
-
</ul>
+
+
{% block html5-player %}
<audio controls>
<source src="download/ogg" type="audio/ogg">
Your browser does not support the audio element.
</audio>
{% endblock html5-player %}
- {% block player %}
-
-
- <div id="player_maximized" class="ts-skin-lab">
- <div id="player_header">
- <a href="#" class="toggle">Minimize</a>
- <a href="#" class="embed_player_frame"></></a>
- </div>
- <div class="wazing"></div>
- </div>
- <div id="rightcol">
- <div id="player_minimized" class="ts-skin-lab">
- <a href="#" class="toggle">Maximize</a>
- <a href="#" class="embed_player_frame"></></a>
- <div class="wazing"></div>
- <div id="player" class="ts-player">
- </div>
- </div>
-
- {% if "video" in mime_type %}
- <div>
- <video id="my_video_1" class="video-js vjs-default-skin" width="362" height="240" controls preload="auto" data-setup="{}">
- <!-- Hello Chrome and Firefox (and Opera?) -->
- {% comment "Optional note" %}
- <source src="{% url "telemeta-item-export" item.public_id mime_type|mime_to_ext %}" type="{{ mime_type }}" />
- {% endcomment %}
- </video>
- <!--<div id="videotime"></div>-->
- </div>
- <script>
- (function(){
- var v = document.getElementsByTagName('video')[0]
- var t = document.getElementById('videotime');
- v.addEventListener('timeupdate',function(event){
- t.innerHTML = v.currentTime;
- },false);
- })();
- </script>
- {% endif %}
-
-
- </div>
- {% endblock player %}
{% endblock content %}
if created:
selection.save()
selection.items.add(item)
- task = Task(experience=experience, selection=selection,
- status=_DRAFT)
+ task, created = Task.objects.get_or_create(experience=experience,
+ selection=selection)
task.save()
+
# Run task in streaming mode
response = StreamingHttpResponse()
response['streaming_content'] = task.run(streaming=True)