Greasy Fork is available in English.

Group By Wishability

Things need grouping!

Från och med 2018-09-13. Se den senaste versionen.

// ==UserScript==
// @name         Group By Wishability
// @namespace    https://myfigurecollection.net/profile/tharglet
// @version      1.1
// @description  Things need grouping!
// @author       Tharglet
// @match        https://myfigurecollection.net/users.v4.php?mode=view&*&status=0*
// @require      http://code.jquery.com/jquery-2.1.3.min.js
// @require      https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js
// @require      https://code.jquery.com/color/jquery.color-2.1.2.min.js
// @require      https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js
// @grant        GM_addStyle
// ==/UserScript==

////////LICENCE////////
//This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/.
//Please credit 'Tharglet' for the original code, and provide a link to my MFC profile: https://myfigurecollection.net/profile/tharglet
///////////////////////

//Polyfill for GM_addStyle for Greasemonkey...
if(typeof GM_addStyle == 'undefined') {
    GM_addStyle = (aCss) => {
        'use strict';
        let head = document.getElementsByTagName('head')[0];
        if (head) {
            let style = document.createElement('style');
            style.setAttribute('type', 'text/css');
            style.textContent = aCss;
            head.appendChild(style);
            return style;
        }
        return null;
    };
}

GM_addStyle(`.wish {
min-height: 80px;
margin-top: 20px;
}

.wish h3 {
font-family: "mfc" !important;
}
}
`);

(function() {
    'use strict';

    function updateCollectionMetadata(listItem, dateFormat, currency) {
        var collectionItems = listItem.find(".collection-meta-item");
    }

    $().ready(function() {
        var formData = {"commit":"loadWindow", "window":"collectItem"};
        var searchableStr = document.URL;
        var listing;
        var itemElements;
        var output = searchableStr.match (/[\?\&]output=([^\&\#]+)[\&\#]/i) [1];
        var sort = searchableStr.match (/[\?\&]sort=([^\&\#]+)[\&\#]/i) [1];
        var username = searchableStr.match (/[\?\&]username=([^\&\#]+)[\&\#]/i) [1];
        var i;
        var wishString;
        var stars;
        var loggedInUser = $("span.username").text();
        if(loggedInUser === username) {
            $(".listing-filter-menu .menu").append("<li><a href=\"https://myfigurecollection.net/users.v4.php?mode=view&amp;username=" + username + "&amp;tab=collection&amp;page=1&amp;status=0&amp;output=2&amp;current=keywords&amp;rootId=-1&amp;categoryId=-1&amp;sort=groupByWishability&amp;order=asc\">Wishability</a></li>");
        }
        if(sort === "groupByWishability") {
            if(output == 0) {
                for(i = 5; i > -1; i--) {
                    wishString = "";
                    for(stars = 0; stars < 5; stars++) {
                        if(stars < i) {
                            wishString += "&#xe02a;";
                        } else {
                            wishString += "&#xe02d;";
                        }
                    }
                    $(".listing").append("<div id='wish-" + i + "' class='wish item-icons'><h3>" + wishString + "</h3></div>");
                }
                itemElements = $(".listing-item");
            } else {
                for(i = 0; i < 6; i++) {
                    wishString = "";
                    for(stars = 0; stars < 5; stars++) {
                        if(stars < i) {
                            wishString += "&#xe02a;";
                        } else {
                            wishString += "&#xe02d;";
                        }
                    }
                    $("li.listing-item").prepend("<div id='wish-" + i + "' class='wish item-icons'><h3>" + wishString + "</h3></div>");
                }
                itemElements = $(".item-icon");
            }
            itemElements.each(function() {
                var itemId = $(this).find("meta[name='vars']").attr("content").substring(2);
                var item = this;
                $.ajax({
                    url:"https://myfigurecollection.net/item/" + itemId,
                    type:"POST",
                    data: formData,
                    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
                    dataType: "json",
                    success: function(data){
                        console.log(data);
                        var windowContents = $.parseHTML("<form><div>" + data.htmlValues.WINDOW);
                        var wishability = $(windowContents).find("input[name='wishability']").val();
                        $("div#wish-" + wishability).append(item);
                    },
                    error: function() {
                        $("#loader-" + itemId).remove();
                        listItem.append("<div class='listing-item-meta collection-meta error'>Failed to load mass-editor fragment!</div>");
                    }
                });
            });
        }
    });
})();