forked from Wobbl/Wobuzz
Added popup on import where the user can configure how the tracks get imported.
This commit is contained in:
parent
31b2e3bf41
commit
fd34476d00
12 changed files with 289 additions and 28 deletions
|
@ -1 +1,8 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
def __getattr__(name):
|
||||
match name:
|
||||
case "Library":
|
||||
from .library import Library
|
||||
|
||||
return Library
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import os
|
||||
import shutil
|
||||
from PyQt6.QtWidgets import QTabWidget, QAbstractItemView
|
||||
|
||||
from ..player.playlist import Playlist
|
||||
from ..ui.library.library import LibraryWidget
|
||||
from ..ui.playlist_view import PlaylistView
|
||||
from ..types import Types
|
||||
|
||||
|
||||
class Library:
|
||||
|
@ -115,15 +115,28 @@ class Library:
|
|||
|
||||
playlist.load()
|
||||
|
||||
def import_tracks(self, tracks: list[str]):
|
||||
playlist = Playlist(self.app, "Temporary Playlist", tracks, True)
|
||||
def import_tracks(
|
||||
self,
|
||||
tracks: list[str],
|
||||
import_options: Types.ImportOptions
|
||||
):
|
||||
playlist = Playlist(self.app, "Temporary Playlist", tracks, import_options)
|
||||
|
||||
self.replace_temporary_playlist(playlist)
|
||||
|
||||
self.load_playlist_views()
|
||||
playlist.load()
|
||||
|
||||
def import_track(self, track):
|
||||
def import_track(self, track, import_options: Types.ImportOptions):
|
||||
if import_options.artist is not None:
|
||||
track.metadata.artist = import_options.artist
|
||||
|
||||
if import_options.album is not None:
|
||||
track.metadata.album = import_options.album
|
||||
|
||||
if import_options.genre is not None:
|
||||
track.metadata.genre = import_options.genre
|
||||
|
||||
artist_path = os.path.expanduser(f"{self.app.settings.library_path}/artists/{track.metadata.artist}")
|
||||
|
||||
if not os.path.exists(artist_path):
|
||||
|
@ -134,10 +147,7 @@ class Library:
|
|||
if track.path == new_track_path or os.path.exists(new_track_path): # track is already in the library
|
||||
return
|
||||
|
||||
shutil.copyfile(track.path, new_track_path)
|
||||
|
||||
track.path = new_track_path
|
||||
track.metadata.path = new_track_path
|
||||
track.copy(new_track_path, import_options.copy_type)
|
||||
|
||||
def open_playlist(self, playlist_path: str):
|
||||
playlist = Playlist(self.app, "Temporary Playlist", playlist_path)
|
||||
|
@ -148,8 +158,8 @@ class Library:
|
|||
|
||||
playlist.load()
|
||||
|
||||
def import_playlist(self, playlist_path: str):
|
||||
playlist = Playlist(self.app, "Temporary Playlist", playlist_path, import_tracks=True)
|
||||
def import_playlist(self, playlist_path: str, import_options):
|
||||
playlist = Playlist(self.app, "Temporary Playlist", playlist_path, import_options)
|
||||
|
||||
self.replace_temporary_playlist(playlist)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue