LootRare

Help you choose Loot Bag

目前為 2021-09-02 提交的版本,檢視 最新版本

// ==UserScript==
// @name         LootRare
// @namespace    http://tampermonkey.net/
// @version      0.36
// @description  Help you choose Loot Bag
// @author       dashuo
// @match        https://opensea.io/collection/lootproject
// @match        https://opensea.io/assets/lootproject?*
// @match        https://opensea.io/collection/lootproject?*
// @match        https://opensea.io/collection/xloot
// @match        https://opensea.io/assets/xloot?*
// @match        https://opensea.io/collection/xloot?*
// @icon         https://www.google.com/s2/favicons?domain=opensea.io
// @grant        GM_getResourceText
// @resource DATALootRare https://raw.githubusercontent.com/Anish-Agnihotri/dhof-loot/master/output/rare.json
// ==/UserScript==

var dataRare = GM_getResourceText('DATALootRare')
var gLootRare = JSON.parse(dataRare);
var inited = false;

function findByLootId(lootid) {
  var index = gLootRare.findIndex(function (x) { return x.lootId === lootid;} );
  return gLootRare[index];
}

function parseLootId(bagName) {
    var paragraph = bagName;
    var regex = /Bag #(\d+)/;
    var found = paragraph.match(regex);
    return parseInt(found[1]);
}

function onwheelevent(event) {
    event.preventDefault();

    var elements = document.getElementsByClassName("AssetCardFooter--name");
    for (var i = 0; i < elements.length; i++) {
        elements[i].style.color = "red";
        var bagLabel = elements[i].innerText;
        var lootid = parseLootId(bagLabel);
        var loot = findByLootId(lootid);
        var rootDIV = elements[i].parentElement.parentElement.parentElement;
        var annotations = rootDIV.getElementsByClassName('AssetCardFooter--annotations');
        if (annotations !== undefined) {
            var parentItem = annotations[0];
            var result = parentItem.getElementsByClassName('lootrare-label');
            if (result.length === 0) {
                var newNode = document.createElement('div');
                newNode.className = 'lootrare-label';
                newNode.innerHTML = "<div class='lootrare-label'> score:" + loot.score + " rarest:" + loot.rarest + " </div>";
                parentItem.prepend(newNode);
            }
        }
    }
}

(function() {
    'use strict';

    if (document.readyState == "complete" || document.readyState == "loaded" || document.readyState == "interactive") {
        document.addEventListener('wheel', onwheelevent);
    }
})();