forked from 0x2620/pandora
merge?
This commit is contained in:
commit
9770eefcd4
6 changed files with 14 additions and 7 deletions
|
@ -31,6 +31,7 @@
|
||||||
"canEditPlaces": {"staff": true, "admin": true},
|
"canEditPlaces": {"staff": true, "admin": true},
|
||||||
"canEditSitePages": {"staff": true, "admin": true},
|
"canEditSitePages": {"staff": true, "admin": true},
|
||||||
"canEditUsers": {"admin": true},
|
"canEditUsers": {"admin": true},
|
||||||
|
"canImportAnnotations": {"staff": true, "admin": true},
|
||||||
"canPlayClips": {"guest": 2, "member": 2, "friend": 4, "staff": 4, "admin": 4},
|
"canPlayClips": {"guest": 2, "member": 2, "friend": 4, "staff": 4, "admin": 4},
|
||||||
"canPlayVideo": {"guest": 1, "member": 1, "friend": 4, "staff": 4, "admin": 4},
|
"canPlayVideo": {"guest": 1, "member": 1, "friend": 4, "staff": 4, "admin": 4},
|
||||||
"canSeeDebugMenu": {"staff": true, "admin": true},
|
"canSeeDebugMenu": {"staff": true, "admin": true},
|
||||||
|
|
|
@ -241,7 +241,7 @@ def frame(videoFile, frame, position, height=128, redo=False):
|
||||||
videoFile input
|
videoFile input
|
||||||
frame output
|
frame output
|
||||||
position as float in seconds
|
position as float in seconds
|
||||||
width of frame
|
height of frame
|
||||||
redo boolean to extract file even if it exists
|
redo boolean to extract file even if it exists
|
||||||
'''
|
'''
|
||||||
if exists(videoFile):
|
if exists(videoFile):
|
||||||
|
|
|
@ -850,7 +850,7 @@ class Item(models.Model):
|
||||||
'''
|
'''
|
||||||
Video related functions
|
Video related functions
|
||||||
'''
|
'''
|
||||||
def frame(self, position, height=128):
|
def frame(self, position, height=None):
|
||||||
offset = 0
|
offset = 0
|
||||||
streams = self.streams()
|
streams = self.streams()
|
||||||
for stream in streams:
|
for stream in streams:
|
||||||
|
@ -858,7 +858,10 @@ class Item(models.Model):
|
||||||
offset += stream.duration
|
offset += stream.duration
|
||||||
else:
|
else:
|
||||||
position = position - offset
|
position = position - offset
|
||||||
height = min(height, stream.resolution)
|
if not height:
|
||||||
|
height = stream.resolution
|
||||||
|
else:
|
||||||
|
height = min(height, stream.resolution)
|
||||||
path = os.path.join(settings.MEDIA_ROOT, stream.path(),
|
path = os.path.join(settings.MEDIA_ROOT, stream.path(),
|
||||||
'frames', "%dp"%height, "%s.jpg"%position)
|
'frames', "%dp"%height, "%s.jpg"%position)
|
||||||
if not os.path.exists(path) and stream.video:
|
if not os.path.exists(path) and stream.video:
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
"canEditPlaces": {"staff": true, "admin": true},
|
"canEditPlaces": {"staff": true, "admin": true},
|
||||||
"canEditSitePages": {"staff": true, "admin": true},
|
"canEditSitePages": {"staff": true, "admin": true},
|
||||||
"canEditUsers": {"admin": true},
|
"canEditUsers": {"admin": true},
|
||||||
|
"canImportAnnotations": {"staff": true, "admin": true},
|
||||||
"canPlayClips": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
"canPlayClips": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
||||||
"canPlayVideo": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
"canPlayVideo": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
||||||
"canSeeDebugMenu": {"staff": true, "admin": true},
|
"canSeeDebugMenu": {"staff": true, "admin": true},
|
||||||
|
@ -564,7 +565,7 @@
|
||||||
"itemFind": {"conditions": [], "operator": "&"},
|
"itemFind": {"conditions": [], "operator": "&"},
|
||||||
"itemSort": [{"key": "position", "operator": "+"}],
|
"itemSort": [{"key": "position", "operator": "+"}],
|
||||||
"itemView": "info",
|
"itemView": "info",
|
||||||
"listColumns": ["title", "source", "project", "topics", "language", "duration"],
|
"listColumns": ["title", "source", "project", "topic", "language", "duration"],
|
||||||
"listColumnWidth": {},
|
"listColumnWidth": {},
|
||||||
"listSelection": [],
|
"listSelection": [],
|
||||||
"listSort": [{"key": "title", "operator": "+"}],
|
"listSort": [{"key": "title", "operator": "+"}],
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
pandora.ui.item = function() {
|
pandora.ui.item = function() {
|
||||||
|
|
||||||
var that = Ox.Element();
|
var that = Ox.Element(),
|
||||||
|
videoOptions;
|
||||||
|
|
||||||
pandora.api.get({
|
pandora.api.get({
|
||||||
id: pandora.user.ui.item,
|
id: pandora.user.ui.item,
|
||||||
|
@ -42,7 +43,7 @@ pandora.ui.item = function() {
|
||||||
|
|
||||||
if (['video', 'timeline'].indexOf(pandora.user.ui.itemView) > -1) {
|
if (['video', 'timeline'].indexOf(pandora.user.ui.itemView) > -1) {
|
||||||
// fixme: layers have value, subtitles has text?
|
// fixme: layers have value, subtitles has text?
|
||||||
var videoOptions = pandora.getVideoOptions(result.data);
|
videoOptions = pandora.getVideoOptions(result.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!result.data.rendered && [
|
if (!result.data.rendered && [
|
||||||
|
@ -240,6 +241,7 @@ pandora.ui.item = function() {
|
||||||
cuts: result.data.cuts || [],
|
cuts: result.data.cuts || [],
|
||||||
duration: result.data.duration,
|
duration: result.data.duration,
|
||||||
enableDownload: pandora.site.capabilities.canDownloadVideo[pandora.user.level] >= result.data.rightslevel,
|
enableDownload: pandora.site.capabilities.canDownloadVideo[pandora.user.level] >= result.data.rightslevel,
|
||||||
|
enableImport: pandora.site.capabilities.canImportAnnotations[pandora.user.level],
|
||||||
enableSubtitles: pandora.user.ui.videoSubtitles,
|
enableSubtitles: pandora.user.ui.videoSubtitles,
|
||||||
find: pandora.user.ui.itemFind,
|
find: pandora.user.ui.itemFind,
|
||||||
getFrameURL: function(position) {
|
getFrameURL: function(position) {
|
||||||
|
|
|
@ -794,7 +794,7 @@ pandora.getVideoOptions = function(data) {
|
||||||
pandora.site.video.resolutions.forEach(function(resolution) {
|
pandora.site.video.resolutions.forEach(function(resolution) {
|
||||||
options.video[resolution] = Ox.range(data.parts).map(function(i) {
|
options.video[resolution] = Ox.range(data.parts).map(function(i) {
|
||||||
var part = (i + 1),
|
var part = (i + 1),
|
||||||
prefix = pandora.site.site.videoprefix.replace('PART', part); // fixme: '{part}' would be more consistent
|
prefix = pandora.site.site.videoprefix.replace('{part}', part);
|
||||||
return prefix + '/' + (data.item || pandora.user.ui.item) + '/'
|
return prefix + '/' + (data.item || pandora.user.ui.item) + '/'
|
||||||
+ resolution + 'p' + part + '.' + pandora.user.videoFormat;
|
+ resolution + 'p' + part + '.' + pandora.user.videoFormat;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue