您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This userscript makes it possible to sort your group list by group name, creation date or total members.
- // ==UserScript==
- // @name Steam Community - Group List Sorter
- // @namespace Royalgamer06
- // @version 1.0
- // @description This userscript makes it possible to sort your group list by group name, creation date or total members.
- // @author Royalgamer06
- // @include /http(s)?\:\/\/steamcommunity\.com\/(id\/.+|profiles\/7656119[0-9]{10})\/groups(\/)?/
- // @grant unsafeWindow
- // ==/UserScript==
- var groupsSelector = ".groupBlock:not(:first)";
- var parentSelector = "#BG_bottom > div:nth-child(2)";
- var groups_creation = Array.from(jQuery(groupsSelector));
- var groups_name = Array.from(
- getOrderedByText(parentSelector, groupsSelector, ".linkTitle", false));
- var groups_members = Array.from(
- getOrderedByText(parentSelector, groupsSelector, ".memberRow > .linkStandard", true));
- function getOrderedByText(parentSelector, childSelector, keySelector, intgr) {
- var parent = jQuery(parentSelector);
- var items = parent.children(childSelector).sort(function(a, b) {
- var vA = intgr ? parseInt(jQuery(keySelector, a).text().replace(/\,| |Members/, "")) : jQuery(keySelector, a).text().toUpperCase();
- var vB = intgr ? parseInt(jQuery(keySelector, b).text().replace(/\,| |Members/, "")) : jQuery(keySelector, b).text().toUpperCase();
- return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
- });
- return items;
- }
- unsafeWindow.orderBy = function orderBy(prop, dir) {
- var groups = null;
- if (prop == "name" && dir == "asc") {
- groups = groups_name;
- } else if (prop == "name" && dir == "desc") {
- var reverse = [];
- for (var i = groups_name.length - 1; i >= 0; i--) reverse.push(groups_name[i]);
- groups = reverse;
- } else if (prop == "creation" && dir == "asc") {
- groups = groups_creation;
- } else if (prop == "creation" && dir == "desc") {
- var reverse = [];
- for (var i = groups_creation.length - 1; i >= 0; i--) reverse.push(groups_creation[i]);
- groups = reverse;
- } else if (prop == "members" && dir == "asc") {
- groups = groups_members;
- } else if (prop == "members" && dir == "desc") {
- var reverse = [];
- for (var i = groups_members.length - 1; i >= 0; i--) reverse.push(groups_members[i]);
- groups = reverse;
- }
- jQuery(groupsSelector).remove();
- jQuery(parentSelector).append(groups);
- };
- jQuery(document).ready(function() {
- jQuery(".sectionDesc").append(" <div class=\"btnv6_blue_hoverfade btn_small\" onclick=\"ShowMenu(this, 'group_order_dropdown', 'right');\"><span>Order by <span class=\"popup_menu_pulldown_indicator\"></span></span></div><div class=\"popup_block_new\" id=\"group_order_dropdown\" style=\"visibility: visible; opacity: 1; display: none;\"><div class=\"popup_body popup_menu\"><a class=\"popup_menu_item\" href=\"javascript:orderBy('name','asc');\">Name Ascending</a><a class=\"popup_menu_item\" href=\"javascript:orderBy('name','desc');\">Name Descending</a><a class=\"popup_menu_item\" href=\"javascript:orderBy('creation','asc');\">Creation Date Ascending</a><a class=\"popup_menu_item\" href=\"javascript:orderBy('creation','desc');\">Creation Date Descending</a><a class=\"popup_menu_item\" href=\"javascript:orderBy('members','asc');\">Total Members Ascending</a><a class=\"popup_menu_item\" href=\"javascript:orderBy('members','desc');\">Total Members Descending</a></div></div>");
- });