NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name rarbgPlus
// @namespace Azev
// @homepage https://openuserjs.org/scripts/Azev/rarbgPlus
// @description Please visit: https://openuserjs.org/scripts/Azev/rarbgPlus
// @updateURL https://openuserjs.org/install/Azev/rarbgPlus.user.js
// @downloadURL https://openuserjs.org/install/Azev/rarbgPlus.user.js
// @author Azev (leandro.azevedo@gmail.com)
// @version 5.1.1
// @grant none
// @icon http://www.rarbg.to/favicon.ico
// @include http*://*rarbg.com/*
// @include /.*rarbg\.*/
// ==/UserScript==
/* Changelog
5.1.1
- Fixed include to match regex
5.1
- Display count of results omitted/blacklisted (if any)
- Improved rxCleanNames
- changed cover link from http://torcache.net to http://itorrents.org
torcache not accepting different domain direct download of torrents
check if thumbnail / torrent file exists : http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp
404
5.0.1
- Fixed torrent date appearance
5.0
- New release from rargb Fixer (discontinued)
*/
/* OPTIONS */
var THUMB_SIZE = 200; // thumbnail size (width)
var HIDE_RECOMMENDED = true; // hide 'recommended'
//var rxBlacklist = /suicidegirls|evil|ztod|paintoy|DoctorAdventures|TeensLikeItBig|BigTitsAtSchool|pervsonpatrol|ThaiGirlsWild|letstryanal|HandsOnHarcore|doghousedigital|handsonhardcore|RestrainedElegance|demon/gi; // comment this line if you don't want filters (filter refers to title)
/* CODE */
var css, cleanName, i, j, t;
var catMusic = false;
var rxHash = /([a-f0-9]{40})/i;
var rxName = /title="(.*?)"/i;
var rxId = /href="\/torrent\/(.*?)"/i;
var rxTags = /DarkSlateGray">(.*?)<\/span>/i;
var rxImdb = /imdb=(.*?)"/i;
var rxDate = /(\d{4}-\d{2}-\d{2}).*?/i;
var rxSize = /([0-9\.]+ [MG]B)/i;
var rxSeeds = />(\d)<\/font>/i;
var blacklisted = 0;
if (typeof rxBlacklist == 'undefined'){
var rxBlacklist = new RegExp(/^$/gi);
}
var rxCleanNames = /multi\d|\.\w+\.(org|net|com)|xxx|mvgroup.*/gi;
var rxTypes = /imageset|(x|h)\.?264|avc|(480|540|720|1080)p|korsub|(sd)\.|\W(true)?hd(tv)?([\d\.]+)?|(dvd|bd|hd|br|web)rip|(web|dvd)scr|bluray|mkv|mov|flv|wmv|web-dl|aac(\.?\d\.\d)?|dts(-hd)?|truehd|ac3(\.?\d\.\d)?|dd(\.?\d\.\d)|mp(3|4)|dv3|flac|xvid|divx\d?|(\[)?\d+\s?(kbps)(\])?|ps\d|pc|xbox\d|rip+|MA\.5\.1|multisub(s)?|\[techtools\]/gi;
//altTorrentLink = "http://torcache.net/torrent/"
//altTorrentLink = "http://thetorrent.org/"
altTorrentLink = "http://itorrents.org/torrent/"
var list = document.getElementsByClassName('lista2');
var data = [];
var results = '<div id="results">';
var icon_download = 'https://dyncdn.me/static/20/img/16x16/download.png';
var icon_imdb = 'https://dyncdn.me/static/20/images/imdb_thumb.gif';
var icon_youtube = 'https://dyncdn.me/static/20/images/youtube_thumb.gif';
//var icon_torcache = 'https://dyncdn.me/static/20/green_arrow_small.png';
//var icon_magnet = 'https://dyncdn.me/static/20/img/magnet.gif';
function rxGet(rx, str){ // return regEx match or ''
var ret = rx.exec(str);
ret = ( ret !== null ) ? ret[1] : '';
return(ret);
}
/*****************************************************************/
if (document.getElementsByClassName('lista2t').length > 0){ // check if there are results
category = rxGet(/category=([;\d]+)/, decodeURIComponent(window.location.href)).split(';');
if ( (category.indexOf('23') !== -1) || (category.indexOf('25') !== -1) )
catMusic = true;
// build data[]
for (i=0; i<list.length; i++){
if ( rxGet(rxName, list[i].innerHTML) !== ''){ // skip 'direct download' (ad)
if ( !rxGet(rxName, list[i].innerHTML).match(rxBlacklist) ){ // skip blacklisted items
data.push({
"id" : rxGet(rxId, list[i].innerHTML)
, "hash" : rxGet(rxHash, list[i].innerHTML)
, "name" : rxGet(rxName, list[i].innerHTML)
, "tags" : rxGet(rxTags, list[i].innerHTML).replace(/imdb.*/gi,'').split(/, | i/gi)
, "imdb" : rxGet(rxImdb, list[i].innerHTML)
, "date" : rxGet(rxDate, list[i].innerHTML)
, "seeds" : rxGet(rxSeeds, list[i].innerHTML)
, "size" : rxGet(rxSize, list[i].innerHTML)
});
} else {
blacklisted++;
}
}
}
// process data[]
for (i=0; i<data.length; i++){
results += '<div class="result">';
results += '<span class="t_title">$name</span>';
results += '<a href="$altTorrentLink"><img class="cover" width="' + THUMB_SIZE + '" src="$cover"></a><br>';
results += '<div id="labels">';
results += '<span id="size">$size</span><span id="rDate">$date</span>$types$tags$imdb$rarbg</div>';
results += '</div>';
results = results.replace('$cover', 'http://dyncdn.me/posters2/' + data[i].hash.charAt(0) + '/' + data[i].hash + '.jpg');
cleanName = data[i].name;
if ( data[i].name.lastIndexOf('-') !== -1 ){ // remove tailing '-reLeASer'
if ( data[i].name.charAt( data[i].name.lastIndexOf('-')-1) !== ' '){ // skip if preceded by space. eg: ' VA - '
cleanName = data[i].name.substr(0, data[i].name.lastIndexOf('-')) // remove tailing '-reLeASer'
}
}
cleanName = cleanName
.replace(rxCleanNames, ' ')
.replace(rxTypes, ' ')
.replace(/\.|\s{2,}|com_|_/gi, ' ')
.replace(/(\d{4})/gi, '($1)') // year -> (year)
.replace(/\[\s+\]|-\s+$|\[\s+$/gi, '') // clear artifacts
.replace(/\[\(|\(\(/gi, '(')
.replace(/\)\]|\)\)/gi, ')')
.trim();
results = results.replace('$name', '<a href="https://www.rarbg.to/torrent/'+ data[i].id + '">' + cleanName + '</a>'); // name link
results = results.replace('$altTorrentLink', altTorrentLink + data[i].hash.toUpperCase() + '.torrent');
results = results.replace('$size', data[i].size); // size
results = results.replace('$date', data[i].date); // date
// types
t = '';
types = data[i].name.match(rxTypes);
if (types){
for (j=0; j<types.length ; j++){
t += '<span class="type">' + types[j].replace(/\[|\]/gi, '') + '</span>';
}
}
results = results.replace( '$types' , t);
// tags
t = '';
if (data[i].tags[0] !== ''){
for (j=0; j<data[i].tags.length ; j++){
t += '<span class="tag">' + data[i].tags[j] + '</span>';
}
}
results = results.replace( '$tags' , t);
// imdb & youtube
t = '';
if (data[i].imdb !== '') {
t = '<br><a target="_blank" href="http://imdb.com/title/'+data[i].imdb+'"><img src="'+icon_imdb+'"></a>';
t += '<a target="_blank" href="https://www.youtube.com/results?search_query='+cleanName+' trailer"><img src="'+icon_youtube+'"></a>';
}
results = results.replace('$imdb', t);
// rarbg torrent link
t = '';
t = '<a href="https://www.rarbg.to/download.php?id='+data[i].id+'&f='+data[i].name+'.torrent"><img src="'+icon_download+'"></a>';
results = results.replace('$rarbg', t);
}
// replace results
results += '</div>';
if (blacklisted>0){
results += '<span id="blacklisted"> Omitted results (blacklisted): <b>' + blacklisted + '</b></span>';
}
document.getElementsByClassName('lista2t')[0].outerHTML = results;
// css formating
css = '#results{text-align: center; padding: 10px 0 0 10px}';
css += '.result{background-color: #D3DDE7; display: inline-block; width: '+ THUMB_SIZE +'px; padding: 10px; margin: 0 10px 10px 0; border: 1px solid #9FAABC; border-radius: 3px; overflow: hidden; vertical-align: top}';
css += '.t_title a {display: block; padding: 0 4px 5px 0; text-align: center; font-weight: 600; font-size: 1.1em; text-decoration: none}'; // torrent tile
css += '#t_title a:hover {color: #000}';
css += '.result span{display: block; vertical-align: middle;}';
thumbHeight = catMusic ? THUMB_SIZE : THUMB_SIZE*3/2;
css += 'img.cover {width: '+ THUMB_SIZE +'px; height: '+thumbHeight+'px; vertical-align: middle; object-fit: cover; border: 1px solid #777; margin-bottom: 5px;}';
css += '#labels span, #size {border-radius: 3px; padding: 2px; margin: 2px; display: inline-block; cursor: default}';
css += '#rDate {background-color: #6C8BD2; color: #fff}';
css += '#size {background-color: #F8C85A; color: #000}';
css += '.type {background-color: #30519E; color: #fff}';
css += '.tag {background-color: #9EBD55; color: #000}';
css += '#labels a {border-radius: 3px; margin: 2px; vertical-align: middle; display: inline-block; overflow: hidden}';
css += '#blacklisted {display:block; text-align: center; color: #A91818}';
// search box
//css += '#searchTorrent{ height: 30px; overflow: hidden; transition: height .25s} #searchTorrent:hover{ height: 180px}';
// apply css
var style = document.createElement('style');
if (style.styleSheet)
style.styleSheet.cssText = css;
else
style.appendChild(document.createTextNode(css));
document.getElementsByTagName('head')[0].appendChild(style);
}
// hide iframes
elms = document.getElementsByTagName("iframe");
for (i=0; i < elms.length; i++) {
elms[i].style.display = 'none';
elms[i].src = 'about:blank';
}
// hide 'recommended' covers
if (HIDE_RECOMMENDED) {
if ( document.documentElement.innerHTML.indexOf('Recommended torrents') !=-1 ){
elms = document.getElementsByClassName("lista");
for (i=5; i <= 12; i++) {
elms[i].style.display = 'none';
}
}
elms = document.getElementsByTagName("b");
for (i=0; i < elms.length; i++) {
if ( elms[i].innerHTML.indexOf('Recommended torrents :') !=-1 ) elms[i].style.display = 'none';
}
}
// hide bottom ad
elms = document.getElementsByTagName('a');
for (i=0; i < elms.length; i++) {
if (elms[i].getAttribute('href') !== null){
if ( elms[i].getAttribute('href').indexOf('buy-vpn') !== -1 ){
elms[i].style.display = 'none';
elms[i].href='#';
}
}
}
// hide direct download links (ad)
elms = document.getElementsByTagName("a");
for (i=0; i < elms.length; i++) {
if ( elms[i].outerHTML.indexOf('direct') !=-1 ){
elms[i].parentNode.parentNode.style.display = 'none';
elms[i].href='#';
}
}
// add altTorrentLink
var anchor, hash;
elms = document.getElementsByTagName('a');
for (i=0; i < elms.length; i++) {
if ( elms[i].getAttribute('href') !== null){
if ( elms[i].getAttribute('href').indexOf('magnet:') !== -1 ){
anchor = document.createElement('A');
hash = (/:([0-9a-fA-F]{40})/.exec( elms[i].getAttribute('href') )[1].toUpperCase() );
url = altTorrentLink + hash + '.torrent';
anchor.setAttribute('href', url);
anchor.style.display = 'block';
anchor.style.padding = '10px';
anchor.style.color = '#3c0';
anchor.innerHTML = 'Download torrent from ' + altTorrentLink.match(/\/\/([\w\d\.]+)\//)[1];
elms[i].parentNode.appendChild(anchor);
}
}
}