var SelectedFriends = [] setTimeout(function () { chrome.storage.sync.get(['PolyPlus_Settings'], function(result){ Settings = result.PolyPlus_Settings; if (Settings.ImprovedFrListsOn === true) { var Tab = "requests" var FriendsContainer = document.getElementById('friends-container') var Container = document.createElement('div') Container.classList = 'row mb-3' Container.innerHTML = `
` FriendsContainer.parentElement.insertBefore(Container, FriendsContainer) var AccAllFrBtn = document.getElementById('AccAllFrBtn') var DelAllFrBtn = document.getElementById('DelAllFrBtn') var AccBtns = document.querySelectorAll('[onclick="acceptFriendRequest(this)"]') var DelBtns = document.querySelectorAll('[onclick="declineFriendRequest(this)"]') if (!(AccBtns.length === 0)) { AccAllFrBtn.addEventListener('click', function(){ AccBtns.forEach(element => { setTimeout(function () {}, 145) fetch('https://polytoria.com/api/friends/send', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value }, body: JSON.stringify({ userID: parseInt(element.getAttribute('data-user-id')) }), }) .catch(error => { // Handle any errors console.error('Error:', error); Success = false }); /* let NewAcceptBtn = document.createElement('a') NewAcceptBtn.style.display = 'none' sNewAcceptBtn.classList = 'btn btn-success' NewAcceptBtn.setAttribute('data-user-id', element.getAttribute('data-user-id')) NewAcceptBtn.setAttribute('onclick', 'acceptFriendRequest(this)') FriendsContainer.appendChild(NewAcceptBtn) NewAcceptBtn.click(); */ }) }); } else { AccAllFrBtn.setAttribute('disabled', 'true') } if (!(DelBtns.length === 0)) { DelAllFrBtn.addEventListener('click', function(){ DelBtns.forEach(element => { setTimeout(function () {}, 110) fetch('https://polytoria.com/api/friends/remove', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value }, body: JSON.stringify({ userID: parseInt(element.getAttribute('data-user-id')) }), }) .catch(error => { // Handle any errors console.error('Error:', error, document.querySelector('input[name="_csrf"]').value); Success = false }); /* let NewDeclineBtn = document.createElement('a') NewDeclineBtn.style.display = 'none' NewDeclineBtn.classList = 'btn btn-danger' NewDeclineBtn.setAttribute('data-user-id', element.getAttribute('data-user-id')) NewDeclineBtn.setAttribute('onclick', 'declineFriendRequest(this)') FriendsContainer.appendChild(NewDeclineBtn) NewDeclineBtn.click(); */ }) }); } else { DelAllFrBtn.setAttribute('disabled', 'true') } let Text = document.createElement('p') Text.classList = 'mx-auto' Text.style.textAlign = 'center' Text.style.fontSize = '1.3rem' Text.style.display = 'none' Text.innerHTML = ` 0 friends selected!
` FriendsContainer.parentElement.insertBefore(Text, FriendsContainer) let Text_Span = Text.querySelector('span'); let Text_View = document.getElementById('viewSelectionBtn'); let Text_Clear = document.getElementById('clearSelectionBtn'); let Text_Remove = document.getElementById('removeSelectionBtn'); document.querySelector('[data-friends-tab="requests"]').addEventListener('click', function(){ Tab = "requests" Container.style.display = ''; Text.style.display = 'none'; document.querySelectorAll('input[type="check"]').forEach(element => {element.remove();}); }); document.querySelector('[data-friends-tab="friends"]').addEventListener('click', function(){ Tab = "friends" Container.style.display = 'none'; Text.style.display = ''; }); var ConfirmRemove = 0 Text_View.addEventListener('click', function(){}); Text_Clear.addEventListener('click', function(){ SelectedFriends = [] UpdateCheckboxes(); Text_Span.innerText = SelectedFriends.length }); Text_Remove.addEventListener('click', function(){ ConfirmRemove = ConfirmRemove + 1 switch(ConfirmRemove) { case 0: Text_Remove.innerText = 'Remove Selected Friends' break case 1: Text_Remove.innerText = 'Are you sure?' break case 2: for (let i = 0; i < SelectedFriends.length; i++) { setTimeout(function () {}, 110) let NewDeclineBtn = document.createElement('a') NewDeclineBtn.style.display = 'none' NewDeclineBtn.classList = 'btn btn-danger' NewDeclineBtn.setAttribute('data-user-id', SelectedFriends[i]) NewDeclineBtn.setAttribute('onclick', 'declineFriendRequest(this)') FriendsContainer.appendChild(NewDeclineBtn) NewDeclineBtn.click(); } SelectedFriends = [] UpdateCheckboxes(); Text_Remove.innerText = 'Remove Selected Friends' ConfirmRemove = 0 break } }); const observer = new MutationObserver(function (){ if (FriendsContainer.children.length > 0 && Tab === "friends") { LoadCheckBoxes(); } }); observer.observe(FriendsContainer, {childList: true, subtree: false}); function LoadCheckBoxes() { Array.from(FriendsContainer.children).forEach(element => { let DeclineBtn = element.querySelector('a.btn.btn-danger') let UserID = DeclineBtn.getAttribute('data-user-id') let Column = document.createElement('div') let EditColumn = element.querySelector('.col-9') Column.classList = 'col-auto' var NewCheckBox = document.createElement('button') NewCheckBox.classList = 'polyplus-multiremovefr-checkbox' NewCheckBox.setAttribute('style', 'padding: 20px; background-color: #191919; border: 1px solid #393939; border-radius: 1rem;') var Index = SelectedFriends.indexOf(UserID) if (Index !== -1) { DeclineBtn.classList.add('disabled') NewCheckBox.style.borderColor = 'lime' } EditColumn.classList.remove('col-9') EditColumn.classList.add('col') Column.appendChild(NewCheckBox) EditColumn.parentElement.appendChild(Column) NewCheckBox.addEventListener('click', function(){ var Index = SelectedFriends.indexOf(UserID) if (Index === -1) { DeclineBtn.classList.add('disabled') SelectedFriends.push(UserID) NewCheckBox.style.borderColor = 'lime' } else { SelectedFriends.splice(Index, 1) NewCheckBox.style.borderColor = '#393939' DeclineBtn.classList.remove('disabled') } Text_Span.innerText = SelectedFriends.length UpdateCheckboxes(); }); }); } function UpdateCheckboxes(){ document.querySelectorAll('.polyplus-multiremovefr-checkbox').forEach(element => { let Parent = element.parentElement.parentElement.parentElement.parentElement.parentElement let DeclineBtn = Parent.querySelector('a.btn.btn-danger') if (element.getAttribute('disabled')) { element.removeAttribute('disabled') } if (SelectedFriends.IndexOf(DeclineBtn.getAttribute('data-user-id')) === -1) { element.style.borderColor = '#393939' DeclineBtn.classList.remove('disabled') if (SelectedFriends.length >= 25) { element.setAttribute('disabled', true) } } else { DeclineBtn.classList.add('disabled') element.style.borderColor = 'lime' } }) } } }); }, 100);