def download(self): if not self.searchTable.rowCount(): return hasExisted = [] self.readyToDownloadSongs = [] selections = self.searchTable.selectionModel() selecteds = selections.selectedIndexes() if not len(selecteds): return self.setCursor(QCursor(Qt.BusyCursor)) for index in selecteds: if index.column() == 0: row = index.row() songName = self.searchTable.item(row, 1).text() artist = self.searchTable.item(row, 2).text() title = connect_as_title(artist, songName) musicName = get_full_music_name_from_title(title) musicPath = os.path.join(self.downloadDir, musicName) if os.path.exists(musicPath): hasExisted.append(title) continue for t in threading.enumerate(): if t.name == musicPath: continue album = self.searchTable.item(row, 3).text() musicId = self.searchTable.item(row, 4).text() songLink = Configures.NoLink self.readyToDownloadSongs.append([songLink, musicPath, title , album, musicId]) self.add_to_download_signal.emit() self.setCursor(QCursor(Qt.ArrowCursor)) if len(hasExisted): hasExistFiles = '\n'.join(hasExisted) self.show() QMessageBox.information(self, '提示','以下歌曲已在下载目录中,将不再进行下载!\n%s'%hasExistFiles)
def add_bunch_to_list(self): """向“在线试听”列表批量添加歌曲。""" selecteds = self.searchTable.selectedIndexes() if not len(selecteds): return self.added_items = [] playlistTemp = Playlist() playlistTemp.fill_list(Configures.PlaylistOnline) musicIdsInOnlineList = playlistTemp.get_items_queue() for index in selecteds: if index.column() == 0: row = index.row() musicId = self.searchTable.item(row, 4).text() if musicId not in musicIdsInOnlineList: musicName = self.searchTable.item(row, 1).text() artist = self.searchTable.item(row, 2).text() title = connect_as_title(artist, musicName) album = self.searchTable.item(row, 3).text() lrcPath = composite_lyric_path_use_title(title) if os.path.exists(lrcPath): os.remove(lrcPath) self.added_items.append([title, musicId]) playlistTemp.add_record(musicId, title, Configures.ZeroTime, album, Configures.NoLink, 0, musicId) if len(self.added_items): playlistTemp.commit_records() thread = DownloadLrcThread(self.added_items) thread.setDaemon(True) thread.setName("downloadLrc") thread.start() self.add_bunch_to_list_succeed.emit()
def apply(self): if self.check_validity() and (self.artist, self.musicName, self.album) != (self.artistEdit.text(), self.musicEdit.text(), self.albumEdit.text()): self.artist, self.musicName, self.album = self.artistEdit.text(), self.musicEdit.text(), self.albumEdit.text() self.title = connect_as_title(self.artist, self.musicName) write_tags(self.path, self.title, self.album) modifiedTime = get_time_of_now() self.modifyTimeLabel.setText('修改时间: %s'%format_time_str_with_weekday(modifiedTime)) self.tag_values_changed_signal.emit(self.row, self.title, self.album, modifiedTime)
def searchtable_clicked(self, row): musicName = self.searchTable.item(row, 1).text() artist = self.searchTable.item(row, 2).text() title = connect_as_title(artist, musicName) album = self.searchTable.item(row, 3).text() musicId = self.searchTable.item(row, 4).text() songLink = SearchOnline.get_song_link(musicId) if not songLink: return thread = DownloadLrcThread([(title, musicId)]) thread.setDaemon(True) thread.setName('downloadLrc') thread.start() self.listen_online_signal.emit(title, album, songLink, musicId)
def apply(self): if self.check_validity() and (self.artist, self.musicName, self.album) != (self.artistEdit.text(), self.musicEdit.text(), self.albumEdit.text()): self.artist, self.musicName, self.album = self.artistEdit.text( ), self.musicEdit.text(), self.albumEdit.text() self.title = connect_as_title(self.artist, self.musicName) write_tags(self.path, self.title, self.album) modifiedTime = get_time_of_now() self.modifyTimeLabel.setText( '修改时间: %s' % format_time_str_with_weekday(modifiedTime)) self.tag_values_changed_signal.emit(self.row, self.title, self.album, modifiedTime)
def download(self): if not self.searchTable.rowCount(): return hasExisted = [] self.readyToDownloadSongs = [] selections = self.searchTable.selectionModel() selecteds = selections.selectedIndexes() if not len(selecteds): return self.setCursor(QCursor(Qt.BusyCursor)) for index in selecteds: if index.column() == 0: row = index.row() songName = self.searchTable.item(row, 1).text() artist = self.searchTable.item(row, 2).text() title = connect_as_title(artist, songName) musicName = get_full_music_name_from_title(title) musicPath = os.path.join(self.downloadDir, musicName) if os.path.exists(musicPath): hasExisted.append(title) continue for t in threading.enumerate(): if t.name == musicPath: continue album = self.searchTable.item(row, 3).text() musicId = self.searchTable.item(row, 4).text() songLink = Configures.NoLink self.readyToDownloadSongs.append( [songLink, musicPath, title, album, musicId]) self.add_to_download_signal.emit() self.setCursor(QCursor(Qt.ArrowCursor)) if len(hasExisted): hasExistFiles = '\n'.join(hasExisted) self.show() QMessageBox.information(self, '提示', '以下歌曲已在下载目录中,将不再进行下载!\n%s' % hasExistFiles)