Skip to content

Commit

Permalink
optimize: login callback
Browse files Browse the repository at this point in the history
  • Loading branch information
anhoder committed Sep 1, 2023
1 parent a84e25c commit b959aa4
Show file tree
Hide file tree
Showing 13 changed files with 41 additions and 33 deletions.
12 changes: 10 additions & 2 deletions pkg/ui/login_page.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ type LoginPage struct {
qrLoginStep int
qrLoginUniKey string
tips string
AfterLogin func(newMenu model.Menu, newTitle *model.MenuItem) model.Page
AfterLogin LoginCallback
}

func NewLoginPage(netease *Netease) (login *LoginPage) {
Expand Down Expand Up @@ -448,7 +448,15 @@ func (l *LoginPage) loginSuccessHandle(n *Netease, userInfo []byte) model.Page {

var newPage model.Page
if l.AfterLogin != nil {
newPage = l.AfterLogin(nil, nil)
newPage = l.AfterLogin()
}
return newPage
}

type LoginCallback func() model.Page

func EnterMenuLoginCallback(main *model.Main) LoginCallback {
return func() model.Page {
return main.EnterMenu(nil, nil)
}
}
4 changes: 2 additions & 2 deletions pkg/ui/menu_add_to_user_playlist.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func (m *AddToUserPlaylistMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {
// 等于0,获取当前用户歌单
if m.userId == CurUser && utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

Expand All @@ -77,7 +77,7 @@ func (m *AddToUserPlaylistMenu) BeforeEnterMenuHook() model.Hook {
code, response := userPlaylists.UserPlaylist()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down
2 changes: 1 addition & 1 deletion pkg/ui/menu_album_detail.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func (m *AlbumDetailMenu) BeforeEnterMenuHook() model.Hook {
code, response := albumService.Album()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down
6 changes: 3 additions & 3 deletions pkg/ui/menu_cloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func (m *CloudMenu) MenuViews() []model.MenuItem {
func (m *CloudMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {
if utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

Expand All @@ -63,7 +63,7 @@ func (m *CloudMenu) BeforeEnterMenuHook() model.Hook {
code, response := cloudService.UserCloud()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down Expand Up @@ -94,7 +94,7 @@ func (m *CloudMenu) BottomOutHook() model.Hook {
code, response := cloudService.UserCloud()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.netease.ToLoginPage(func() model.Page {
main.RefreshMenuList()
return nil
})
Expand Down
4 changes: 2 additions & 2 deletions pkg/ui/menu_daily_recommend_playlists.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func (m *DailyRecommendPlaylistsMenu) SubMenu(_ *model.App, index int) model.Men
func (m *DailyRecommendPlaylistsMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {
if utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

Expand All @@ -59,7 +59,7 @@ func (m *DailyRecommendPlaylistsMenu) BeforeEnterMenuHook() model.Hook {
code, response := recommendPlaylists.RecommendResource()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down
4 changes: 2 additions & 2 deletions pkg/ui/menu_daily_recommend_songs.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func (m *DailyRecommendSongsMenu) MenuViews() []model.MenuItem {
func (m *DailyRecommendSongsMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {
if utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

Expand All @@ -54,7 +54,7 @@ func (m *DailyRecommendSongsMenu) BeforeEnterMenuHook() model.Hook {
code, response := recommendSongs.RecommendSongs()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down
8 changes: 4 additions & 4 deletions pkg/ui/menu_dj_sub_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func (m *DjSubListMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {

if utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

Expand All @@ -69,7 +69,7 @@ func (m *DjSubListMenu) BeforeEnterMenuHook() model.Hook {
code, response := djSublistService.DjSublist()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand All @@ -95,7 +95,7 @@ func (m *DjSubListMenu) BottomOutHook() model.Hook {
m.offset += m.limit

if utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

Expand All @@ -106,7 +106,7 @@ func (m *DjSubListMenu) BottomOutHook() model.Hook {
code, response := djSublistService.DjSublist()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down
2 changes: 1 addition & 1 deletion pkg/ui/menu_playlist_detail.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func (m *PlaylistDetailMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {
codeType, songs := getSongsInPlaylist(m.playlistId, configs.ConfigRegistry.MainShowAllSongsOfPlaylist)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down
4 changes: 2 additions & 2 deletions pkg/ui/menu_recent_songs.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ func (m *RecentSongsMenu) MenuViews() []model.MenuItem {
func (m *RecentSongsMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {
if utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

recentSongService := service.RecordRecentSongsService{}
code, response := recentSongService.RecordRecentSongs()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down
6 changes: 3 additions & 3 deletions pkg/ui/menu_user_playlist.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ func (m *UserPlaylistMenu) BeforeEnterMenuHook() model.Hook {
return func(main *model.Main) (bool, model.Page) {
// 等于0,获取当前用户歌单
if m.userId == CurUser && utils.CheckUserInfo(m.netease.user) == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
}

Expand All @@ -100,7 +100,7 @@ func (m *UserPlaylistMenu) BeforeEnterMenuHook() model.Hook {

codeType, playlists, hasMore := getUserPlaylists(userId, m.limit, m.offset)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(main.EnterMenu)
page, _ := m.netease.ToLoginPage(EnterMenuLoginCallback(main))
return false, page
} else if codeType != utils.Success {
return false, nil
Expand Down Expand Up @@ -132,7 +132,7 @@ func (m *UserPlaylistMenu) BottomOutHook() model.Hook {
m.offset = m.offset + len(m.menus)
codeType, playlists, hasMore := getUserPlaylists(userId, m.limit, m.offset)
if codeType == utils.NeedLogin {
page, _ := m.netease.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.netease.ToLoginPage(func() model.Page {
main.RefreshMenuList()
return nil
})
Expand Down
2 changes: 1 addition & 1 deletion pkg/ui/netease.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ func NewNetease(app *model.App) *Netease {
}

// ToLoginPage 需要登录的处理
func (n *Netease) ToLoginPage(callback func(newMenu model.Menu, newTitle *model.MenuItem) model.Page) (model.Page, tea.Cmd) {
func (n *Netease) ToLoginPage(callback func() model.Page) (model.Page, tea.Cmd) {
n.login.AfterLogin = callback
return n.login, tickLogin(time.Nanosecond)
}
Expand Down
18 changes: 9 additions & 9 deletions pkg/ui/operate.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func likePlayingSong(m *Netease, isLike bool) model.Page {
}

if utils.CheckUserInfo(m.user) == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
likePlayingSong(m, isLike)
return nil
})
Expand All @@ -48,7 +48,7 @@ func likePlayingSong(m *Netease, isLike bool) model.Page {
code, response := userPlaylists.UserPlaylist()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
likePlayingSong(m, isLike)
return nil
})
Expand Down Expand Up @@ -149,7 +149,7 @@ func likeSelectedSong(m *Netease, isLike bool) model.Page {
songs := me.Songs()

if utils.CheckUserInfo(m.user) == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
likeSelectedSong(m, isLike)
return nil
})
Expand All @@ -166,7 +166,7 @@ func likeSelectedSong(m *Netease, isLike bool) model.Page {
code, response := userPlaylists.UserPlaylist()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
likeSelectedSong(m, isLike)
return nil
})
Expand Down Expand Up @@ -241,7 +241,7 @@ func trashPlayingSong(m *Netease) model.Page {
}

if utils.CheckUserInfo(m.user) == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
trashPlayingSong(m)
return nil
})
Expand Down Expand Up @@ -280,7 +280,7 @@ func trashSelectedSong(m *Netease) model.Page {
songs := me.Songs()

if utils.CheckUserInfo(m.user) == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
trashSelectedSong(m)
return nil
})
Expand Down Expand Up @@ -501,7 +501,7 @@ func collectSelectedPlaylist(m *Netease, isCollect bool) model.Page {
defer loading.complete()

if utils.CheckUserInfo(m.user) == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
collectSelectedPlaylist(m, isCollect)
return nil
})
Expand Down Expand Up @@ -613,7 +613,7 @@ func openAddSongToUserPlaylistMenu(m *Netease, isSelected, isAdd bool) model.Pag
defer loading.complete()

if utils.CheckUserInfo(m.user) == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
openAddSongToUserPlaylistMenu(m, isSelected, isAdd)
return nil
})
Expand Down Expand Up @@ -661,7 +661,7 @@ func addSongToUserPlaylist(m *Netease, isAdd bool) model.Page {
defer loading.complete()

if utils.CheckUserInfo(m.user) == utils.NeedLogin {
page, _ := m.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := m.ToLoginPage(func() model.Page {
addSongToUserPlaylist(m, isAdd)
return nil
})
Expand Down
2 changes: 1 addition & 1 deletion pkg/ui/player.go
Original file line number Diff line number Diff line change
Expand Up @@ -712,7 +712,7 @@ func (p *Player) Intelligence(appendMode bool) model.Page {
code, response := intelligenceService.PlaymodeIntelligenceList()
codeType := utils.CheckCode(code)
if codeType == utils.NeedLogin {
page, _ := p.netease.ToLoginPage(func(newMenu model.Menu, newTitle *model.MenuItem) model.Page {
page, _ := p.netease.ToLoginPage(func() model.Page {
p.Intelligence(appendMode)
return nil
})
Expand Down

0 comments on commit b959aa4

Please sign in to comment.