374 lines
No EOL
13 KiB
JavaScript
Executable file
374 lines
No EOL
13 KiB
JavaScript
Executable file
const start = performance.now()
|
|
var Settings;
|
|
var ExpectedSettings = {
|
|
PinnedGamesOn: false,
|
|
ForumMentsOn: false,
|
|
BestFriendsOn: false,
|
|
ImprovedFrListsOn: false,
|
|
IRLPriceWithCurrencyOn: true,
|
|
IRLPriceWithCurrencyCurrency: 0,
|
|
IRLPriceWithCurrencyPackage: 0,
|
|
HideNotifBadgesOn: true,
|
|
SimplifiedProfileURLsOn: true,
|
|
StoreOwnTagOn: true,
|
|
ThemeCreatorOn: false,
|
|
ThemeCreator: {
|
|
BGColor: null,
|
|
BGImage: null,
|
|
BGImageSize: 'fit',
|
|
PrimaryTextColor: null,
|
|
SecondaryTextColor: null,
|
|
LinkTextColor: null,
|
|
WebsiteLogo: null
|
|
},
|
|
ModifyNavOn: false,
|
|
ModifyNav: [
|
|
{
|
|
Label: "Play",
|
|
Link: "https://polytoria.com/places"
|
|
},
|
|
{
|
|
Label: "Store",
|
|
Link: "https://polytoria.com/store"
|
|
},
|
|
{
|
|
Label: "Guilds",
|
|
Link: "https://polytoria.com/guilds"
|
|
},
|
|
{
|
|
Label: "People",
|
|
Link: "https://polytoria.com/users"
|
|
},
|
|
{
|
|
Label: "Forum",
|
|
Link: "https://polytoria.com/forum"
|
|
}
|
|
],
|
|
MoreSearchFiltersOn: true,
|
|
ApplyMembershipThemeOn: false,
|
|
ApplyMembershipThemeTheme: 0,
|
|
ForumMarkOn: true,
|
|
MultiCancelOutTradesOn: true,
|
|
ItemWishlistOn: true,
|
|
HideUpgradeBtnOn: false
|
|
}
|
|
var Theme = null;
|
|
|
|
// Merge settings and expected settings to make sure all keys exist
|
|
let RawSettings = JSON.parse(window.localStorage.getItem('PolyPlusSettings')) || ExpectedSettings
|
|
Settings = MergeObjects(RawSettings || ExpectedSettings, ExpectedSettings);
|
|
chrome.storage.sync.get(["PolyPlus_Settings"], function(result) {
|
|
window.localStorage.setItem('PolyPlusSettings', JSON.stringify(result))
|
|
});
|
|
|
|
Theme = document.createElement('style')
|
|
switch (Settings.ThemeCreator.BGImageSize) {
|
|
case 0:
|
|
Settings.ThemeCreator.BGImageSize = 'fit'
|
|
break
|
|
case 1:
|
|
Settings.ThemeCreator.BGImageSize = 'cover'
|
|
break
|
|
case 2:
|
|
Settings.ThemeCreator.BGImageSize = 'contain'
|
|
break
|
|
}
|
|
Theme.innerHTML = `
|
|
:root {
|
|
--polyplus-navbgcolor: ${Settings.ThemeCreator.NavBGColor};
|
|
--polyplus-navbordercolor: ${Settings.ThemeCreator.NavBorderColor};
|
|
--polyplus-navitemcolor: ${Settings.ThemeCreator.NavItemColor};
|
|
--polyplus-sidebarbgcolor: ${Settings.ThemeCreator.SideBGColor};
|
|
--polyplus-sidebarbordercolor: ${Settings.ThemeCreator.SideBorderColor};
|
|
--polyplus-sidebaritembgcolor: ${Settings.ThemeCreator.SideItemBGColor};
|
|
--polyplus-sidebaritembordercolor: ${Settings.ThemeCreator.SideItemBorderColor};
|
|
--polyplus-sidebaritemcolor: ${Settings.ThemeCreator.SideItemColor};
|
|
--polyplus-sidebaritemlabelcolor: ${Settings.ThemeCreator.SideItemLabelColor};
|
|
--polyplus-bgcolor: ${Settings.ThemeCreator.BGColor};
|
|
--polyplus-bgimage: url(${Settings.ThemeCreator.BGImage});
|
|
--polyplus-bgimagesize: ${Settings.ThemeCreator.BGImageSize};
|
|
--polyplus-primarytextcolor: ${Settings.ThemeCreator.PrimaryTextColor};
|
|
--polyplus-secondarytextcolor: ${Settings.ThemeCreator.SecondaryTextColor};
|
|
--polyplus-linktextcolor: ${Settings.ThemeCreator.LinkTextColor};
|
|
--polyplus-linkhoveredtextcolor: ${Settings.ThemeCreator.LinkHoveredTextColor};
|
|
--polyplus-linkfocusedtextcolor: ${Settings.ThemeCreator.LinkFocusedTextColor};
|
|
--polyplus-linkvisitedtextcolor: ${Settings.ThemeCreator.LinkVisitedTextColor};
|
|
--polyplus-cardheadbgcolor: ${Settings.ThemeCreator.CardHeadBGColor};
|
|
--polyplus-cardbodybgcolor: ${Settings.ThemeCreator.CardBodyBGColor};
|
|
--polyplus-cardbordercolor: ${Settings.ThemeCreator.CardBorderColor};
|
|
}
|
|
|
|
nav {
|
|
background-color: var(--polyplus-navbgcolor) !important;
|
|
border-bottom: 1px solid var(--polyplus-navbordercolor) !important;
|
|
}
|
|
|
|
.nav-sidebar {
|
|
background-color: var(--polyplus-sidebarbgcolor) !important;
|
|
border-right: 1px solid var(--polyplus-sidebarbordercolor) !important;
|
|
}
|
|
|
|
#app {
|
|
background-color: var(--polyplus-bgcolor) !important;
|
|
background-image: var(--polyplus-bgimage) !important;
|
|
background-size var(--polyplus-bgimagesize)
|
|
color: var(--polyplus-primarytextcolor) !important;
|
|
}
|
|
|
|
.text-muted {
|
|
color: var(--polyplus-secondarytextcolor) !important;
|
|
}
|
|
|
|
a {
|
|
color: var(--polyplus-linktextcolor) !important;
|
|
}
|
|
|
|
a:hover {
|
|
color: var(--polyplus-linkhoveredtextcolor) !important;
|
|
}
|
|
|
|
a:focus {
|
|
color: var(--polyplus-linkfocusedtextcolor) !important;
|
|
}
|
|
|
|
/*
|
|
a:visited {
|
|
color: var(--polyplus-linkvisitedtextcolor) !important;
|
|
}
|
|
*/
|
|
|
|
.card-header {
|
|
background-color: var(--polyplus-cardheadbgcolor) !important;
|
|
}
|
|
|
|
.card {
|
|
background-color: var(--polyplus-cardbodybgcolor) !important;
|
|
border-color: var(--polyplus-cardbordercolor) !important;
|
|
}
|
|
|
|
nav a.nav-link {
|
|
color: var(--polyplus-navitemcolor) !important;
|
|
}
|
|
|
|
.nav-sidebar .nav-sidebar-button {
|
|
background-color: var(--polyplus-sidebaritembgcolor) !important;
|
|
border-color: var(--polyplus-sidebaritembordercolor) !important;
|
|
color: var(--polyplus-sidebaritemcolor) !important;
|
|
}
|
|
|
|
.nav-sidebar-text {
|
|
color: var(--polyplus-sidebaritemlabelcolor) !important;
|
|
}
|
|
`
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function(){
|
|
// Check if Theme Exists, if so Load It
|
|
if (Settings.ThemeCreatorOn && Settings.ThemeCreatorOn === true) {
|
|
if (!(Settings.ThemeCreator.WebsiteLogo === null)) {
|
|
document.querySelector('.nav-sidebar img').setAttribute('src', Settings.ThemeCreator.WebsiteLogo)
|
|
}
|
|
}
|
|
let end;
|
|
if (Settings.ThemeCreatorOn && Settings.ThemeCreatorOn === true && Theme != null) {
|
|
end = performance.now()
|
|
document.body.prepend(Theme)
|
|
}
|
|
console.log(end - start)
|
|
|
|
// Define Data
|
|
var Username = document.querySelector('a.text-reset.text-decoration-none[href^="/users"]').innerText.replace(/\s+/g,'');
|
|
var UserID = document.querySelector('.text-reset.text-decoration-none[href^="/users/"]').getAttribute('href').split('/')[2]
|
|
var Bricks = document.querySelector('.brickBalanceCont').innerText.replace(/\s+/g,'');
|
|
|
|
document.body.setAttribute('data-username', Username)
|
|
document.body.setAttribute('data-id', UserID)
|
|
document.body.setAttribute('data-bricks', Bricks)
|
|
document.body.setAttribute('data-URL', window.location.href)
|
|
|
|
// Add PolyPlus Settings link to Sidebar
|
|
var parent = document.querySelector('ul.nav.nav-flush')
|
|
var clone = parent.querySelectorAll('li.nav-item')[0].cloneNode(true)
|
|
clone.querySelector('a').setAttribute('href', '/my/settings/polyplus')
|
|
clone.querySelector('span').innerText = "Poly+"
|
|
var icon = clone.querySelector('i')
|
|
var newIcon = document.createElement('i')
|
|
newIcon.classList = 'fa-regular fa-sparkles'
|
|
icon.parentElement.appendChild(newIcon)
|
|
icon.remove()
|
|
parent.appendChild(clone)
|
|
|
|
if (Settings.ModifyNavOn && Settings.ModifyNavOn === true) {
|
|
let NavbarItems = document.querySelectorAll('#main-content nav.navbar .nav-link')
|
|
let Needed = [NavbarItems[11],NavbarItems[12],NavbarItems[13],NavbarItems[14],NavbarItems[15]]
|
|
for (let i = 0; i < Settings.ModifyNav.length; i++) {
|
|
if (Settings.ModifyNav[i].Label != null) {
|
|
Needed[i].children[1].innerText = Settings.ModifyNav[i].Label
|
|
Needed[i].setAttribute('href', Settings.ModifyNav[i].Link)
|
|
}
|
|
}
|
|
}
|
|
|
|
if (Settings.HideUpgradeBtnOn && Settings.HideUpgradeBtnOn === true) {
|
|
document.querySelector('.nav-sidebar a[href="/upgrade"].nav-link.py-1.nav-sidebar-link').remove()
|
|
}
|
|
|
|
if (Settings.IRLPriceWithCurrencyOn && Settings.IRLPriceWithCurrencyOn === true) {
|
|
var IRL;
|
|
var DISPLAY;
|
|
switch (Settings.IRLPriceWithCurrencyCurrency) {
|
|
case 0:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0099).toFixed(2)
|
|
DISPLAY = 'USD'
|
|
break
|
|
case 1:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.009).toFixed(2)
|
|
DISPLAY = 'EUR'
|
|
break
|
|
case 2:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0131).toFixed(2)
|
|
DISPLAY = 'CAD'
|
|
break
|
|
case 3:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0077).toFixed(2)
|
|
DISPLAY = 'GBP'
|
|
break
|
|
case 4:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.1691).toFixed(2)
|
|
DISPLAY = 'MXN'
|
|
break
|
|
case 5:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0144).toFixed(2)
|
|
DISPLAY = 'AUD'
|
|
break
|
|
case 6:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.2338).toFixed(2)
|
|
DISPLAY = 'TRY'
|
|
break
|
|
}
|
|
let BrickBalanceCount = document.querySelectorAll('.brickBalanceCount,.brickBalanceCont')
|
|
BrickBalanceCount.forEach(element => {
|
|
element.innerText = element.innerText + " ($" + IRL + " " + DISPLAY + ")"
|
|
});
|
|
}
|
|
|
|
if (Settings.HideNotifBadgesOn && Settings.HideNotifBadgesOn === true) {
|
|
document.querySelectorAll('.notif-nav.notif-sidebar').forEach(element => {element.remove();});
|
|
}
|
|
});
|
|
|
|
/*
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
if (document.getElementsByClassName('card-header')[0] && document.getElementsByClassName('card-header')[0].innerText === ' Page not found') {
|
|
return
|
|
}
|
|
|
|
// Check if Theme Exists, if so Load It
|
|
if (Settings.ThemeCreatorOn && Settings.ThemeCreatorOn === true) {
|
|
if (!(Settings.ThemeCreator.WebsiteLogo === null)) {
|
|
document.querySelector('.nav-sidebar img').setAttribute('src', Settings.ThemeCreator.WebsiteLogo)
|
|
}
|
|
}
|
|
if (Settings.ThemeCreatorOn && Settings.ThemeCreatorOn === true && Theme != null) {
|
|
document.body.prepend(Theme)
|
|
}
|
|
|
|
// Define Data
|
|
var Username = document.querySelector('a.text-reset.text-decoration-none[href^="/users"]').innerText.replace(/\s+/g,'');
|
|
var UserID = document.querySelector('.text-reset.text-decoration-none[href^="/users/"]').getAttribute('href').split('/')[2]
|
|
var Bricks = document.querySelector('.brickBalanceCont').innerText.replace(/\s+/g,'');
|
|
|
|
document.body.setAttribute('data-username', Username)
|
|
document.body.setAttribute('data-id', UserID)
|
|
document.body.setAttribute('data-bricks', Bricks)
|
|
document.body.setAttribute('data-URL', window.location.href)
|
|
|
|
// Add PolyPlus Settings link to Sidebar
|
|
var parent = document.querySelector('ul.nav.nav-flush')
|
|
var clone = parent.querySelectorAll('li.nav-item')[0].cloneNode(true)
|
|
clone.querySelector('a').setAttribute('href', '/my/polyplus')
|
|
clone.querySelector('span').innerText = "Poly+"
|
|
var icon = clone.querySelector('i')
|
|
var newIcon = document.createElement('i')
|
|
newIcon.classList = 'fa-regular fa-sparkles'
|
|
icon.parentElement.appendChild(newIcon)
|
|
icon.remove()
|
|
parent.appendChild(clone)
|
|
|
|
if (Settings.ModifyNavOn && Settings.ModifyNavOn === true) {
|
|
let NavbarItems = document.querySelectorAll('#main-content nav.navbar .nav-link')
|
|
let Needed = [NavbarItems[11],NavbarItems[12],NavbarItems[13],NavbarItems[14],NavbarItems[15]]
|
|
for (let i = 0; i < Settings.ModifyNav.length; i++) {
|
|
if (Settings.ModifyNav[i].Label != null) {
|
|
Needed[i].children[1].innerText = Settings.ModifyNav[i].Label
|
|
Needed[i].setAttribute('href', Settings.ModifyNav[i].Link)
|
|
}
|
|
}
|
|
}
|
|
|
|
if (Settings.HideUpgradeBtnOn && Settings.HideUpgradeBtnOn === true) {
|
|
document.querySelector('.nav-sidebar a[href="/upgrade"].nav-link.py-1.nav-sidebar-link').remove()
|
|
}
|
|
|
|
if (Settings.IRLPriceWithCurrencyOn && Settings.IRLPriceWithCurrencyOn === true) {
|
|
var IRL;
|
|
var DISPLAY;
|
|
switch (Settings.IRLPriceWithCurrencyCurrency) {
|
|
case 0:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0099).toFixed(2)
|
|
DISPLAY = 'USD'
|
|
break
|
|
case 1:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.009).toFixed(2)
|
|
DISPLAY = 'EUR'
|
|
break
|
|
case 2:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0131).toFixed(2)
|
|
DISPLAY = 'CAD'
|
|
break
|
|
case 3:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0077).toFixed(2)
|
|
DISPLAY = 'GBP'
|
|
break
|
|
case 4:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.1691).toFixed(2)
|
|
DISPLAY = 'MXN'
|
|
break
|
|
case 5:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.0144).toFixed(2)
|
|
DISPLAY = 'AUD'
|
|
break
|
|
case 6:
|
|
IRL = (Bricks.replace(/,/g, '') * 0.2338).toFixed(2)
|
|
DISPLAY = 'TRY'
|
|
break
|
|
}
|
|
let BrickBalanceCount = document.querySelectorAll('.brickBalanceCount,.brickBalanceCont')
|
|
BrickBalanceCount.forEach(element => {
|
|
element.innerText = element.innerText + " ($" + IRL + " " + DISPLAY + ")"
|
|
});
|
|
}
|
|
|
|
if (Settings.HideNotifBadgesOn && Settings.HideNotifBadgesOn === true) {
|
|
document.querySelectorAll('.notif-nav.notif-sidebar').forEach(element => {element.remove();});
|
|
}
|
|
});
|
|
*/
|
|
|
|
function MergeObjects(obj1, obj2) {
|
|
var mergedObj = {};
|
|
|
|
// Copy the values from obj1 to the mergedObj
|
|
for (var key in obj1) {
|
|
mergedObj[key] = obj1[key];
|
|
}
|
|
|
|
// Merge the values from obj2 into the mergedObj, favoring obj2 for non-existing keys in obj1
|
|
for (var key in obj2) {
|
|
if (!obj1.hasOwnProperty(key)) {
|
|
mergedObj[key] = obj2[key];
|
|
}
|
|
}
|
|
|
|
return mergedObj;
|
|
} |