From c248bb3c387fa361e722aa74b474c7f3525e79e0 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 19 Jan 2015 00:54:30 +0100 Subject: [PATCH] Update calls against TimeSide 0.7 Add TELEMETA_STRICT_CODE in settings to override strict item code checking --- example/sandbox/settings.py | 2 ++ telemeta/models/media.py | 11 +++++++---- telemeta/views/core.py | 1 - telemeta/views/item.py | 19 ++++++++++--------- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/example/sandbox/settings.py b/example/sandbox/settings.py index 1d8ea08b..f4de97fa 100644 --- a/example/sandbox/settings.py +++ b/example/sandbox/settings.py @@ -182,6 +182,8 @@ TELEMETA_STREAMING_FORMATS = ('mp3', 'ogg') TELEMETA_DOWNLOAD_FORMATS = ('wav', 'mp3', 'ogg', 'flac') TELEMETA_PUBLIC_ACCESS_PERIOD = 51 +TELEMETA_STRICT_CODE = False + AUTH_PROFILE_MODULE = 'telemeta.userprofile' SESSION_EXPIRE_AT_BROWSER_CLOSE = False diff --git a/telemeta/models/media.py b/telemeta/models/media.py index c2d21e89..32bcb9a1 100644 --- a/telemeta/models/media.py +++ b/telemeta/models/media.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2010 Samalyse SARL +# Copyright (C) 2010 Samalyse SARL # Copyright (C) 2010-2014 Parisson SARL # This software is a computer program whose purpose is to backup, analyse, @@ -61,6 +61,8 @@ from django.contrib.sites.models import Site from django.forms.models import model_to_dict +strict_code = getattr(settings, 'TELEMETA_STRICT_CODE', False) + # Special code regex of collections for the branch collection_published_code_regex = getattr(settings, 'COLLECTION_PUBLISHED_CODE_REGEX', '[A-Za-z0-9._-]*') collection_unpublished_code_regex = getattr(settings, 'COLLECTION_UNPUBLISHED_CODE_REGEX', '[A-Za-z0-9._-]*') @@ -534,9 +536,10 @@ class MediaItem(MediaResource): return False def clean(self): - if self.code and not self.is_valid_code(self.code): - raise ValidationError("%s is not a valid item code for collection %s" - % (self.code, self.collection.code)) + if strict_code: + if self.code and not self.is_valid_code(self.code): + raise ValidationError("%s is not a valid item code for collection %s" + % (self.code, self.collection.code)) def save(self, force_insert=False, force_update=False): super(MediaItem, self).save(force_insert, force_update) diff --git a/telemeta/views/core.py b/telemeta/views/core.py index 335191f6..984e85f2 100644 --- a/telemeta/views/core.py +++ b/telemeta/views/core.py @@ -43,7 +43,6 @@ import random import datetime import tempfile import zipfile -import timeside import mimetypes from jsonrpc import jsonrpc_method diff --git a/telemeta/views/item.py b/telemeta/views/item.py index b9b1a961..ffc4ddf8 100644 --- a/telemeta/views/item.py +++ b/telemeta/views/item.py @@ -36,15 +36,16 @@ from telemeta.views.core import * +import timeside.core class ItemBaseMixin(object): - graphers = timeside.core.processors(timeside.api.IGrapher) - decoders = timeside.core.processors(timeside.api.IDecoder) - encoders = timeside.core.processors(timeside.api.IEncoder) - analyzers = timeside.core.processors(timeside.api.IAnalyzer) - value_analyzers = timeside.core.processors(timeside.api.IValueAnalyzer) + graphers = timeside.core.processor.processors(timeside.core.api.IGrapher) + decoders = timeside.core.processor.processors(timeside.core.api.IDecoder) + encoders = timeside.core.processor.processors(timeside.core.api.IEncoder) + analyzers = timeside.core.processor.processors(timeside.core.api.IAnalyzer) + value_analyzers = timeside.core.processor.processors(timeside.core.api.IValueAnalyzer) cache_data = TelemetaCache(settings.TELEMETA_DATA_CACHE_DIR) cache_export = TelemetaCache(settings.TELEMETA_EXPORT_CACHE_DIR) @@ -382,7 +383,7 @@ class ItemView(ItemBaseMixin): source = item.get_source() if source: - decoder = timeside.decoder.file.FileDecoder(source) + decoder = timeside.core.get_processor('file_decoder')(source) pipe = decoder for analyzer in self.value_analyzers: @@ -491,7 +492,7 @@ class ItemView(ItemBaseMixin): source = item.get_source() if source: path = self.cache_data.dir + os.sep + image_file - decoder = timeside.decoder.file.FileDecoder(source) + decoder = timeside.core.get_processor('file_decoder')(source) graph = grapher(width=width, height=height) (decoder | graph).run() graph.watermark('timeside', opacity=.6, margin=(5,5)) @@ -579,7 +580,7 @@ class ItemView(ItemBaseMixin): media = self.cache_export.dir + os.sep + file if not self.cache_export.exists(file) or not flag.value: # source > encoder > stream - decoder = timeside.decoder.file.FileDecoder(source) + decoder = timeside.core.get_processor('file_decoder')(source) proc = encoder(media, streaming=True, overwrite=True) if extension in mapping.unavailable_extensions: metadata=None @@ -867,7 +868,7 @@ class ItemDetailView(ItemViewMixin, DetailView): source = item.get_source() if source: - decoder = timeside.decoder.file.FileDecoder(source) + decoder = timeside.core.get_processor('file_decoder')(source) pipe = decoder for analyzer in self.value_analyzers: -- 2.39.5