NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Motherless on Steroids
// @description Various improvements for motherless.com: direct download links, remove ads, auto-buffering video, visual enhancements, etc.
// @author xantilas
// @version 2.1.3
// @include http://motherless.com/*
// @grant GM_xmlhttpRequest
// @namespace https://openuserjs.org/install/xantilas/Motherless_on_Steroids.user.js
// ==/UserScript==
removeAds();
visualEnhancements();
loadContent();
startBuffering();
showDownload();
loadStatic();
function removeAds() {
try {
removeElement(document.getElementById('home-page-welcome').parentElement);
removeElement(document.getElementById('anonymous-notice'));
} catch (objErr) {}
try {
removeElement(document.getElementById('top-referers-row'));
removeElement(document.getElementById('spot_view_sb_1'));
//removeElement(document.getElementById('spot_view_sb_2'));
} catch (objErr) {}
var elementCollection = document.getElementsByTagName('div');
for (var i = 0; i < elementCollection.length; i++) {
switch (elementCollection[i].getAttribute('style')) {
case 'margin-top: 15px; margin-bottom: 15px;':
if (elementCollection[i].parentElement.id == 'main') {
removeElement(elementCollection[i]);
i--;
}
break;
}
}
contentEval('var __logged_in = true; var __is_premium = true;');
}
function visualEnhancements() {
try {
document.getElementById('view-page').style.width = '100%';
document.getElementById('media-info').style.marginLeft = 'auto';
document.getElementById('media-info').style.marginRight = 'auto';
if (getVar('__mediatype') == 'video') {
document.getElementById('media-media').style.width = '768px';
document.getElementById('media-media').style.marginLeft = 'auto';
document.getElementById('media-media').style.marginRight = 'auto';
document.getElementById('media-media').style.background = '#000000';
document.getElementById('media-media').innerHTML = '<div style="width: 710px; margin: auto;"><div id="mediaspace"></div></div>';
contentEval(loadPlayer);
contentEval('loadPlayer("' + getVar("__codename") + '", "' + getVar("__fileurl") + '");');
}
document.getElementById('comment-success').style.marginLeft = 'auto';
document.getElementById('comment-success').style.marginRight = 'auto';
document.getElementById('comment-success').style.setProperty('width', '700px', 'important');
document.getElementById('media-comments-form').style.paddingRight = '5px';
document.getElementById('media-comments-form').style.textAlign = 'center';
document.getElementById('media-comments-form').style.marginBottom = '50px';
document.getElementById('media-comments-form').parentElement.insertBefore(document.getElementById('media-comments-wrapper'), document.getElementById('media-comments-form'));
document.getElementById('media-comments-form').parentElement.insertBefore(document.getElementById('comment-success'), document.getElementById('media-comments-form'));
var elementArray = ['comment', 'media-comment-submit'];
for (var i = 0; i < elementArray.length; i++) {
document.getElementById(elementArray[i]).style.marginLeft = 'auto';
document.getElementById(elementArray[i]).style.marginRight = 'auto';
document.getElementById(elementArray[i]).style.setProperty('width', '710px', 'important');
document.getElementById(elementArray[i]).style.resize = 'none';
}
document.getElementById('comment').style.height = '100px';
document.getElementById('media-comment-submit').style.height = '40px';
document.getElementById('media-comments-wrapper').style.height = 'auto';
document.getElementById('media-comments-wrapper').style.margin = 'auto auto 30px auto';
document.getElementById('media-comments-wrapper').style.width = '710px';
} catch (objErr) {}
try {
document.getElementById('full_image').style.textAlign = 'center';
var elementCollection = document.getElementById('full_image').getElementsByTagName('img');
for (var i = 0; i < elementCollection.length; i++) {
elementCollection[i].style.width = '100%';
elementCollection[i].parentElement.href = getVar('__fileurl');
}
} catch (objERR) {}
var elementCollection = document.getElementsByTagName('td');
for (var i = 0; i < elementCollection.length; i++) {
switch (elementCollection[i].className) {
case 'content':
elementCollection[i].style.paddingRight = '5px';
break;
case 'sidebar':
removeElement(elementCollection[i]);
i--;
break;
case 'comments':
elementCollection[i].id = 'comments-tweaked';
break;
case 'footer-ads':
try {
elementCollection[i].parentElement.replaceChild(document.getElementById('comments-tweaked'), elementCollection[i]);
document.getElementById('comments-tweaked').className = 'left-side comments';
document.getElementById('comments-tweaked').style.paddingRight = '5px';
} catch (objErr) {}
break;
}
}
var elementCollection = document.getElementsByTagName('div');
for (var i = 0; i < elementCollection.length; i++) {
switch (elementCollection[i].className) {
case 'sub_menu dark-menu':
elementCollection[i].style.width = 'auto';
break;
case 'media-comment':
elementCollection[i].style.width = 'auto';
break;
}
}
}
function loadContent() {
try {
document.getElementById('content-jumplinks').id = 'content-jumplinks-tweaked';
GM_xmlhttpRequest({
method: 'GET',
url: '/view/jumplinks?codename=' + getVar('__codename'),
headers: {
'X-Requested-With': 'XMLHttpRequest'
},
onload: function (objResponse) {
document.getElementById('content-jumplinks-tweaked').innerHTML = objResponse.responseText;
var elementCollection = document.getElementById('content-jumplinks-tweaked').getElementsByTagName('div');
for (var i = 0; i < elementCollection.length; i++) {
switch (elementCollection[i].className) {
case 'media-linked':
elementCollection[i].style.width = '692px';
elementCollection[i].style.marginLeft = 'auto';
elementCollection[i].style.marginRight = 'auto';
break;
case 'content-inner adgal':
removeElement(elementCollection[i]);
break;
}
switch (elementCollection[i].getAttribute('data-action')) {
case 'OurFriends':
removeElement(elementCollection[i]);
i--;
break;
}
}
}
});
} catch (objErr) {}
}
function startBuffering() {
if (getVar('__mediatype') == 'video') {
contentEval('var jwpCount=0; function jwpReady(){jwplayer("mediaspace").play(true);}; function jwpBuffer(){if(jwpCount<5){jwplayer("mediaspace").play(false)};jwpCount++;}; jwplayer("mediaspace").onReady(jwpReady); jwplayer("mediaspace").onBuffer(jwpBuffer);');
}
}
function showDownload() {
strType = getVar('__mediatype');
strLink = getVar('__fileurl');
if (strLink) {
var elementCollection = document.getElementsByTagName('div');
for (var i = 0; i < elementCollection.length; i++) {
switch (elementCollection[i].className) {
case 'sub_menu dark-menu':
var newLink = document.createElement('a');
newLink.id = 'downloadLink';
newLink.className = 'head_link';
newLink.style.fontSize = '14px';
newLink.href = strLink;
newLink.textContent = (strType == 'video' ? 'Download Video' : 'View Image')
elementCollection[i].appendChild(newLink);
break;
}
}
document.getElementById('button-download').setAttribute('onclick', 'location.href = "' + strLink + '"');
if (strType == 'image') {
document.getElementById('button-download').innerHTML = '<img src="/images/icons/download.png"> View image';
}
document.getElementById('button-download').id = 'button-download-tweaked';
if (strType == 'video') {
GM_xmlhttpRequest({
url: strLink,
method: 'HEAD',
onload: function (objResponse) {
var strHead = objResponse.responseHeaders.match('Content-Length: \\d+').toString();
var size = strHead.match('\\d+').toString() / (1024 * 1024);
size = size.toFixed(2);
document.getElementById('downloadLink').title = size + ' Mb';
document.getElementById('button-download-tweaked').title = size + ' Mb';
}
});
}
}
}
function loadStatic() {
var elementArray = ['http://c.statcounter.com/9725454/0/a53e6548/1/', 'http://c4.gostats.com/bin/count/a_390200/t_5/i_1/counter.png'];
for (var i = 0; i < elementArray.length; i++) {
var newImage = document.createElement('img');
newImage.style.visibility = 'hidden';
newImage.src = elementArray[i];
document.getElementById('main').appendChild(newImage);
}
}
function loadPlayer(codename, fileurl) {
jwplayer("mediaspace").setup({
"file": fileurl,
"image": "http://thumbs.motherlessmedia.com/thumbs/" + codename + ".jpg",
"startparam": "start",
"mute": false,
"controlbar": "over",
"repeat": false,
"height": 565,
"wmode": "opaque",
"abouttext": "Motherless",
"aboutlink": "http://motherless.com/about",
"width": 710,
"tracks": [{
"file": "/view/vtt?codename=" + codename,
"kind": "thumbnails"
}],
});
}
function removeElement(elementItem) {
elementItem.parentElement.removeChild(elementItem);
}
function contentEval(source) {
var script = document.createElement('script');
script.setAttribute('type', 'application/javascript');
script.textContent = source;
document.body.appendChild(script);
document.body.removeChild(script);
}
function getVar(strVar) {
var strHTML = document.documentElement.innerHTML;
try {
strHTML = strHTML.match(strVar + '.+?[,;]').toString();
if (strHTML) {
eval('var ' + strHTML.slice(0, -1));
return eval(strVar);
}
} catch (objErr) {}
}