From f45aa6c7121e1aa58ec9b2f32749f8a294c98e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20W=C3=BCrfl?= Date: Mon, 21 May 2018 12:29:05 +0200 Subject: [PATCH 1/2] [Web Interface] Fix directory listing - fixes not displaying files of top level directory - fixes duplicate sub-directory listings --- templates/index.html | 47 +++++++++++++++++++------------------------- util.py | 1 + 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/templates/index.html b/templates/index.html index ef8178d..06d92ed 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,6 +1,6 @@ -{% macro dirlisting(path='') -%} +{% macro dirlisting(dir, path='') -%} {%- endmacro %} @@ -101,7 +94,7 @@
- {{ dirlisting() }} + {{ dirlisting(music_library) }} diff --git a/util.py b/util.py index e2868c6..2b8d522 100644 --- a/util.py +++ b/util.py @@ -84,6 +84,7 @@ class Dir(object): if subdir in self.subdirs: searchpath = '/'.join(path.split('/')[1::]) subdirs = self.subdirs[subdir].get_subdirs(searchpath) + subdirs = list(map(lambda subsubdir: os.path.join(subdir, subsubdir), subdirs)) else: subdirs = self.subdirs From adfdb6f06c2c167f6f0dfd4af1a1608389263caf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20W=C3=BCrfl?= Date: Mon, 21 May 2018 12:47:25 +0200 Subject: [PATCH 2/2] Ignore non-audio/video files --- requirements.txt | 1 + util.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 62d44ae..03203d3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ opuslib==1.1.0 protobuf==3.1.0 flask youtube-dl +python-magic diff --git a/util.py b/util.py index 2b8d522..12a214b 100644 --- a/util.py +++ b/util.py @@ -2,6 +2,7 @@ import configparser import hashlib +import magic import os import variables as var import zipfile @@ -20,7 +21,11 @@ def get_recursive_filelist_sorted(path): for file in files: if file in __CONFIG.get('bot', 'ignored_files'): continue - filelist.append(relroot + file) + + fullpath = os.path.join(path, relroot, file) + mime = magic.from_file(fullpath, mime=True) + if 'audio' in mime or 'audio' in magic.from_file(fullpath).lower() or 'video' in mime: + filelist.append(relroot + file) filelist.sort() return filelist