summaryrefslogtreecommitdiff
path: root/www/js/rivendell.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/rivendell.js')
-rw-r--r--www/js/rivendell.js249
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');
};