diff --git a/modules/advisor.py b/modules/advisor.py index e283b11..9ed65fc 100644 --- a/modules/advisor.py +++ b/modules/advisor.py @@ -117,6 +117,11 @@ class Module(PlaylistAdvisor): if not self.last_playlist: return True + reload_state = (playlist_dir / "reload") + if reload_state.exists(): + reload_state.unlink(True) + return True + if check_if_playlist_modifed(self.last_playlist): return True if Time.get_playlist_modification_time(self.last_playlist) > self.last_mod_time: logger.info("Playlist changed on disc, reloading...") diff --git a/modules/web.html b/modules/web.html index 2287b20..4502343 100644 --- a/modules/web.html +++ b/modules/web.html @@ -442,33 +442,37 @@ const dirs = payload.dirs || []; dirsBox.innerHTML = ""; dirs.sort().forEach(f => { - const node = document.createElement("div"); - node.className = "item"; - node.textContent = f; - node.addEventListener("click", () => onDirClicked(f, node)); - dirsBox.appendChild(node); + if(!f.startsWith(".")) { + const node = document.createElement("div"); + node.className = "item"; + node.textContent = f; + node.addEventListener("click", () => onDirClicked(f, node)); + dirsBox.appendChild(node); + } }); files.sort().forEach(f => { - const node = document.createElement("div"); - node.className = "item"; - node.textContent = f; - node.addEventListener("click", () => { - if(node.classList.contains("selected")) { - node.classList.remove("selected"); + if(!f.startsWith(".")) { + const node = document.createElement("div"); + node.className = "item"; + node.textContent = f; + node.addEventListener("click", () => { + if(node.classList.contains("selected")) { + node.classList.remove("selected"); + selectedDir = null; + selectedSubFile = null; + return; + } + Array.from(dirsBox.children).forEach(c=>c.classList.remove("selected")); + Array.from(document.getElementById("playlist-ul").children).forEach(c => c.classList.remove("selected")); + Array.from(document.getElementById("subdir-box").children).forEach(c => c.classList.remove("selected")); + node.classList.add("selected"); selectedDir = null; selectedSubFile = null; - return; - } - Array.from(dirsBox.children).forEach(c=>c.classList.remove("selected")); - Array.from(document.getElementById("playlist-ul").children).forEach(c => c.classList.remove("selected")); - Array.from(document.getElementById("subdir-box").children).forEach(c => c.classList.remove("selected")); - node.classList.add("selected"); - selectedDir = null; - selectedSubFile = null; - document.getElementById("subdir-box").innerHTML = ""; - }); - node.dataset.type = "file"; - dirsBox.appendChild(node); + document.getElementById("subdir-box").innerHTML = ""; + }); + node.dataset.type = "file"; + dirsBox.appendChild(node); + } }); } catch(e) { dirsBox.innerHTML = "Error fetching dirs: "+e.message;