class Stupeflixclient::StupeflixClient
Public Class Methods
new(accessKey, privateKey, host = "http://services.stupeflix.com", service = 'stupeflix-1.0', debug = false)
click to toggle source
Calls superclass method
Stupeflixclient::StupeflixBase::new
# File lib/stupeflixclient/stupeflix_client.rb, line 7 def initialize(accessKey, privateKey, host = "http://services.stupeflix.com", service = 'stupeflix-1.0', debug = false) super(accessKey, privateKey, host, service, debug) @batch = false @batchData = "" end
Public Instance Methods
_getAbsoluteUrl( url, followRedirect = false)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 66 def _getAbsoluteUrl( url, followRedirect = false) urlPart = getContentUrl(url, 'GET', nil) if followRedirect conn = connection.Connection(@base_url, followRedirect = false) response = conn.request_get(urlPart) return response["headers"]["location"] else return @base_url + urlPart end end
actionUrl( user, resource, profile, action)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 174 def actionUrl( user, resource, profile, action) path = [user, resource, profile] s = "" path.each do |p| if p == nil break end s += sprintf( "/%s", p ) end s += sprintf( "/%s/", action ) return s end
batchEnd()
click to toggle source
End a batch: actually send data
# File lib/stupeflixclient/stupeflix_client.rb, line 24 def batchEnd @batchData += "</batch>" sendDefinitionBatch(body = @batchData) @batchData = "" @batch = false end
batchStart( maxSize = 1000000)
click to toggle source
Start a batch, used for speeduping video definition upload Operation that can be batched : sendDefinition and createProfiles Operation Only works for xml definition, not zip, and xml must be in UTF8
# File lib/stupeflixclient/stupeflix_client.rb, line 17 def batchStart( maxSize = 1000000) @batch = true @batchData = "<batch>" @batchMaxSize = maxSize end
createProfiles( user, resource, profiles)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 107 def createProfiles( user, resource, profiles) profileData = profiles.xmlGet if @batch @batchData += profileData @batchData += "</task>" if @batchData.length >= @batchMaxSize begin @batchEnd finally batchStart(@batchMaxSize) end end else url, parameters = profileCreateUrl(user, resource, profileData) contentType = @APPLICATION_URLENCODED_CONTENT_TYPE body = "" parameters.each_pair do |k,v| body += CGI::escape(k) + "=" + CGI::escape(v) end return sendContent("POST", url, contentType, filename = nil, body = body) end end
definitionBatchUrl()
click to toggle source
helper functions : build non signed urls for each kind of action
# File lib/stupeflixclient/stupeflix_client.rb, line 152 def definitionBatchUrl return "/batch/" end
definitionUrl( user, resource)
click to toggle source
helper functions : build non signed urls for each kind of action
# File lib/stupeflixclient/stupeflix_client.rb, line 147 def definitionUrl( user, resource) return sprintf( "/%s/%s/definition/", user, resource) end
getDefinition( user, resource, filename)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 61 def getDefinition( user, resource, filename) url = definitionUrl(user, resource) return getContent(url, filename)['size'] end
getMarker( status)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 137 def getMarker( status) if status.length == 0 return nil end lastStatus = status[-1] #return map(lambda x: lastStatus[x], ["user", "resource", "profile"]) return [] end
getProfile( user, resource, profile, filename)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 82 def getProfile( user, resource, profile, filename) url = profileUrl(user, resource, profile) getContent(url, filename) end
getProfileReport( user, resource, profile, filename)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 102 def getProfileReport( user, resource, profile, filename) url = profileReportUrl(user, resource, profile) getContent(url, filename) end
getProfileReportUrl( user, resource, profile, followRedirect = false)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 97 def getProfileReportUrl( user, resource, profile, followRedirect = false) url = profileReportUrl(user, resource, profile) return _getAbsoluteUrl(url, followRedirect) end
getProfileThumb( user, resource, profile, filename)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 92 def getProfileThumb( user, resource, profile, filename) url = profileThumbUrl(user, resource, profile, "thumb.jpg") getContent(url, filename) end
getProfileThumbUrl( user, resource, profile, followRedirect = false)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 87 def getProfileThumbUrl( user, resource, profile, followRedirect = false) url = profileThumbUrl(user, resource, profile, "thumb.jpg") return _getAbsoluteUrl(url, followRedirect) end
getProfileUrl( user, resource, profile, followRedirect = false)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 77 def getProfileUrl( user, resource, profile, followRedirect = false) url = profileUrl(user, resource, profile) return _getAbsoluteUrl(url, followRedirect) end
getStatus( user = nil, resource = nil, profile = nil, marker = nil, maxKeys = nil)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 130 def getStatus( user = nil, resource = nil, profile = nil, marker = nil, maxKeys = nil) url, parameters = statusUrl(user, resource, profile, marker, maxKeys) ret = getContent(url, filename = nil, parameters = parameters) status = JSON.parse(ret['body']) return status end
profileCreateUrl( user, resource, profiles)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 168 def profileCreateUrl( user, resource, profiles) s = sprintf( "/%s/%s/", user, resource) parameters = {@XML_PARAMETER => profiles} return s, parameters end
profileReportUrl( user, resource, profile)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 164 def profileReportUrl( user, resource, profile) return sprintf( "/%s/%s/%s/%s/", user, resource, profile, "report.xml") end
profileThumbUrl( user, resource, profile, thumbname)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 160 def profileThumbUrl( user, resource, profile, thumbname) return sprintf( "/%s/%s/%s/%s/", user, resource, profile, thumbname) end
profileUrl( user, resource, profile)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 156 def profileUrl( user, resource, profile) return sprintf( "/%s/%s/%s/", user, resource, profile) end
sendDefinition( user, resource, filename = nil, body = nil)
click to toggle source
Send a definition file to the API
# File lib/stupeflixclient/stupeflix_client.rb, line 32 def sendDefinition( user, resource, filename = nil, body = nil) url = definitionUrl(user, resource) if body contentType = @TEXT_XML_CONTENT_TYPE; elsif isZip(filename) contentType = @APPLICATION_ZIP_CONTENT_TYPE else contentType = @TEXT_XML_CONTENT_TYPE end if @batch and contentType == @TEXT_XML_CONTENT_TYPE @batchData += sprintf("<task user=\"%s\" resource=\"%s\">", user, resource) if body @batchData += body else @batchData += File.open(filename).read end else return sendContent("PUT", url, contentType, filename, body) end end
sendDefinitionBatch( filename = nil, body = nil)
click to toggle source
Send a definition file to the API
# File lib/stupeflixclient/stupeflix_client.rb, line 55 def sendDefinitionBatch( filename = nil, body = nil) url = @definitionBatchUrl contentType = @TEXT_XML_CONTENT_TYPE; return sendContent("PUT", url, contentType, filename, body) end
statusUrl( user, resource, profile, marker = nil, maxKeys = nil)
click to toggle source
# File lib/stupeflixclient/stupeflix_client.rb, line 187 def statusUrl( user, resource, profile, marker = nil, maxKeys = nil) params = {} if marker != nil params[@MARKER_PARAMETER] = marker.join('/') end if maxKeys != nil params[@MAXKEYS_PARAMETER] = maxKeys end return [actionUrl(user, resource, profile, "status"), params] end