- {% for subdirname in music_library.get_subdirs(path) %}
+ {% for subdirname, subdirobj in dir.get_subdirs().items() %}
{%- set subdirpath = path + subdirname + '/' %}
{{ subdirname }}/
@@ -17,31 +17,24 @@
- {%- set subdirs = music_library.get_subdirs(subdirpath) %}
- {%- if subdirs %}
- {%- for subdir in subdirs %}
- {{- dirlisting(subdirpath) -}}
- {%- endfor %}
- {%- endif %}
-
- {%- set files = music_library.get_files(subdirpath) %}
- {%- if files %}
- {% for file in files %}
-
-
-
-
- {% endfor %}
- {%- endif %}
-
+ {{- dirlisting(subdirobj, subdirpath) -}}
{% endfor %}
+ {%- set files = dir.get_files() %}
+ {%- if files %}
+ {% for file in files %}
+
+
+
+
+ {% endfor %}
+ {%- endif %}
{%- endmacro %}
@@ -101,7 +94,7 @@
- {{ dirlisting() }}
+ {{ dirlisting(music_library) }}
diff --git a/util.py b/util.py
index e2868c6..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
@@ -84,6 +89,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