let url = 'localhost';
let port = 3000;
let api_endpoint = `http://${url}:${port}/api/`;
let api_uri = `subtitles`;
function get_params(params){
return Object.keys(params).map(key=>`${key}=${encodeURIComponent(params[key])}`).join('&');
}
//default params
var params = {
lang : document.querySelector('#language').value,
hash_open_subtitles : hash,
//download : true,
filename : file.name,
filesize : file.size
}
let request_url = `${api_endpoint}${api_uri}?` + get_params(params);
fetch(request_url).then(function(response) {
return (response.status >= 200 && response.status < 300)
? Promise.resolve(response.json())
: Promise.reject(new Error(response.statusText))
}).then(function(json){
var file_url = json[params.lang][0].url;
fetch(file_url).then(function(response) {
return (response.status >= 200 && response.status < 300)
? Promise.resolve(response.blob())
: Promise.reject(new Error(response.statusText))
}).then(function(blob){
download(blob, file.name.replace(/\.([^.]{2,6}?)$/i, '.srt'), "application/x-subrip");
});
}).catch(function(error) { //catches server errors like error 500, DNS, forbidden
console.log('Request failed', error);
});