tweaks related to #572
This commit is contained in:
1 parent
a8997400b2
commit
5f28b8be66
4 files changed
+35
-28
No files matched your search
@@ -514,10 +514,13 @@ class Source(models.Model):
|
||||
|
||||
@property
|
||||
def type_directory_path(self):
|
||||
if settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX:
|
||||
if self.source_resolution == self.SOURCE_RESOLUTION_AUDIO:
|
||||
return Path(settings.DOWNLOAD_AUDIO_DIR) / self.directory
|
||||
else:
|
||||
return Path(settings.DOWNLOAD_VIDEO_DIR) / self.directory
|
||||
else:
|
||||
return Path(self.directory)
|
||||
|
||||
def make_directory(self):
|
||||
return os.makedirs(self.directory_path, exist_ok=True)
|
||||
|
||||
+21
-28
@@ -628,6 +628,25 @@ class FilepathTestCase(TestCase):
|
||||
('no-fancy-stuff-title_test_720p-720x1280-opus'
|
||||
'-vp9-30fps-hdr.mkv'))
|
||||
|
||||
def test_directory_prefix(self):
|
||||
# Confirm the setting exists and is valid
|
||||
self.assertTrue(hasattr(settings, 'SOURCE_DOWNLOAD_DIRECTORY_PREFIX'))
|
||||
self.assertTrue(isinstance(settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX, bool))
|
||||
# Test the default behavior for "True", forced "audio" or "video" parent directories for sources
|
||||
settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX = True
|
||||
self.source.source_resolution = Source.SOURCE_RESOLUTION_AUDIO
|
||||
test_audio_prefix_path = Path(self.source.directory_path)
|
||||
self.assertEqual(test_audio_prefix_path.parts[-2], 'audio')
|
||||
self.assertEqual(test_audio_prefix_path.parts[-1], 'testdirectory')
|
||||
self.source.source_resolution = Source.SOURCE_RESOLUTION_1080P
|
||||
test_video_prefix_path = Path(self.source.directory_path)
|
||||
self.assertEqual(test_video_prefix_path.parts[-2], 'video')
|
||||
self.assertEqual(test_video_prefix_path.parts[-1], 'testdirectory')
|
||||
# Test the default behavior for "False", no parent directories for sources
|
||||
settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX = False
|
||||
test_no_prefix_path = Path(self.source.directory_path)
|
||||
self.assertEqual(test_no_prefix_path.parts[-1], 'testdirectory')
|
||||
|
||||
|
||||
class MediaTestCase(TestCase):
|
||||
|
||||
@@ -1689,7 +1708,9 @@ class FormatMatchingTestCase(TestCase):
|
||||
msg=f'Media title "{self.media.title}" checked against regex "{self.source.filter_text}" failed '
|
||||
f'expected {expected_match_result}')
|
||||
|
||||
|
||||
class TasksTestCase(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
# Disable general logging for test case
|
||||
logging.disable(logging.CRITICAL)
|
||||
@@ -1716,31 +1737,3 @@ class TasksTestCase(TestCase):
|
||||
self.assertEqual(src1.media_source.all().count(), 3)
|
||||
self.assertEqual(src2.media_source.all().count(), 2)
|
||||
self.assertEqual(Media.objects.filter(pk=m22.pk).exists(), False)
|
||||
|
||||
class TypeDirectoryPathTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.source = Source(
|
||||
directory="test_directory",
|
||||
source_resolution=Source.SOURCE_RESOLUTION_AUDIO,
|
||||
)
|
||||
|
||||
def test_directory_prefix_default(self):
|
||||
"""
|
||||
Test that default directory prefix exist.
|
||||
"""
|
||||
os.environ['TUBESYNC_DIRECTORY_PREFIX'] = ''
|
||||
self.assertEqual(self.source.type_directory_path, Path(settings.DOWNLOAD_AUDIO_DIR) / 'test_directory')
|
||||
|
||||
def test_directory_prefix_true(self):
|
||||
"""
|
||||
Test that when TUBESYNC_DIRECTORY_PREFIX is set to true the directory prefix exist.
|
||||
"""
|
||||
os.environ['TUBESYNC_DIRECTORY_PREFIX'] = 'true'
|
||||
self.assertEqual(self.source.type_directory_path, Path(settings.DOWNLOAD_AUDIO_DIR) / 'test_directory')
|
||||
|
||||
def test_directory_prefix_false(self):
|
||||
"""
|
||||
Test that when TUBESYNC_DIRECTORY_PREFIX is set to false the directory prefix does not exist.
|
||||
"""
|
||||
os.environ['TUBESYNC_DIRECTORY_PREFIX'] = 'false'
|
||||
self.assertEqual(self.source.type_directory_path, Path('.') / 'test_directory')
|
||||
@@ -81,3 +81,6 @@ if BASICAUTH_USERNAME and BASICAUTH_PASSWORD:
|
||||
else:
|
||||
BASICAUTH_DISABLE = True
|
||||
BASICAUTH_USERS = {}
|
||||
|
||||
|
||||
SOURCE_DOWNLOAD_DIRECTORY_PREFIX = os.getenv('TUBESYNC_DIRECTORY_PREFIX', 'True').strip().lower()
|
||||
@@ -158,6 +158,14 @@ VIDEO_HEIGHT_CUTOFF = int(os.getenv("VIDEO_HEIGHT_CUTOFF", "240")) # Smallest r
|
||||
VIDEO_HEIGHT_IS_HD = 500 # Height in pixels to count as 'HD'
|
||||
|
||||
|
||||
|
||||
# If True source directories are prefixed with their type (either 'video' or 'audio')
|
||||
# e.g. /downloads/video/SomeSourceName
|
||||
# If False, sources are placed directly in /downloads
|
||||
# e.g. /downloads/SomeSourceName
|
||||
SOURCE_DOWNLOAD_DIRECTORY_PREFIX = True
|
||||
|
||||
|
||||
YOUTUBE_DL_CACHEDIR = None
|
||||
YOUTUBE_DL_TEMPDIR = None
|
||||
YOUTUBE_DEFAULTS = {
|
||||
|
||||
Reference in new issue
Block a user