Greasy Fork is available in English.

PTP - filter ratings list

type to filter the ratings list

// ==UserScript==
// @name     PTP - filter ratings list
// @namespace   differentia
// @version  0.3
// @include https://passthepopcorn.me/user.php?action=ratings&id=*
// @grant    none
// @description type to filter the ratings list
// ==/UserScript==

elm = document.getElementById('ratings_table_wrapper');
newCode = '<input type="text" id="filterInput" placeholder="filter on..." /> Results: <span id="filterCount"></span>';
elm.insertAdjacentHTML('beforebegin', newCode);

tr = document.getElementById('ratings_table').getElementsByTagName("tr");
tdList = [];
for (i = 0; i < tr.length; i++) {
  if (tr[i].parentNode.nodeName == 'THEAD') {
    continue;
  }
  td = tr[i].getElementsByTagName('td')[0];
  if (td) {
    tdList.push(td);
  }
}

input = document.getElementById('filterInput');
input.addEventListener('keyup', filterFunction);

function filterFunction() {
  var filter, td, i, count;
  count = 0;
	filter = input.value.toUpperCase();
	for (i = 0; i < tdList.length; i++) {
		td = tdList[i];
    txtValue = td.textContent || td.innerText;
    txtValueNormalized = removeAccents(txtValue);
    if (txtValue.toUpperCase().indexOf(filter) > -1
       || txtValueNormalized.toUpperCase().indexOf(filter) > -1) {
      td.parentNode.style.display = "";
      count++;
    } else {
      td.parentNode.style.display = "none";
    }
  }
  document.getElementById('filterCount').innerText = count;
}

function removeAccents(str) {
  return str.normalize('NFD').replace(/[\u0300-\u036f]/g, "");
}