Zusatzinfos für Friendlies für www.onlineliga.de (OFA)
สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/424583/919418/OnlineligaFriendlyInfo.js
/*jshint esversion: 8, multistr: true */ /* globals waitForKeyElements */ // ==UserScript== // @name OnlineligaFriendlyInfo // @namespace https://greasyfork.org/de/users/577453 // @version 0.1.0 // @license LGPLv3 // @description Zusatzinfos für Friendlies für www.onlineliga.de (OFA) // @author KnutEdelbert // @match https://www.onlineliga.de // @require https://greasyfork.org/scripts/5392-waitforkeyelements/code/WaitForKeyElements.js?version=115012 // @grant unsafeWindow // ==/UserScript== (function() { 'use strict'; var $ = $ || window.jQuery; async function showTeamInfo(){ let userId; const parentDiv = this.parentNode; const offerRow = parentDiv.parentNode.parentNode; const spanClick = $(parentDiv).find('span.ol-team-name').attr("onclick"); const userIdMatch = spanClick.match(/{\s*'?userId'?\s*:\s*(\d+)\s*}/); let lineup11Value = 0; let lineupAllValue = 0; function euroValue(val){ return `${new Intl.NumberFormat('de-DE').format(val)} €`; } function getData(url){ return $.get(url); } if (userIdMatch){ userId = userIdMatch[1]; const teamData = await getData(`/team/overview/squad?userId=${userId}`); const teamValue = $(teamData).find('span.bandarole-team-value > span.pull-right').text(); const teamRows = $(teamData).filter('div.team-overview-squad-row'); const teamSize = teamRows.length; const playerValues = []; teamRows.each(function(){ const row = $(this); const playerValue = parseInt(row.find('div.col-md-3.col-lg-3.col-sm-6.col-xs-6.text-right').text().trim().replace(/\./g,''),10) || 0; playerValues.push(playerValue); const lineupState = row.find('span.ol-player-squad-display.pull-right'); if (lineupState.length > 0){ if (!$($(lineupState)[0]).hasClass('player-substitute-display')){ lineup11Value += playerValue; } lineupAllValue += playerValue; } }); const friendly11Value = euroValue(lineup11Value); const friendlyAllValue = euroValue(lineupAllValue); const teamValueInt = parseInt(teamValue.replace(/\./g,''),10); const top11Value = playerValues.sort((a,b) => b - a).slice(0,11).reduce((a, b) => a + b, 0); const friendlyPercent = Math.round((lineup11Value/teamValueInt) * 100); const average11Value = Math.round(lineup11Value/11); const averageTeam = Math.round(teamValueInt/teamSize); $(`<div style="font-size:12px;margin-left:20px;"> \ <span style="white-space:nowrap;" title="Durchschnitt MW Aufstellung">${euroValue(average11Value)}/</span> \ <span style="white-space:nowrap;" title="% v. Top 11 (MW)">${Math.round(lineup11Value/top11Value*100)}%</span> \ <br/><span style="white-space:nowrap;" title="Durchschnitt MW Team">${euroValue(averageTeam)}/</span> \ <span style="white-space:nowrap;" title="% v. MW Team">${Math.round(lineup11Value/teamValueInt*100)}%</span> \ </div>`).appendTo($(offerRow).children().eq(1)); } } function run(){ $("div#olFriendlyRequestsContent").on('click','span.user-badge',showTeamInfo); } function init(){ waitForKeyElements ( "div#olFriendlyRequestsContent", run ); } init(); })();