您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Finds comp games common among players
// ==UserScript== // @name CompMatch // @namespace https://greasyfork.org/en/users/9694-croned // @version 1.6 // @description Finds comp games common among players // @author Croned // @match https://epicmafia.com/round* // @grant none // ==/UserScript== (function() { 'use strict'; // Your code here... String.prototype.replaceAll = function(search, replacement) { var target = this; return target.replace(new RegExp(search, 'g'), replacement); }; var findId = function (name, cb) { var id; $.get("https://epicmafia.com/user/search?q=" + name, function (data) { data = data.data; if (data.length > 0) { id = data[0].id; cb(id); } else { alert("User " + name + " not found!"); $("#loadingReport").hide(); $("#results").hide(); throw new Error("User not found"); } }); }; var getGames = function (id, num, arr, cb) { $.get("https://epicmafia.com/round/" + round + "/user/" + id + "/game/page?page=" + num, function (data) { data = data.data; for (var index in data) { arr.push(data[index].id); } if (data.length == 10) { getGames(id, num + 1, arr, cb); } else { cb(); } }); }; var round = $("#breadcrumb span:contains('Round')").text().split(" ")[1]; $("#round_middle").prepend("<div id='compSearch'><h3 style='margin-bottom: 10px;'>Search for games players have played together!</h3><form class='form' id='searchCompForm' style='margin-left: 7px;'><div class='search'><div class='search-icon'><i class='icon-search'></i></div><input autocomplete='off' id='searchCompText' placeholder='player name 1, 2, 3, ....' type='text' style='border: 1px solid #777;'></div></form><div id='loadingReport' style='text-align: center; display: none;'><br /><img src='http://www.arabianbusiness.com/skins/ab.main/gfx/loading_spinner.gif' width='50' height='50' /></div><div id='results' style='display: none; text-align: center; margin-top: 10px;'><div id='matchList'><table id='matchTable' style='margin: auto;'></table></div></div></div>"); $("#searchCompForm").submit(function (e) { e.preventDefault(); //$("#searchCompForm").hide(); $("#loadingReport").show(); $("#results").hide(); $("#matchTable").html(""); var input = $("#searchCompText").val().replaceAll(" ", "").split(","); var users = input.slice(); var done = 0; var matches = []; var newMatches; for (var index in input) { (function (index) { var uName = input[index]; input[index] = []; findId(uName, function (uId) { getGames(uId, 1, input[index], function() { done ++; if (done == input.length) { matches = input[0]; for (var i = 0, j, k; i < input.length; i++) { newMatches = []; for (j = 0; j < input[i].length; j++) { for (k = 0; k < matches.length; k++) { if (input[i][j] == matches[k]) { newMatches.push(matches[k]); break; } } } matches = newMatches.slice(); } $("#loadingReport").hide(); $("#results").show(); for (var p in users) { $("#matchTable").append("<tr><td>" + users[p] + ": " + Math.round(100 * (matches.length / input[p].length)) + "%</td></tr>"); } $("#matchTable").append("<tr><td>------------</td></tr>"); for (var m in matches) { $("#matchTable").append("<tr><td><a href='/game/" + matches[m] + "/review'>" + matches[m] + "</a></td></tr>"); } } }); }); })(index); } }); })();