From be6a80ad07e27e15ccc784a2376a73b6d5292f9c Mon Sep 17 00:00:00 2001 From: weiy Date: Wed, 23 Jan 2019 18:23:09 +0800 Subject: [PATCH] save selected local music folders --- MusicPlayer/features/configNativeFeatures.py | 33 ++++++++++++++++---- MusicPlayer/music.py | 3 +- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/MusicPlayer/features/configNativeFeatures.py b/MusicPlayer/features/configNativeFeatures.py index cb4ecbe..026342d 100644 --- a/MusicPlayer/features/configNativeFeatures.py +++ b/MusicPlayer/features/configNativeFeatures.py @@ -2,6 +2,7 @@ import os import glob +import pickle import os.path try: @@ -9,7 +10,7 @@ except ImportError: print('eyed3没有成功加载或安装,请不要使用本地音乐功能!') -from base import QFileDialog, QObject, QTableWidgetItem +from base import QFileDialog, QObject, QTableWidgetItem, checkFolder from addition import itv2time @@ -31,6 +32,8 @@ def findFolder(topFolder): class ConfigNative(QObject): + loadLocalFolder = 'cookies/native/local.cks' + allCookiesFolder = [loadLocalFolder] def __init__(self, native): super(ConfigNative, self).__init__() @@ -40,6 +43,7 @@ def __init__(self, native): self.folder = [] self.bindConnect() + self.loadCookies() def bindConnect(self): self.native.selectButton.clicked.connect(self.selectFolder) @@ -53,8 +57,13 @@ def selectFolder(self): else: self.folder.append(selectFolder) - mediaFiles = glob.glob(selectFolder+'/*.mp3') - allFolder = getAllFolder(selectFolder) + self.loadMusic() + + def loadMusic(self): + + for folder in self.folder: + mediaFiles = glob.glob(folder+'/*.mp3') + allFolder = getAllFolder(folder) for i in allFolder: mediaFiles.extend(glob.glob(i+'/*.mp3')) @@ -74,7 +83,7 @@ def selectFolder(self): author = music.tag.artist if not name: - filePath = i[1].replace(selectFolder, '') + filePath = i[1].replace(folder, '') name = filePath[1:][:-4] if not author: author = '' @@ -82,7 +91,7 @@ def selectFolder(self): try: # TODO # if more folders exist. - filePath = i[1].replace(selectFolder, '') + filePath = i[1].replace(folder, '') name = filePath[1:][:-4] except Exception as e: name = i[1] @@ -102,4 +111,16 @@ def itemDoubleClickedEvent(self): currentRow = self.native.singsTable.currentRow() data = self.musicList[currentRow] - self.native.parent.playWidgets.setPlayerAndPlayList(data) \ No newline at end of file + self.native.parent.playWidgets.setPlayerAndPlayList(data) + + @checkFolder(allCookiesFolder) + def saveCookies(self): + with open(self.loadLocalFolder, 'wb') as f: + pickle.dump(self.folder, f) + + @checkFolder(allCookiesFolder) + def loadCookies(self): + with open(self.loadLocalFolder, 'rb') as f: + self.folder = pickle.load(f) + + self.loadMusic() diff --git a/MusicPlayer/music.py b/MusicPlayer/music.py index 2ad7e15..ee56eb2 100644 --- a/MusicPlayer/music.py +++ b/MusicPlayer/music.py @@ -208,7 +208,8 @@ def closeEvent(self, event): self.header.config.saveCookies() self.playWidgets.saveCookies() self.downloadFrame.config.saveCookies() - + self.nativeMusic.config.saveCookies() + # 关闭并保存数据库 self.db.commitAndClose()