javascript:(() => { if (window.tinysort === undefined) { var script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/tinysort/2.3.0/tinysort.min.js'; script.onload = function() { sortGoodreads(); }; document.getElementsByTagName('head')[0].appendChild(script); } else { sortGoodreads(); } function getRatingCount(ratingString) { var rating = /([\d.]+) avg rating/.exec(ratingString)[1]; return parseFloat(rating); } function sortGoodreads() { var listSelector = '.tableList tr[itemtype="http://schema.org/Book"]'; tinysort(listSelector, { order: 'desc', sortFunction: (a, b) => { var countA = getRatingCount(jQuery(a.elm).find('.minirating').text()); var countB = getRatingCount(jQuery(b.elm).find('.minirating').text()); return countA === countB ? 0 : (countA > countB ? 1 : -1); } }); } })();