diff options
Diffstat (limited to 'www/js/rivendell.js')
-rw-r--r-- | www/js/rivendell.js | 249 |
1 files changed, 244 insertions, 5 deletions
diff --git a/www/js/rivendell.js b/www/js/rivendell.js index 1531de2..7d0365c 100644 --- a/www/js/rivendell.js +++ b/www/js/rivendell.js @@ -24,9 +24,135 @@ var Rivendell = Rivendell || {}; -Rivendell.Rivendell = function(username, token) { +Rivendell.Rivendell = function(username, token, rdxportEndpoint) { this.username = username; - this.token = token + this.token = token; + this.rdxportEndpoint = rdxportEndpoint; +}; + +Rivendell.Rivendell.prototype.listLog = function(name, success) { + var command = { + COMMAND: 22, + LOGIN_NAME: this.username, + PASSWORD: this.token, + NAME: name + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.listLogs = function(success) { + var command = { + COMMAND: 20, + LOGIN_NAME: this.username, + PASSWORD: this.token + //todo: fix optionals + /*SERVICE_NAME: serviceName, + TRACKABLE: trackable*/ + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.listServices = function(success) { + var command = { + COMMAND: 21, + LOGIN_NAME: this.username, + PASSWORD: this.token + //todo: fix optionals + /*TRACKABLE: trackable*/ + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.listGroup = function(groupName, success) { + var command = { + COMMAND: 5, + LOGIN_NAME: this.username, + PASSWORD: this.token, + GROUP_NAME: groupName + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.listGroups = function(success) { + var command = { + COMMAND: 4, + LOGIN_NAME: this.username, + PASSWORD: this.token + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.listCart = function(cartNumber, includeCuts, success) { + var command = { + COMMAND: 7, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + INCLUDE_CUTS: includeCuts + }; + return $.post(this.rdxportEndpoint, command, success); +}; + +Rivendell.Rivendell.prototype.listCarts = function(groupName, includeCuts, success) { + var command = { + COMMAND: 6, + LOGIN_NAME: this.username, + PASSWORD: this.token, + GROUP_NAME: groupName, + INCLUDE_CUTS: includeCuts + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.addCart = function(groupName, type, cartNumber, success) { + var command = { + COMMAND: 12, + LOGIN_NAME: this.username, + PASSWORD: this.token, + GROUP_NAME: groupName, + TYPE: type, + CART_NUMBER: cartNumber + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.editCart = function(cartNumber, options, success) { + options.COMMAND = 14; + options.LOGIN_NAME = this.username; + options.PASSWORD = this.token; + options.CART_NUMBER = cartNumber; + return $.post(this.rdxportEndpoint, options, success, "xml"); +}; + +Rivendell.Rivendell.prototype.removeCart = function(cartNumber, success) { + var command = { + COMMAND: 13, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber + }; + return $.post(this.rdxportEndpoint, command, success, "xml"); +}; + +Rivendell.Rivendell.prototype.listCut = function(cartNumber, cutNumber, success) { + var command = { + COMMAND: 8, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + CUT_NUMBER: cutNumber + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.listCuts = function(cartNumber, success) { + var command = { + COMMAND: 9, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); }; Rivendell.Rivendell.prototype.addCut = function(cartNumber, success) { @@ -36,7 +162,16 @@ Rivendell.Rivendell.prototype.addCut = function(cartNumber, success) { PASSWORD: this.token, CART_NUMBER: cartNumber }; - return $.post("/rd-bin/rdxport.cgi", command, success, 'xml'); + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.editCut = function(cartNumber, cutNumber, options, success) { + options.COMMAND = 15; + options.LOGIN_NAME = this.username; + options.PASSWORD = this.token; + options.CART_NUMBER = cartNumber; + options.CUT_NUMBER = cutNumber; + return $.post(this.rdxportEndpoint, options, success, "xml"); }; Rivendell.Rivendell.prototype.removeCut = function(destinationCartNumber, destinationCutNumber, success) { @@ -47,11 +182,22 @@ Rivendell.Rivendell.prototype.removeCut = function(destinationCartNumber, destin CART_NUMBER: destinationCartNumber, CUT_NUMBER: destinationCutNumber }; - return $.post("/rd-bin/rdxport.cgi", command, success, 'xml'); + return $.post(this.rdxportEndpoint, command, success, 'xml'); }; +/** + * + * todo: copy description and other data. + * + * @param sourceCartNumber + * @param sourceCutNumber + * @param destinationCartNumber + * @param success + * @returns {*} + */ Rivendell.Rivendell.prototype.copyCut = function(sourceCartNumber, sourceCutNumber, destinationCartNumber, success) { + var self = this; var returnJqXHR; this.addCut(destinationCartNumber, function(data, textStatus, jqXHR) { @@ -91,5 +237,98 @@ Rivendell.Rivendell.prototype.copyAudio = function(sourceCartNumber, sourceCutNu DESTINATION_CART_NUMBER: destinationCartNumber, DESTINATION_CUT_NUMBER: destinationCutNumber }; - return $.post("/rd-bin/rdxport.cgi", command, success, 'xml'); + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.audioInfo = function(cartNumber, cutNumber, success) { + var command = { + COMMAND: 19, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + CUT_NUMBER: cutNumber + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.audioStore = function(success) { + var command = { + COMMAND: 23, + LOGIN_NAME: this.username, + PASSWORD: this.token + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.import = function(cartNumber, cutNumber, channels, normalizationLevel, autotrimLevel, + useMetadata, filename, success) { + var command = { + COMMAND: 2, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + CUT_NUMBER: cutNumber, + CHANNELS: channels, + NORMALIZATION_LEVEL: normalizationLevel, + AUTOTRIM_LEVEL: autotrimLevel, + USE_METADATA: useMetadata, + FILENAME: filename + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.export = function(cartNumber, cutNumber, format, channels, sampleRate, bitRate, + quality, startPoint, endPoint, normalizationLevel, enableMetadata, + success) { + var command = { + COMMAND: 1, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + CUT_NUMBER: cutNumber, + FORMAT: format, + CHANNELS: channels, + SAMPLE_RATE: sampleRate, + BIT_RATE: bitRate, + QUALITY: quality, + START_POINT: startPoint, + END_POINT: endPoint, + NORMALIZATION_LEVEL: normalizationLevel, + ENABLE_METADATA: enableMetadata + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.exportPeaks = function(cartNumber, cutNumber, success) { + var command = { + COMMAND: 16, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + CUT_NUMBER: cutNumber + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.trimAudio = function(cartNumber, cutNumber, trimLevel, success) { + var command = { + COMMAND: 17, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + CUT_NUMBER: cutNumber, + TRIM_LEVEL: trimLevel + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); +}; + +Rivendell.Rivendell.prototype.deleteAudio = function(cartNumber, cutNumber, success) { + var command = { + COMMAND: 3, + LOGIN_NAME: this.username, + PASSWORD: this.token, + CART_NUMBER: cartNumber, + CUT_NUMBER: cutNumber + }; + return $.post(this.rdxportEndpoint, command, success, 'xml'); }; |