// NAME: History Shortcut // AUTHOR: einzigartigerName // DESCRIPTION: Adds a Shortcut to your Listening History to the Sidebar (function HistoryShortcut() { const { CosmosAPI, Player, LocalStorage, PlaybackControl, ContextMenu, URI } = Spicetify if (!(CosmosAPI && Player && LocalStorage && PlaybackControl && ContextMenu && URI)) { setTimeout(HistoryShortcut, 300) return } const ITEM_LABEL = "History" const HISTORY_DIV_CLASS = "SidebarListItem" const HISTORY_DIV_CLASS_ACTIVE = "SidebarListItem SidebarListItem--is-active" const HISTORY_ANKER_CLASS = "SidebarListItemLink SidebarListItemLink--tall spoticon-time-24" const HISTORY_ANKER_CLASS_ACTIVE = "SidebarListItemLink SidebarListItemLink--is-highlighted SidebarListItemLink--tall spoticon-time-24" let historyItem = createHistoyItem() // Get Sidebar Lists var topicList = document.querySelector("#view-navigation-bar > div > div.LeftSidebar__section > div > ul") if (topicList) { // Add to first in list // On default layout this would be the Home/Browse/Radio List topicList.appendChild(historyItem.div) } else { return } const toCheckMutate = document.getElementById('view-content'); const config = { attributes: true, childList: true, subtree: true }; let observerCallback = function(_, _) { appQueue = document.getElementById("app-queue") if (!appQueue){ return } if (appQueue.getAttribute("class") === "active" && appQueue.getAttribute("data-app-uri") === "spotify:app:queue:history" ) { onClickHistory() } else { onLeaveHistory() } }; let observer = new MutationObserver(observerCallback) observer.observe(toCheckMutate, config) // Deactivate Active Status for History Item function onLeaveHistory() { historyItem.div.setAttribute("class",HISTORY_DIV_CLASS) historyItem.anker.setAttribute("class", HISTORY_ANKER_CLASS) } // Activate Active Status for History Item function onClickHistory() { historyItem.div.setAttribute("class", HISTORY_DIV_CLASS_ACTIVE) historyItem.anker.setAttribute("class", HISTORY_ANKER_CLASS_ACTIVE) } // Construct the List Item function createHistoyItem() { /* List Item *
  • */ let listItem = document.createElement("li") listItem.setAttribute("class", HISTORY_DIV_CLASS) /* Outer Div Element *
    */ let outer = document.createElement("div") outer.setAttribute("class", "DropTarget SidebarListItem__drop-target") /* Middle Div Element *