Skip to content

Commit

Permalink
修复无法获取任务的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
XiaoMengXinX committed Apr 9, 2022
1 parent 37f48ad commit d72a16e
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 40 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module github.com/XiaoMengXinX/Fuck163MusicTasks/v2
go 1.17

require (
github.com/XiaoMengXinX/Music163Api-Go v0.1.24
github.com/XiaoMengXinX/Music163Api-Go v0.1.25
github.com/robfig/cron/v3 v3.0.1
github.com/sirupsen/logrus v1.8.1
)
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
github.com/XiaoMengXinX/Music163Api-Go v0.1.24 h1:tz4c4R8yVJTi8zVdGA7PsBXXU4YmT9iUE7dQjE53Jy8=
github.com/XiaoMengXinX/Music163Api-Go v0.1.24/go.mod h1:kLU/CkLxKnEJFCge0URvQ0lHt6ImoG1/2aVeNbgV2RQ=
github.com/XiaoMengXinX/Music163Api-Go v0.1.25 h1:Wli9RTuNTad73cKqLtYQdd1u7B+2MCTNSXF47nlPOXE=
github.com/XiaoMengXinX/Music163Api-Go v0.1.25/go.mod h1:kLU/CkLxKnEJFCge0URvQ0lHt6ImoG1/2aVeNbgV2RQ=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
Expand Down
71 changes: 34 additions & 37 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@ import (
"encoding/json"
"flag"
"fmt"
"github.com/XiaoMengXinX/Music163Api-Go/api"
"github.com/XiaoMengXinX/Music163Api-Go/types"
"github.com/XiaoMengXinX/Music163Api-Go/utils"
"github.com/robfig/cron/v3"
log "github.com/sirupsen/logrus"
"io"
"io/ioutil"
"math/rand"
Expand All @@ -17,6 +12,12 @@ import (
"runtime"
"strings"
"time"

"github.com/XiaoMengXinX/Music163Api-Go/api"
"github.com/XiaoMengXinX/Music163Api-Go/types"
"github.com/XiaoMengXinX/Music163Api-Go/utils"
"github.com/robfig/cron/v3"
log "github.com/sirupsen/logrus"
)

// LogFormatter 自定义 log 格式
Expand Down Expand Up @@ -202,7 +203,7 @@ func autoTasks(userData types.LoginStatusData, data utils.RequestData) error {
return err
}
if strings.Contains(userDetail.CurrentExpert.RoleName, "网易音乐人") {
artistDetail, err := api.GetArtistDetail(data, int64(userDetail.Profile.ArtistId))
artistDetail, err := api.GetArtistHomepage(data, int64(userDetail.Profile.ArtistId))
parseCircleID(artistDetail)
autoTasks, err := checkCloudBean(userData, data)
if err != nil {
Expand Down Expand Up @@ -230,15 +231,15 @@ func autoTasks(userData types.LoginStatusData, data utils.RequestData) error {
return nil
}

func musicianTasks(userData types.LoginStatusData, data utils.RequestData, autoTasks []int, i int) {
func musicianTasks(userData types.LoginStatusData, data utils.RequestData, autoTasks []string, i int) {
defer func() {
err := recover()
if err != nil {
log.Errorln(err)
}
}()
switch autoTasks[i] {
case 749006:
switch {
case strings.Contains(autoTasks[i], "签到"):
log.Printf("[%s] 执行音乐人签到任务中", userData.Profile.Nickname)
result, err := api.MusicianSign(data)
if err != nil {
Expand All @@ -249,14 +250,14 @@ func musicianTasks(userData types.LoginStatusData, data utils.RequestData, autoT
} else {
log.Printf("[%s] 音乐人签到失败: %s", userData.Profile.Nickname, result.Message)
}
case 740004:
case strings.Contains(autoTasks[i], "动态"):
log.Printf("[%s] 执行发送动态任务中", userData.Profile.Nickname)
err := sendEventTask(userData, data)
if err != nil {
log.Println(err)
}
log.Printf("[%s] 发送动态任务执行完成", userData.Profile.Nickname)
case 732004:
case strings.Contains(autoTasks[i], "评论"):
log.Printf("[%s] 执行回复评论任务中", userData.Profile.Nickname)
commentConfig := api.CommentConfig{
ResType: api.ResTypeMusic,
Expand All @@ -269,21 +270,21 @@ func musicianTasks(userData types.LoginStatusData, data utils.RequestData, autoT
log.Println(err)
}
log.Printf("[%s] 发送回复评论执行完成", userData.Profile.Nickname)
case 755001:
case strings.Contains(autoTasks[i], "私信"):
log.Printf("[%s] 执行发送私信任务中", userData.Profile.Nickname)
err := sendMsgTask(userData, config.SendMsgConfig.UserID[processingUser], data)
if err != nil {
log.Println(err)
}
log.Printf("[%s] 发送私信任务执行完成", userData.Profile.Nickname)
case 744005:
case strings.Contains(autoTasks[i], "mlog"):
log.Printf("[%s] 执行发送 Mlog 任务中", userData.Profile.Nickname)
err := sendMlogTask(userData, data)
if err != nil {
log.Println(err)
}
log.Printf("[%s] 发送 Mlog 任务执行完成", userData.Profile.Nickname)
case 755000:
case strings.Contains(autoTasks[i], "主创说"):
log.Printf("[%s] 执行发送主创说任务中", userData.Profile.Nickname)
commentConfig := api.CommentConfig{
ResType: api.ResTypeMusic,
Expand All @@ -295,7 +296,7 @@ func musicianTasks(userData types.LoginStatusData, data utils.RequestData, autoT
log.Println(err)
}
log.Printf("[%s] 发送主创说任务执行完成", userData.Profile.Nickname)
case 740005:
case strings.Contains(autoTasks[i], "云圈"):
log.Printf("[%s] 执行访问云圈任务中", userData.Profile.Nickname)
err := getCircleTask(data)
if err != nil {
Expand Down Expand Up @@ -561,23 +562,23 @@ func vipGrowthpointTask(userData types.LoginStatusData, data utils.RequestData)
return err
}

func checkCloudBean(userData types.LoginStatusData, data utils.RequestData) ([]int, error) {
func checkCloudBean(userData types.LoginStatusData, data utils.RequestData) ([]string, error) {
cloudBeanData, err := api.GetCloudbeanNum(data)
if err != nil {
return []int{}, err
return nil, err
}
log.Printf("[%s] 账号当前云豆数: %d", userData.Profile.Nickname, cloudBeanData.Data.CloudBean)
log.Printf("[%s] 获取音乐人任务中...", userData.Profile.Nickname)
dailyTasks, err := api.GetMusicianDailyTasks(data)
if err != nil {
return []int{}, err
return nil, err
}
weeklyTasks, err := api.GetMusicianWeeklyTasks(data)
if err != nil {
return []int{}, err
return nil, err
}
var isObtainCloudBean bool
var autoTasks []int
var autoTasks []string
for _, task := range dailyTasks.Data.List {
if task.Status == 20 {
log.Printf("[%s] 「%s」任务已完成, 正在领取云豆", userData.Profile.Nickname, task.Description)
Expand All @@ -591,9 +592,9 @@ func checkCloudBean(userData types.LoginStatusData, data utils.RequestData) ([]i
} else {
log.Errorf("[%s] 领取「%s」任务云豆失败: %s", userData.Profile.Nickname, task.Description, result.Message)
}
} else if autoTaskAvail(task.MissionId) && task.Status != 100 {
} else if autoTaskAvail(task.Description) && task.Status != 100 {
log.Printf("[%s] 任务「%s」任务未完成或进行中", userData.Profile.Nickname, task.Description)
autoTasks = append(autoTasks, task.MissionId)
autoTasks = append(autoTasks, task.Description)
}
}
for _, task := range weeklyTasks.Data.List {
Expand All @@ -612,17 +613,17 @@ func checkCloudBean(userData types.LoginStatusData, data utils.RequestData) ([]i
log.Errorf("[%s] 领取「%s」任务云豆失败: %s", userData.Profile.Nickname, task.Description, result.Message)
}
}
} else if autoTaskAvail(task.MissionId) && task.Status != 100 {
} else if autoTaskAvail(task.Description) && task.Status != 100 {
log.Printf("[%s] 任务「%s」任务未完成或进行中", userData.Profile.Nickname, task.Description)
autoTasks = append(autoTasks, task.MissionId)
autoTasks = append(autoTasks, task.Description)
}
}
}
if isObtainCloudBean {
time.Sleep(time.Duration(10) * time.Second)
cloudBeanData, err = api.GetCloudbeanNum(data)
if err != nil {
return []int{}, err
return nil, err
}
log.Printf("[%s] 账号当前云豆数: %d", userData.Profile.Nickname, cloudBeanData.Data.CloudBean)
}
Expand Down Expand Up @@ -653,29 +654,25 @@ func checkPathExists(path string) bool {
return false
}

func parseCircleID(artistDetail types.ArtistDetailData) {
func parseCircleID(artistDetail types.ArtistHomepageData) {
for _, d := range artistDetail.Data.Blocks {
if d.Code == "PERSONAL_MY_CIRCLE" {
for _, creative := range d.Creatives {
for _, r := range creative.Resources {
if r.ResourceType != nil && r.ResourceId != nil {
if *r.ResourceType == "CIRCLE" && *r.ResourceId != "" {
circleID = *r.ResourceId
return
}
if r.ResourceType == "CIRCLE" && r.ResourceId != "" {
circleID = r.ResourceId
return
}

}
}
}
}
}

func autoTaskAvail(val int) bool { //
availAutoTasks := []int{740004, 744005, 732004, 755001, 749006, 755000, 740005}
for i := 0; i < len(availAutoTasks); i++ {
if val == availAutoTasks[i] {
return true
}
func autoTaskAvail(val string) bool {
if strings.Contains(val, "签到") || strings.Contains(val, "动态") || strings.Contains(val, "评论") || strings.Contains(val, "私信") || strings.Contains(val, "mlog") || strings.Contains(val, "主创说") || strings.Contains(val, "云圈") {
return true
}
return false
}

0 comments on commit d72a16e

Please sign in to comment.