100 lines
2.6 KiB
Python
100 lines
2.6 KiB
Python
# encoding: utf-8
|
|
# vi:si:et:sw=4:sts=4:ts=4
|
|
import os
|
|
|
|
from server import actions, json_response
|
|
from ui import ui
|
|
|
|
def init(backend, site, data):
|
|
response = {}
|
|
return json_response(response)
|
|
actions.register(init, cache=False)
|
|
|
|
def echo(backend, site, data):
|
|
return json_response(data)
|
|
actions.register(echo, cache=False)
|
|
|
|
def site(backend, site, data):
|
|
return json_response({'site': site})
|
|
actions.register(site, cache=False)
|
|
|
|
def addVolume(backend, site, data):
|
|
print data
|
|
path = ui.selectFolder(data)
|
|
if path:
|
|
name = os.path.basename(path)
|
|
volume = backend.add_volume(site, name, path)
|
|
return json_response(volume)
|
|
return json_response({})
|
|
actions.register(addVolume, cache=False)
|
|
|
|
def removeVolume(backend, site, data):
|
|
print data
|
|
return json_response({})
|
|
actions.register(removeVolume, cache=False)
|
|
|
|
def renameVolume(backend, site, data):
|
|
volume = backend.rename_volume(site, data['name'], data['newName'])
|
|
return json_response(volume)
|
|
actions.register(renameVolume, cache=False)
|
|
|
|
def findVolumes(backend, site, data):
|
|
print site, data
|
|
response = {}
|
|
response['items'] = backend.volumes(site)
|
|
return json_response(response)
|
|
actions.register(findVolumes, cache=False)
|
|
|
|
def findFiles(backend, site, data):
|
|
'''
|
|
implements Ox.List api for files
|
|
keys: path, id, size, volume, item, uploaded
|
|
'''
|
|
print site, data
|
|
response = {}
|
|
if not 'keys' in data:
|
|
response['items'] = backend.files(site, keys=['count(*)'])[0]['count(*)']
|
|
print response
|
|
else:
|
|
response['items'] = backend.files(site, keys=data['keys'], limit=data['range'])
|
|
|
|
return json_response(response)
|
|
actions.register(findFiles, cache=False)
|
|
|
|
def uploadFile(backend, site, data):
|
|
'''
|
|
uploadFile {
|
|
id:
|
|
}
|
|
upload file with provides id
|
|
'''
|
|
print data
|
|
return json_response({})
|
|
actions.register(uploadFile, cache=False)
|
|
|
|
def encodeFile(backend, site, data):
|
|
path = ui.selectFile(data)
|
|
oshash = backend.add_file(site, path)
|
|
url = '/%s/480p.webm' % oshash
|
|
return json_response({
|
|
'path': path,
|
|
'oshash': oshash,
|
|
'url': url
|
|
})
|
|
actions.register(encodeFile, cache=False)
|
|
|
|
def cacheVideo(backend, site, data):
|
|
print data
|
|
return json_response({})
|
|
actions.register(encodeFile, cache=False)
|
|
|
|
def selectFile(backend, site, data):
|
|
path = ui.selectFile(data)
|
|
oshash = backend.add_file(site, path)
|
|
return json_response({
|
|
'path': path,
|
|
'oshash': oshash
|
|
})
|
|
actions.register(selectFile, cache=False)
|
|
|