[GC] UL Trophy ordering

Order trophies by gold/silver/bronze in every userlookup and also shows the CSS code used in the browser's console

// ==UserScript==
// @name         [GC] UL Trophy ordering
// @namespace    https://greasyfork.org/users/1230396
// @version      1.0
// @description  Order trophies by gold/silver/bronze in every userlookup and also shows the CSS code used in the browser's console
// @author       Berna
// @match        https://www.grundos.cafe/userlookup/?user=*
// @icon         https://i.imgur.com/gDxnNrn.gif
// @license      MIT
// ==/UserScript==

function extractUrlEndAndApplyCSS() {
  var elements = document.querySelectorAll('.ul__gametrophy');

  var cssRulesByOrder = {};

  elements.forEach(function (element) {
    var lastClass = element.classList[element.classList.length - 1];

    var imgElement = element.querySelector('img');

    if (imgElement) {
      var srcAttribute = imgElement.getAttribute('src');
      var urlEnd = srcAttribute.substring(srcAttribute.lastIndexOf('/') + 1);

      var orderMatch = urlEnd.match(/_(\d+)\.gif/);
      var order = orderMatch ? orderMatch[1] : '';

      if (!cssRulesByOrder[order]) {
        cssRulesByOrder[order] = [];
      }

      cssRulesByOrder[order].push('.' + lastClass + ',');
    }
  });

  var styleElement = document.createElement('style');

  document.head.appendChild(styleElement);

  for (var order in cssRulesByOrder) {
    var cssRules = cssRulesByOrder[order].join(' ');
    var cssRuleText = cssRules.slice(0, -1) + ' { order: ' + order + '; }';

    console.log(cssRuleText);

    styleElement.textContent += cssRuleText;
  }
}

extractUrlEndAndApplyCSS();