// ==UserScript== // @name Destiny 2 LFG Reports // @namespace http://bungie.net/ // @version 0.0.1 // @description Appends a raid report link and pvp info link to public fireteams on the Destiny LFG app. // @author Joseph R. Quinn // @match https://www.bungie.net/en/ClanV2/PublicFireteam?groupId=*&fireteamId=* // @grant none // @noframess // ==/UserScript== (function() { 'use strict'; let hasAlert = false; const raid_url = 'https://raid.report/'; const pvp_url = 'https://destinytracker.com/d2/profile/' function getPCId(el) { const pElem = el.closest('li.user-fireteam'); return pElem.getAttribute('data-membershipid'); } function getRaidPlatformLink(user, platElem) { let platform; switch (platElem.getAttribute('data-platform')) { case 'Blizzard': platform = 'pc'; break; case 'Playstation4': platform = 'ps'; break; case 'XboxOne': platform = 'xb'; break; default: console.error('Invalid platform'); break; } const username = (platform !== 'pc') ? user.innerText : getPCId(user); return raid_url.concat(platform,'/', username); } function getPvPPlatformLink(user, platElem) { let platform; switch (platElem.getAttribute('data-platform')) { case 'Blizzard': platform = 'pc'; break; case 'Playstation4': platform = 'psn'; break; case 'XboxOne': platform = 'xbl'; break; default: console.error('Invalid platform'); break; } return pvp_url.concat(platform, '/', user.innerText, '/detailed', (platform === 'pc') ? "".concat('?mbmid=', getPCId(user)) : null); // return 'javascript:alert("PVP Report for PC players is currently in development");'; } const users = document.getElementsByClassName('display-name'); const platElem = document.getElementsByClassName('platform')[0]; for(let user of users) { let raidLink = document.createElement('a'); raidLink.setAttribute('href', getRaidPlatformLink(user, platElem)); raidLink.setAttribute('style', 'color: #FFF;'); raidLink.setAttribute('target', '_blank'); raidLink.innerHTML = '  Raid Report'; user.parentElement.appendChild(raidLink); let pvpLink = document.createElement('a'); pvpLink.setAttribute('href', getPvPPlatformLink(user, platElem)); pvpLink.setAttribute('style', 'color: #FFF;'); pvpLink.setAttribute('target', '_blank'); pvpLink.innerHTML = '  PVP Report'; user.parentElement.appendChild(pvpLink); } })();