Skip to content

Instantly share code, notes, and snippets.

@quinnjr
Last active February 1, 2019 15:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quinnjr/a5971c75a40603b5943ef38a452bb6ec to your computer and use it in GitHub Desktop.
Save quinnjr/a5971c75a40603b5943ef38a452bb6ec to your computer and use it in GitHub Desktop.
// ==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 = '&nbsp;&nbsp;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 = '&nbsp;&nbsp;PVP Report';
user.parentElement.appendChild(pvpLink);
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment