lbry-desktop/ui/util/lbrytv.js
2020-03-17 18:25:49 +01:00

38 lines
1.3 KiB
JavaScript

const { Lbryio } = require('lbryinc');
const { URL, LBRY_TV_STREAMING_API } = require('../../config');
function generateStreamUrl(claimName, claimId, apiUrl) {
let prefix = LBRY_TV_STREAMING_API || apiUrl;
if (prefix.includes('localhost')) {
return `${prefix}/content/claims/${claimName}/${claimId}/stream`;
}
new Promise((resolve, reject) => {
Lbryio.call('locale', 'get', {}, 'post').then(result => {
if (prefix.split('//').length > 1) {
prefix = prefix.replace('//', '//' + result.continent + '.');
}
resolve(prefix);
});
})
.then(p => {
console.log(`${p}/content/claims/${claimName}/${claimId}/stream`);
return `${p}/content/claims/${claimName}/${claimId}/stream`;
})
.catch(err => {
console.error(err.stack || err);
return `${prefix}/content/claims/${claimName}/${claimId}/stream`;
});
}
function generateEmbedUrl(claimName, claimId) {
return `${URL}/$/embed/${claimName}/${claimId}`;
}
function generateDownloadUrl(claimName, claimId, apiUrl) {
const streamUrl = generateStreamUrl(claimName, claimId, apiUrl);
return `${streamUrl}?download=1`;
}
// module.exports needed since the web server imports this function
module.exports = { generateStreamUrl, generateEmbedUrl, generateDownloadUrl };