spee.ch/helpers/lbryApi.js

131 lines
3.6 KiB
JavaScript
Raw Normal View History

const axios = require('axios');
2017-06-19 15:25:14 -07:00
const logger = require('winston');
function handleLbrynetResponse ({ data }, resolve, reject) {
logger.debug('lbry api data:', data);
if (data.result) {
// check for an error
if (data.result.error) {
logger.debug('Lbrynet api error:', data.result.error);
reject(data.result.error);
return;
};
resolve(data.result);
return;
}
// fallback in case the just timed out
reject(JSON.stringify(data));
}
module.exports = {
publishClaim (publishParams) {
2017-08-03 11:46:56 -07:00
logger.debug(`lbryApi >> Publishing claim to "${publishParams.name}"`);
return new Promise((resolve, reject) => {
axios
.post('http://localhost:5279/lbryapi', {
method: 'publish',
params: publishParams,
})
.then(response => {
handleLbrynetResponse(response, resolve, reject);
})
.catch(error => {
reject(error);
});
});
},
getClaim (uri) {
2017-08-03 11:46:56 -07:00
logger.debug(`lbryApi >> Getting Claim for "${uri}"`);
return new Promise((resolve, reject) => {
axios
.post('http://localhost:5279/lbryapi', {
method: 'get',
2017-07-10 09:29:26 -07:00
params: { uri, timeout: 20 },
})
.then(response => {
handleLbrynetResponse(response, resolve, reject);
})
.catch(error => {
reject(error);
});
});
},
2017-08-15 13:48:42 -07:00
getClaimList (claimName) {
2017-08-04 11:32:21 -07:00
logger.debug(`lbryApi >> Getting claim_list for "${claimName}"`);
return new Promise((resolve, reject) => {
axios
.post('http://localhost:5279/lbryapi', {
method: 'claim_list',
params: { name: claimName },
})
.then(response => {
handleLbrynetResponse(response, resolve, reject);
})
.catch(error => {
reject(error);
});
});
},
resolveUri (uri) {
2017-08-03 11:46:56 -07:00
logger.debug(`lbryApi >> Resolving URI for "${uri}"`);
2017-08-15 18:24:15 -07:00
// console.log('resolving uri', uri);
return new Promise((resolve, reject) => {
axios
.post('http://localhost:5279/lbryapi', {
method: 'resolve',
params: { uri },
})
.then(({ data }) => {
if (data.result[uri].error) { // check for errors
reject(data.result[uri].error);
} else { // if no errors, resolve
resolve(data.result[uri]);
}
})
.catch(error => {
reject(error);
});
});
},
getDownloadDirectory () {
2017-08-03 11:46:56 -07:00
logger.debug('lbryApi >> Retrieving the download directory path from lbry daemon...');
return new Promise((resolve, reject) => {
axios
.post('http://localhost:5279/lbryapi', {
method: 'settings_get',
})
.then(({ data }) => {
if (data.result) {
resolve(data.result.download_directory);
} else {
2017-09-14 09:35:58 -07:00
return new Error('Successfully connected to lbry daemon, but unable to retrieve the download directory.');
}
})
2017-09-14 09:35:58 -07:00
.catch(error => {
logger.error('Lbrynet Error:', error);
resolve('/home/lbry/Downloads/');
});
});
},
2017-09-25 22:49:27 -07:00
createChannel (name) {
2017-09-16 17:50:22 -07:00
return new Promise((resolve, reject) => {
axios
.post('http://localhost:5279/lbryapi', {
method: 'channel_new',
params: {
channel_name: name,
amount : 0.1,
},
})
.then(response => {
2017-10-17 12:12:39 -07:00
logger.verbose('createChannel response:', response);
handleLbrynetResponse(response, resolve, reject);
})
2017-09-25 22:49:27 -07:00
.catch(error => {
2017-10-17 12:12:39 -07:00
logger.error('createChannel error:', error);
2017-09-25 22:49:27 -07:00
reject(error);
});
2017-09-16 17:50:22 -07:00
});
},
};