Skip to content

Commit

Permalink
添加进入歌曲专辑功能 (darknessomi#415)
Browse files Browse the repository at this point in the history
* 移除不必要且錯誤的代碼

* 添加进入歌曲专辑功能

* 进去歌曲专辑时直接定位到该歌曲
  • Loading branch information
caitinggui authored and kigawas committed Oct 16, 2016
1 parent 760ebcb commit 5c1a7c6
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 7 deletions.
3 changes: 3 additions & 0 deletions NEMbox/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -610,14 +610,17 @@ def dig_info(self, data, dig_type):

if data[i]['album'] is not None:
album_name = data[i]['album']['name']
album_id = data[i]['album']['id']
else:
album_name = '未知专辑'
album_id = ''

song_info = {
'song_id': data[i]['id'],
'artist': [],
'song_name': data[i]['name'],
'album_name': album_name,
'album_id': album_id,
'mp3_url': url,
'quality': quality
}
Expand Down
39 changes: 32 additions & 7 deletions NEMbox/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,10 @@ def carousel(left, right, x):
['p', 'Present/History ', '当前/历史播放列表'],
['i', 'Music Info ', '当前音乐信息'],
['Shift+p', 'Playing Mode ', '播放模式切换'],
['Shift+a', 'Enter album ', '进入专辑'],
['a', 'Add ', '添加曲目到打碟'],
['z', 'DJ list ', '打碟列表(退出后清空)'],
['s', 'Star ', '添加到本地收藏'],
['s', 'Star ', '添加到本地收藏'],
['c', 'Collection', '本地收藏列表'],
['r', 'Remove ', '删除当前条目'],
['Shift+j', 'Move Down ', '向下移动当前条目'],
Expand Down Expand Up @@ -300,8 +301,6 @@ def start(self):

# 数字快捷键
elif ord('0') <= key <= ord('9'):
if self.datatype == ('songs', 'djchannels', 'help'):
continue
idx = key - ord('0')
self.ui.build_menu(self.datatype, self.title, self.datalist,
self.offset, idx, self.step, self.START)
Expand Down Expand Up @@ -332,8 +331,7 @@ def start(self):

# 前进
elif key == ord('l') or key == 10:
if self.datatype == ('songs', 'djchannels',
'help') or len(self.datalist) <= 0:
if len(self.datalist) <= 0:
continue
self.START = time.time()
self.ui.build_loading()
Expand Down Expand Up @@ -467,6 +465,33 @@ def start(self):
self.storage.database['player_info']['playing_mode'] +
1) % 5

# 进入专辑
elif key == ord('A'):
if datatype == 'album':
continue
if datatype in ['songs', 'fmsongs']:
song_id = datalist[idx]['song_id']
album_id = datalist[idx]['album_id']
album_name = datalist[idx]['album_name']
elif self.player.playing_flag:
song_id = self.player.playing_id
song_info = self.storage.database['songs'].get(str(song_id), {})
album_id = song_info.get('album_id', '')
album_name = song_info.get('album_name', '')
else:
album_id = 0
if album_id:
self.stack.append([datatype, title, datalist, offset, index])
songs = self.netease.album(album_id)
self.datatype = 'songs'
self.datalist = self.netease.dig_info(songs, 'songs')
self.title = '网易云音乐 > 专辑 > %s' % album_name
for i in range(len(self.datalist)):
if self.datalist[i]['song_id'] == song_id:
self.offset = i - i%step
self.index = i
break

# 添加到打碟歌单
elif key == ord('a'):
if datatype == 'songs' and len(datalist) != 0:
Expand Down Expand Up @@ -501,8 +526,8 @@ def start(self):

# 从当前列表移除
elif key == ord('r'):
if (datatype == 'songs' or
datatype == 'djchannels') and len(datalist) != 0:
if (datatype in ('songs', 'djchannels', 'fmsongs') and
len(datalist) != 0):
self.datalist.pop(idx)
self.index = carousel(offset, min(
len(datalist), offset + step) - 1, idx)
Expand Down
1 change: 1 addition & 0 deletions NEMbox/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ def __init__(self):
song_name str
mp3_url str
album_name str
album_id str
quality str
lyric str
tlyric str
Expand Down

0 comments on commit 5c1a7c6

Please sign in to comment.