Skip to content

Instantly share code, notes, and snippets.

@RadGH
Last active August 29, 2015 14:24
Show Gist options
  • Save RadGH/0b7ed53297483352c1c4 to your computer and use it in GitHub Desktop.
Save RadGH/0b7ed53297483352c1c4 to your computer and use it in GitHub Desktop.
Add ratings to GTA5 Social Club map browser (List view only)
var ratingToInt = function( str ) {
// numstr = ' 18.6k '
str = str.trim(); // "18.6k"
var number = parseFloat(str); // 18.6
var letter = str.replace(/[^kmb]/g, '');//"k"
switch( letter ) {
case 'k':
number = number * 1000;
break;
case 'm':
number = number * 1000000;
break;
}
return parseInt(number);
}
var ratingsGetValues = function( $element ) {
var $items = $element.children('li');
if ( $items.length < 3 ) return false;
var amounts = {
'up': ratingToInt( $items.eq(0).text() ),
'down': ratingToInt( $items.eq(1).text() ),
'play': ratingToInt( $items.eq(2).text() )
};
amounts.rating = (amounts.up - amounts.down) / amounts.up;
return amounts;
}
var updateList = function() {
var $table = jQuery('#search-results-list');
var $rows = $table.find('tr.mission-result-text');
$rows.each(function() {
var $row = jQuery(this);
var $ratings = $row.find('ul.ratings');
if ( $ratings.find('li.percent').length > 0 ) return;
var votes = ratingsGetValues( $ratings );
if ( !votes ) {
$rows.css('opacity', '0.5');
return;
}
var percent = Math.round(votes.rating * 100);
var $percent_li = jQuery('<li class="percent"><i class="gtavicon-icon_star"></i> ' +percent+ '%</li>');
$ratings.append( $percent_li );
$ratings.css('margin-right', 0);
$ratings.find('li').css({
'margin-left': '5px',
'padding-left': '5px'
});
var color = '#ffffff';
if ( percent > 90 ) color = '#ffffff';
else if ( percent > 80 ) color = '#7EF654';
else if ( percent > 70 ) color = '#7EF654';
else if ( percent > 50 ) color = '#D6E647';
else if ( percent > 40 ) color = '#DEBC41';
else if ( percent > 25 ) color = '#D6833B';
else if ( percent > 10 ) color = '#cc631B';
else color = '#aa0000';
$percent_li.css({
'color': color,
'padding-right': '10px'
});
});
};
var queueUpdateList = function() {
updateList();
setTimeout( updateList, 1000 );
setTimeout( updateList, 3000 );
setTimeout( updateList, 5000 );
setTimeout( updateList, 10000 );
setTimeout( updateList, 20000 );
setTimeout( updateList, 30000 );
setTimeout( updateList, 40000 );
};
jQuery('.search-previous, search-next').on('click', queueUpdateList );
jQuery('#searchFrm').on('submit', queueUpdateList );
updateList();
@RadGH
Copy link
Author

RadGH commented Jul 11, 2015

Bookmarklet version available here: https://gist.github.com/RadGH/fb0e45db83e6596f5650

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment