(function(bspage) {
let searchEnabled = true;
let searchBox = document.getElementById('txt-url');
let searchButton = document.getElementById('btn-search');
let pageDomain = document.getElementById('txt-url').getAttribute('data-site');
let server = bspage.getServer();
searchBox.addEventListener('paste', function(e) {
e.preventDefault();
const keyup = new Event('keyup');
const searchUrl = e.clipboardData.getData('text');
searchBox.value = searchUrl;
validateSearchInput(searchUrl);
searchBox.dispatchEvent(keyup);
searchButton.click();
});
searchBox.addEventListener('keyup', function(e) {
if (e.keyCode === 13) {
searchButton.click();
return;
}
if (this.value.length === 0) { document.getElementById('bd-info') && document.getElementById('bd-info').remove() }
validateSearchInput(searchBox.value);
});
searchButton.onclick = function() {
let searchURL = searchBox.value.replace(/ /g, '').replace(/#(.+)?/, '');
if (!searchEnabled || searchURL === '') { return; }
if (!validURL(searchURL)) {
bsmsg.display('', 'Hi sexy, please paste a valid link!
Winky Wink ;)', false, true);
return;
}
let searchDomain = getDomain(searchURL);
if (searchDomain != 'none') {
if ((pageDomain == 'all' && domainDown(searchDomain)) || domainDown(pageDomain)) {
bsmsg.display('', "Looks like the website or its links aren't working right now.
Try again later! Winky Wink ;)", false, true);
return;
}
if (pageDomain != 'all' && (pageDomain != searchDomain)) {
showInfo(true, searchDomain);
return;
}
loading(true);
getInfo(`info=${JSON.stringify({url: encodeURIComponent(searchURL), domain: searchDomain.toLowerCase()})}`);
}
};
function validateSearchInput(input) {
if (!validURL(input)) {
document.getElementById('bd-info') && document.getElementById('bd-info').remove();
return;
}
let searchDomain = getDomain(input);
if (searchDomain == 'none') {
showDomainInfo(false);
return;
}
if (pageDomain != 'all' && (pageDomain != searchDomain)) {
showDomainInfo(true, searchDomain);
return;
}
document.getElementById('bd-info') && document.getElementById('bd-info').remove();
}
function validURL(url) {
let match = url.match(/^http[s]?:\/\/(?:[\w-]+\.)?[\w-]+\.\w+\/(?:[^<>:])+$/);
return match === null ? false : true;
}
function getDomain(url) {
let domain = url.match(/[\w-]+\.\w+(?=\/)/)[0];
for (let i = 0; i < bspage.sitesList.length; i++) {
let site = bspage.sitesList[i].toLowerCase();
if (site == 'badass-softcore.com') { site = 'badassoftcore.com'; }
if (domain == site) { return bspage.sitesList[i]; }
}
return 'none';
}
function domainDown(domain) {
for (let i = 0; i < bspage.sitesDown.length; i++) {
if (domain.toLowerCase() == bspage.sitesDown[i].toLowerCase()) { return true; }
}
return false;
}
function showDomainInfo(found, domain = '') {
let msg = '';
document.getElementById('bd-info') && document.getElementById('bd-info').remove();
if (found) {
let cleanDomain = cleanDomainName(domain);
let link = `${cleanDomain}`;
msg = `You can download this video on our ${link} page!`;
} else {
msg = "Sorry, we don't support this website!";
}
msg = document.createRange().createContextualFragment(`${msg}`);
document.querySelector('.search-cont').after(msg);
}
function cleanDomainName(domain) {
for (let i = 0; i < bspage.sitesMultiple.length; i++) {
if (domain == bspage.sitesMultiple[i]) { return domain; }
}
return domain.match(/[\w-]+(?=\.)/)[0];
}
if (typeof(downloadItUrl) != 'undefined') {
const keyup = new Event('keyup');
searchBox.value = downloadItUrl;
searchBox.dispatchEvent(keyup);
searchButton.click();
}
function loading(active) {
if (active) {
searchEnabled = false;
searchButton.classList.remove('enabled');
bsmsg.display('', 'Please wait sexily while we retrieve your videos...', true, false);
} else {
searchEnabled = true;
searchButton.classList.add('enabled');
}
}
function getInfo(data) {
let xhr = new XMLHttpRequest();
xhr.onload = () => {
let data = xhr.response;
if (data !== null && data['success']) {
infoSuccess(data);
} else {
infoError(data);
}
};
xhr.onerror = function() { infoError(null); };
xhr.timeout = 60000;
xhr.open("POST", `${server}/get-info`);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.responseType = 'json';
xhr.send(data);
}
function infoSuccess(data) {
document.querySelector('.down-cont') && document.querySelector('.down-cont').remove();
document.querySelector('.file-info') && document.querySelector('.file-info').remove();
let table = "
bd-title | ||
---|---|---|
Size | Quality | |