mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-03 20:13:02 +00:00
[server] fix watchdog
This commit is contained in:
@@ -347,7 +347,7 @@ def get_tags(fullpath: str) -> dict:
|
||||
"length": round(audio.info.length),
|
||||
"bitrate": round(int(audio.info.bitrate) / 1000),
|
||||
"filepath": fullpath,
|
||||
"folder": os.path.dirname(fullpath) + "/",
|
||||
"folder": os.path.dirname(fullpath),
|
||||
}
|
||||
|
||||
return tags
|
||||
|
||||
@@ -21,7 +21,7 @@ def create_folder(foldername: str) -> models.Folder:
|
||||
"""Create a single Folder object"""
|
||||
folder = {
|
||||
"name": foldername.split("/")[-1],
|
||||
"path": foldername + "/",
|
||||
"path": foldername,
|
||||
"trackcount": get_folder_track_count(foldername),
|
||||
}
|
||||
|
||||
@@ -48,11 +48,16 @@ def get_subdirs(foldername: str) -> List[models.Folder]:
|
||||
subdirs = set()
|
||||
|
||||
for folder in api.VALID_FOLDERS:
|
||||
str0 = folder.replace(foldername, "")
|
||||
str1 = str0.split("/")[0]
|
||||
if foldername in folder:
|
||||
str0 = folder.replace(foldername, "")
|
||||
|
||||
if str1 != "":
|
||||
subdirs.add(foldername + str1)
|
||||
try:
|
||||
str1 = str0.split("/")[1]
|
||||
except IndexError:
|
||||
str1 = None
|
||||
|
||||
if str1 is not None:
|
||||
subdirs.add(foldername + "/" + str1)
|
||||
|
||||
return [create_folder(dir) for dir in subdirs]
|
||||
|
||||
|
||||
@@ -59,20 +59,20 @@ def add_track(filepath: str) -> None:
|
||||
tags["image"] = album.image
|
||||
api.TRACKS.append(models.Track(tags))
|
||||
|
||||
folder = folderslib.create_folder(tags["folder"])
|
||||
print(f"💙💙 {tags['folder']}")
|
||||
print(folder)
|
||||
folder = tags["folder"]
|
||||
|
||||
if folder not in api.FOLDERS:
|
||||
api.FOLDERS.append(folder)
|
||||
print(f"added folder {folder.path}")
|
||||
if folder not in api.VALID_FOLDERS:
|
||||
api.VALID_FOLDERS.add(folder)
|
||||
f = folderslib.create_folder(folder)
|
||||
api.FOLDERS.append(f)
|
||||
|
||||
|
||||
def remove_track(filepath: str) -> None:
|
||||
"""
|
||||
Removes a track from the music dict.
|
||||
"""
|
||||
fpath = filepath.split("/")[-1]
|
||||
fname = filepath.split("/")[-1]
|
||||
fpath = filepath.replace(fname, "")
|
||||
|
||||
try:
|
||||
trackid = instances.songs_instance.get_song_by_path(filepath)["_id"]["$oid"]
|
||||
@@ -87,8 +87,9 @@ def remove_track(filepath: str) -> None:
|
||||
api.TRACKS.remove(track)
|
||||
|
||||
for folder in api.FOLDERS:
|
||||
if folder.path == filepath.replace(fpath, ""):
|
||||
if folder.path + "/" == fpath and folder.trackcount - 1 == 0:
|
||||
api.FOLDERS.remove(folder)
|
||||
api.VALID_FOLDERS.remove(folder.path)
|
||||
|
||||
|
||||
class Handler(PatternMatchingEventHandler):
|
||||
|
||||
@@ -6,7 +6,7 @@ import os
|
||||
|
||||
# paths
|
||||
CONFIG_FOLDER = ".alice"
|
||||
HOME_DIR = os.path.expanduser("~") + "/"
|
||||
HOME_DIR = os.path.expanduser("~")
|
||||
APP_DIR = os.path.join(HOME_DIR, CONFIG_FOLDER)
|
||||
THUMBS_PATH = os.path.join(APP_DIR, "images", "thumbnails")
|
||||
|
||||
|
||||
@@ -1,46 +1,24 @@
|
||||
<template>
|
||||
<div class="folder-top flex">
|
||||
<div class="fname">
|
||||
<button class="play image" @click="playFolder(first_song)">
|
||||
<button class="play image">
|
||||
<div class="icon"></div>
|
||||
Play
|
||||
</button>
|
||||
<div class="text">
|
||||
<div class="icon image"></div>
|
||||
<div class="ellip">
|
||||
{{ path.split("/").splice(-2).join("") }}
|
||||
{{ folder.path.split("/").splice(-1).join("") }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import perks from "@/composables/perks.js";
|
||||
import { watch } from "@vue/runtime-core";
|
||||
import useDebouncedRef from "@/composables/useDebouncedRef.js";
|
||||
import Loader from "../shared/Loader.vue";
|
||||
<script setup lang="ts">
|
||||
import useFStore from "../../stores/folder";
|
||||
|
||||
export default {
|
||||
props: ["path", "first_song"],
|
||||
components: { Loader },
|
||||
setup(props, { emit }) {
|
||||
const query = useDebouncedRef("", 400);
|
||||
|
||||
function playFolder(song) {
|
||||
perks.updateQueue(song, "folder");
|
||||
}
|
||||
|
||||
watch(query, () => {
|
||||
emit("search", query.value);
|
||||
});
|
||||
|
||||
return {
|
||||
playFolder,
|
||||
query,
|
||||
};
|
||||
},
|
||||
};
|
||||
const folder = useFStore();
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
v-for="artist in artists"
|
||||
:key="artist"
|
||||
:artist="artist"
|
||||
:color="232452"
|
||||
:color="ffffff00"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -66,6 +66,7 @@ export default {
|
||||
user-select: none;
|
||||
background: linear-gradient(0deg, transparent, $black);
|
||||
position: relative;
|
||||
background-color: #ffffff00;
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
|
||||
@@ -14,6 +14,7 @@ export default defineStore("FolderDirs&Tracks", {
|
||||
const { tracks, folders } = await fetchThem(path);
|
||||
|
||||
this.path = path;
|
||||
console.log(path)
|
||||
this.dirs = folders;
|
||||
this.tracks = tracks;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user