diff --git a/enhancements/animeRequests.js b/enhancements/animeRequests.js index d51f342..f03e7ea 100644 --- a/enhancements/animeRequests.js +++ b/enhancements/animeRequests.js @@ -2,29 +2,34 @@ registerScript(node => { // run the scripts if (isHtmlElement(node)) { changeFollowedStarColor(node); - changeOwnBorderColor(node); + changeBorderColor(node); + removeUnknownUsers(node); } }); function changeFollowedStarColor(node) { - const starIcon = "star"; + const starIcon = 'star'; // find stars - let followedItems = Array.from(node.querySelectorAll("i")).filter(i => i.innerText.trim() === starIcon); + let followedItems = Array.from(node.querySelectorAll('i')).filter(i => i.innerText.trim() === starIcon); // change color followedItems.forEach(item => item.style.color = aniBlue); } -function changeOwnBorderColor(node) { - const targetTagName = "MD-LIST-ITEM"; // tagName is upper case +function changeBorderColor(node) { + const targetTagName = 'MD-LIST-ITEM'; // tagName is upper case let updateFunc = item => { - let profileLink = item.querySelectorAll("a[href*='/profile/']:not([href='/profile/false'])"); + let profileLink = item.querySelectorAll('a[href*="/profile/"]:not([href="/profile/false"])'); + // highlight left border for own request if (profileLink.length > 0) { item.style.borderColor = aniBlue } + + // add border as horizontal seperator + item.style.borderBottom = "1px solid rgba(155,155,155, 0.2)"; } // are we target tag? @@ -32,9 +37,50 @@ function changeOwnBorderColor(node) { updateFunc(node); } else { // find items -> all - let requestItems = node.querySelectorAll("md-list-item"); + let requestItems = node.querySelectorAll('md-list-item'); - // change border color if profile link is not "false" + // update borders + requestItems.forEach(item => { + updateFunc(item); + }); + } +} + +function removeUnknownUsers(node) { + const targetTagName = 'MD-LIST-ITEM'; // tagName is upper case + + let updateFunc = item => { + // find user profile link -> own request + let profileLink = item.querySelectorAll('a[href*="/profile/"]:not([href="/profile/false"])'); + + // find divs + let upperDiv = node.querySelector('[layout-align="start center"][flex]') + let lowerDiv = upperDiv.parentElement.nextElementSibling; + + // remember Data + let anime = lowerDiv.innerText; + let profileData = upperDiv.innerHTML; + + // exchange data + upperDiv.innerHTML = `${anime}`; + + // add user note if own request + if (profileLink.length > 0) { + lowerDiv.innerHTML = profileData; + } + // remove if foreign request. + else { + lowerDiv.innerHTML = ' '; + } + } + + if (node.tagName === targetTagName) { + updateFunc(node); + } else { + // find items -> all + let requestItems = node.querySelectorAll('md-list-item'); + + // change border color if profile link is not 'false' requestItems.forEach(item => { updateFunc(item); }); diff --git a/utils/colors.js b/utils/colors.js index a3c864b..536b09f 100644 --- a/utils/colors.js +++ b/utils/colors.js @@ -1 +1 @@ -const aniBlue = "#348fff"; \ No newline at end of file +const aniBlue = '#348fff'; \ No newline at end of file