Last active
February 1, 2019 15:32
-
-
Save quinnjr/a5971c75a40603b5943ef38a452bb6ec to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==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 <quinn.josephr@protonmail.com> | |
// @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); | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment