hacking-jack's picture
Upload 1579 files
8070315 verified
from request import PandaRequest
from models import Video, Cloud, Encoding, Profile, Notifications, PandaDict
from models import GroupRetriever, SingleRetriever
from models import PandaError
from upload_session import UploadSession
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
class Panda(object):
def __init__(self, access_key, secret_key, cloud_id=None, api_host='api.pandastream.com', api_port=443):
self.cloud_id = cloud_id
self.access_key = access_key
self.secret_key = secret_key
self.api_host = api_host
self.api_port = api_port
self.api_version = 2
self.videos = GroupRetriever(self, Video)
self.clouds = GroupRetriever(self, Cloud)
self.encodings = GroupRetriever(self, Encoding)
self.profiles = GroupRetriever(self, Profile)
self.notifications = SingleRetriever(self, Notifications)
def credentials(self):
cred = [
'cloud_id',
'access_key',
'secret_key',
'api_host',
'api_port',
'api_version'
]
return {key: self.__dict__[key] for key in cred }
def get(self, request_path, params={}):
return PandaRequest('GET', request_path, self.credentials(), params).send()
def post(self, request_path, params={}):
return PandaRequest('POST', request_path, self.credentials(), params).send()
def put(self, request_path, params={}):
return PandaRequest('PUT', request_path, self.credentials(), params).send()
def delete(self, request_path, params={}):
return PandaRequest('DELETE', request_path, self.credentials(), params).send()
def signed_params(self, verb, path, timestamp=None, params={}):
return PandaRequest(verb, path, self.credentials(), params, timestamp).signed_params()
def upload_session(self, path, **kwargs):
return UploadSession(self, path, **kwargs)
def cloud_details(self):
return SingleRetriever(self, PandaDict, "/clouds/{0}".format(self.cloud_id)).get()