class Matterhorn::Endpoint::Ingest
Matterhorn::Endpoint::Ingest
===¶ ↑
Constants
- HTTP_PROTOCOL_RE
Public Instance Methods
addAttachment(file, flavor)
click to toggle source
————————————————————————– endpoint methodes —
# File lib/matterhorn/endpoint/ingest.rb, line 8 def addAttachment(file, flavor) unless @media_pkg_xml_remote then raise(Matterhorn::Error, "No media package is available!"); end @media_pkg_local.add_attachment(file, flavor) if @media_pkg_local begin split_response http_endpoint_client.post( "ingest/addAttachment", { 'flavor' => flavor, 'mediaPackage' => @media_pkg_xml_remote, 'BODY' => file } ) @media_pkg_xml_remote = response_body rescue => ex exception_handler('addAttachment', ex, { 400 => "Media package not valid! / media package:\n#{@media_pkg_xml_remote}" } ) raise ex end @media_pkg_xml_remote end
addCatalog(file, flavor)
click to toggle source
# File lib/matterhorn/endpoint/ingest.rb, line 31 def addCatalog(file, flavor) unless @media_pkg_xml_remote then raise(Matterhorn::Error, "No media package is available!"); end @media_pkg_local.add_catalog(file, flavor) if @media_pkg_local begin split_response http_endpoint_client.post( "ingest/addCatalog", { 'flavor' => flavor, 'mediaPackage' => @media_pkg_xml_remote, 'BODY' => file } ) @media_pkg_xml_remote = response_body rescue => ex exception_handler('addCatalog', ex, { 400 => "Media package not valid! / media package:\n#{@media_pkg_xml_remote}" } ) raise ex end @media_pkg_xml_remote end
addDCCatalog(dublin_core)
click to toggle source
# File lib/matterhorn/endpoint/ingest.rb, line 54 def addDCCatalog(dublin_core) unless @media_pkg_xml_remote then raise(Matterhorn::Error, "No media package is available!"); end @media_pkg_local.add_dc_catalog(dublin_core) if @media_pkg_local begin split_response http_endpoint_client.post( "ingest/addDCCatalog", { 'flavor' => 'dublincore/episode', 'mediaPackage' => @media_pkg_xml_remote, 'dublinCore' => dublin_core } ) @media_pkg_xml_remote = response_body rescue => ex exception_handler('addDCCatalog', ex, { 400 => "Media package not valid! / media package:\n#{@media_pkg_xml_remote}" } ) raise ex end @media_pkg_xml_remote end
addTrack(file_or_url, flavor)
click to toggle source
# File lib/matterhorn/endpoint/ingest.rb, line 78 def addTrack(file_or_url, flavor) unless @media_pkg_xml_remote then raise(Matterhorn::Error, "No media package is available!"); end @media_pkg_local.add_track(file_or_url, flavor) if @media_pkg_local begin if HTTP_PROTOCOL_RE =~ file_or_url split_response http_endpoint_client.post( "ingest/addTrack", { 'flavor' => flavor, 'mediaPackage' => @media_pkg_xml_remote, 'url' => file_or_url } ) else split_response http_endpoint_client.post( "ingest/addTrack", { 'flavor' => flavor, 'mediaPackage' => @media_pkg_xml_remote, 'BODY' => file_or_url } ) end @media_pkg_xml_remote = response_body rescue => ex exception_handler('addTrack', ex, { 400 => "Media package not valid! / media package:\n#{@media_pkg_xml_remote}" } ) raise ex end @media_pkg_xml_remote end
createMediaPackage(source_path = nil, prefix = nil)
click to toggle source
Create a media package on the matterhorn server. If the source_path to the source folder of uploaded items for that media package is given, then a local media description file ‘manifest.xml’ will be automaticaly saved in that folder.
# File lib/matterhorn/endpoint/ingest.rb, line 115 def createMediaPackage(source_path = nil, prefix = nil) if @media_pkg_xml_remote then raise(Matterhorn::Error, "A media package is allready created!"); end @media_pkg_local = if source_path Matterhorn::MediaPackage.new(nil, {:path => source_path, :prefix => prefix}) else nil end begin split_response http_endpoint_client.get( "ingest/createMediaPackage" ) @media_pkg_xml_remote = response_body rescue => ex exception_handler('createMediaPackage', ex, {}) raise ex end @media_pkg_xml_remote end
ingest(wdID = 'full', options = {})
click to toggle source
# File lib/matterhorn/endpoint/ingest.rb, line 136 def ingest(wdID = 'full', options = {}) unless @media_pkg_xml_remote then raise(Matterhorn::Error, "No media package is available!"); end @media_pkg_local.save if @media_pkg_local options['mediaPackage'] = @media_pkg_xml_remote begin split_response http_endpoint_client.post( "ingest/ingest/#{wdID}", options ) @workflow_inst = response_body rescue => ex exception_handler('ingest', ex, { 400 => "Media package not valid! / media package:\n#{@media_pkg_xml_remote}" } ) raise ex end workflow_instance end
media_package(kind = 'local')
click to toggle source
—————————————————————————- helper methodes —
# File lib/matterhorn/endpoint/ingest.rb, line 165 def media_package(kind = 'local') unless @media_pkg_xml_remote then raise(Matterhorn::Error, "No media package is available!"); end if kind == 'local' && @media_pkg_local return @media_pkg_local elsif @media_pkg_xml_remote Matterhorn::MediaPackage.new(@media_pkg_xml_remote) else nil end end
media_package_identifier()
click to toggle source
# File lib/matterhorn/endpoint/ingest.rb, line 157 def media_package_identifier return nil unless @media_pkg_xml_remote Matterhorn::MediaPackage.new(@media_pkg_xml_remote).identifier end
setTitle(title)
click to toggle source
# File lib/matterhorn/endpoint/ingest.rb, line 177 def setTitle(title) dublin_core = <<DUBLIN_CORE <dublincore xmlns="http://www.opencastproject.org/xsd/1.0/dublincore/" xmlns:dcterms="http://purl.org/dc/terms/"> <dcterms:title>#{title.encode(:xml => :text)}</dcterms:title> </dublincore> DUBLIN_CORE addDCCatalog(dublin_core) end
workflow_instance()
click to toggle source
# File lib/matterhorn/endpoint/ingest.rb, line 188 def workflow_instance @workflow_inst ? Matterhorn::WorkflowInstance.new(@workflow_inst) : nil end