Пример #1
0
 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)
Пример #2
0
 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()
Пример #3
0
 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()
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 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)