🛠️ Fixed wrong symlink creation. Hot fixed extension detection of tidalapi.
This commit is contained in:
Generated
+22
-18
@@ -178,13 +178,13 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "certifi"
|
name = "certifi"
|
||||||
version = "2024.8.30"
|
version = "2024.12.14"
|
||||||
description = "Python package for providing Mozilla's CA Bundle."
|
description = "Python package for providing Mozilla's CA Bundle."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=3.6"
|
||||||
files = [
|
files = [
|
||||||
{file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"},
|
{file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
|
||||||
{file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"},
|
{file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -971,13 +971,13 @@ pyyaml = ">=5.1"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mkdocs-material"
|
name = "mkdocs-material"
|
||||||
version = "9.5.48"
|
version = "9.5.49"
|
||||||
description = "Documentation that simply works"
|
description = "Documentation that simply works"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "mkdocs_material-9.5.48-py3-none-any.whl", hash = "sha256:b695c998f4b939ce748adbc0d3bff73fa886a670ece948cf27818fa115dc16f8"},
|
{file = "mkdocs_material-9.5.49-py3-none-any.whl", hash = "sha256:c3c2d8176b18198435d3a3e119011922f3e11424074645c24019c2dcf08a360e"},
|
||||||
{file = "mkdocs_material-9.5.48.tar.gz", hash = "sha256:a582531e8b34f4c7ed38c29d5c44763053832cf2a32f7409567e0c74749a47db"},
|
{file = "mkdocs_material-9.5.49.tar.gz", hash = "sha256:3671bb282b4f53a1c72e08adbe04d2481a98f85fed392530051f80ff94a9621d"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2024,19 +2024,23 @@ name = "tidalapi"
|
|||||||
version = "0.8.2"
|
version = "0.8.2"
|
||||||
description = "Unofficial API for TIDAL music streaming service."
|
description = "Unofficial API for TIDAL music streaming service."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "<4.0,>=3.8"
|
python-versions = "^3.8"
|
||||||
files = [
|
files = []
|
||||||
{file = "tidalapi-0.8.2-py3-none-any.whl", hash = "sha256:46998ecb9103aee6d1346ad2974df05fe9bc03a429a89d5a701571fe4d9c4525"},
|
develop = false
|
||||||
{file = "tidalapi-0.8.2.tar.gz", hash = "sha256:9eab07291f92f506694b6d326dd1e6651349eaa71597cef634a62915312db38c"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
isodate = ">=0.7.2,<0.8.0"
|
isodate = "^0.7.2"
|
||||||
mpegdash = ">=0.4.0,<0.5.0"
|
mpegdash = "^0.4.0"
|
||||||
python-dateutil = ">=2.8.2,<3.0.0"
|
python-dateutil = "^2.8.2"
|
||||||
ratelimit = ">=2.2.1,<3.0.0"
|
ratelimit = "^2.2.1"
|
||||||
requests = ">=2.32.3,<3.0.0"
|
requests = "^2.32.3"
|
||||||
typing-extensions = ">=4.12.2,<5.0.0"
|
typing-extensions = "^4.12.2"
|
||||||
|
|
||||||
|
[package.source]
|
||||||
|
type = "git"
|
||||||
|
url = "git@github.com:exislow/python-tidal.git"
|
||||||
|
reference = "309-file-extension"
|
||||||
|
resolved_reference = "2f4a0dcc93fe40748c1ff0fd4773c9a6eeb6cc36"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokenize-rt"
|
name = "tokenize-rt"
|
||||||
@@ -2267,4 +2271,4 @@ gui = ["pyqtdarktheme-fork", "pyside6"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = ">=3.10,<3.13"
|
python-versions = ">=3.10,<3.13"
|
||||||
content-hash = "dce4c40a6d0552a6d21c5801e7fecbcb8254f3abc4fbc5a39c31c8ac14aec2c4"
|
content-hash = "fbac1f69d010fa9495b26a3e4ee83dda2c61a4c1116d88e1d75bcd1d5c99ae98"
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@ rich = "^13.9.4"
|
|||||||
toml = "^0.10.2"
|
toml = "^0.10.2"
|
||||||
typer = "^0.15.1"
|
typer = "^0.15.1"
|
||||||
ffmpeg-python = "^0.2.0"
|
ffmpeg-python = "^0.2.0"
|
||||||
tidalapi = "^0.8.2"
|
tidalapi = { git = "git@github.com:exislow/python-tidal.git", branch = "309-file-extension" }
|
||||||
|
|
||||||
[tool.poetry.extras]
|
[tool.poetry.extras]
|
||||||
gui = ["pyside6", "pyqtdarktheme-fork"]
|
gui = ["pyside6", "pyqtdarktheme-fork"]
|
||||||
|
|||||||
+10
-2
@@ -468,14 +468,20 @@ class Download:
|
|||||||
# Move item and symlink it
|
# Move item and symlink it
|
||||||
if path_media_dst != path_media_src:
|
if path_media_dst != path_media_src:
|
||||||
if self.skip_existing:
|
if self.skip_existing:
|
||||||
skip_file: bool = check_file_exists(path_media_dst, extension_ignore=True)
|
skip_file: bool = check_file_exists(path_media_dst, extension_ignore=False)
|
||||||
|
skip_symlink: bool = path_media_src.is_symlink()
|
||||||
else:
|
else:
|
||||||
skip_file: bool = False
|
skip_file: bool = False
|
||||||
|
skip_symlink: bool = False
|
||||||
|
|
||||||
if not skip_file:
|
if not skip_file:
|
||||||
|
self.fn_logger.debug(f"Move: {path_media_src} -> {path_media_dst}")
|
||||||
shutil.move(path_media_src, path_media_dst)
|
shutil.move(path_media_src, path_media_dst)
|
||||||
|
|
||||||
os.symlink(path_media_dst, path_media_src)
|
if not skip_symlink:
|
||||||
|
self.fn_logger.debug(f"Symlink: {path_media_src} -> {path_media_dst}")
|
||||||
|
path_media_src.unlink(missing_ok=True)
|
||||||
|
path_media_src.symlink_to(path_media_dst)
|
||||||
|
|
||||||
return path_media_dst
|
return path_media_dst
|
||||||
|
|
||||||
@@ -712,6 +718,8 @@ class Download:
|
|||||||
path_playlist = dir_scoped / (PLAYLIST_PREFIX + name_list + PLAYLIST_EXTENSION)
|
path_playlist = dir_scoped / (PLAYLIST_PREFIX + name_list + PLAYLIST_EXTENSION)
|
||||||
path_playlist = pathlib.Path(path_file_sanitize(path_playlist, adapt=True))
|
path_playlist = pathlib.Path(path_file_sanitize(path_playlist, adapt=True))
|
||||||
|
|
||||||
|
self.fn_logger.debug(f"Playlist: Creating {path_playlist}")
|
||||||
|
|
||||||
# Get all tracks in the directory
|
# Get all tracks in the directory
|
||||||
path_tracks: [pathlib.Path] = []
|
path_tracks: [pathlib.Path] = []
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user