mirror of
https://github.com/PretendoNetwork/super-mario-maker.git
synced 2026-08-01 16:04:45 -05:00
Added user starred courses list
This commit is contained in:
parent
549e54d6bb
commit
65ade9ec45
16
database.go
16
database.go
|
|
@ -104,6 +104,15 @@ func connectCassandra() {
|
|||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if err := cassandraClusterSession.Query(`CREATE TABLE IF NOT EXISTS pretendo_smm.user_play_info (
|
||||
pid int PRIMARY KEY,
|
||||
starred_courses set<bigint>,
|
||||
played_courses set<bigint>
|
||||
)`).Exec(); err != nil {
|
||||
fmt.Println("pretendo_smm.user_play_info")
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
fmt.Println("Connected to Cassandra")
|
||||
}
|
||||
|
||||
|
|
@ -415,6 +424,13 @@ func incrementCourseAttemptCount(courseID uint64) {
|
|||
}
|
||||
}
|
||||
|
||||
func getUserStarredCourses(pid uint32) []*CourseMetadata {
|
||||
var dataIDs []uint64
|
||||
_ = cassandraClusterSession.Query(`SELECT starred_courses FROM pretendo_smm.user_play_info WHERE pid=?`, pid).Scan(&dataIDs)
|
||||
|
||||
return getCourseMetadataByDataIDs(dataIDs)
|
||||
}
|
||||
|
||||
//////////////////////////////
|
||||
// //
|
||||
// MongoDB database methods //
|
||||
|
|
|
|||
|
|
@ -10,11 +10,9 @@ import (
|
|||
func getBufferQueue(err error, client *nex.Client, callID uint32, param *nexproto.BufferQueueParam) {
|
||||
rmcResponseStream := nex.NewStreamOut(nexServer)
|
||||
|
||||
fmt.Printf("%+v\n", param)
|
||||
// TODO: complete this
|
||||
|
||||
// TODO complete this
|
||||
|
||||
pBufferQueue := make([][]byte, 0)
|
||||
var pBufferQueue [][]byte
|
||||
|
||||
switch param.Slot {
|
||||
case 0: // unknown
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ func getCustomRankingByDataId(err error, client *nex.Client, callID uint32, para
|
|||
var pResults []uint32
|
||||
|
||||
switch param.ApplicationId {
|
||||
case 0: // Starred courses
|
||||
pRankingResult, pResults = getCustomRankingByDataIdStarredCourses(client.PID())
|
||||
case 300000000: // Mii data
|
||||
pRankingResult, pResults = getCustomRankingByDataIdMiiData(param)
|
||||
default: // Normal course data
|
||||
|
|
@ -45,6 +47,106 @@ func getCustomRankingByDataId(err error, client *nex.Client, callID uint32, para
|
|||
nexServer.Send(responsePacket)
|
||||
}
|
||||
|
||||
func getCustomRankingByDataIdStarredCourses(pid uint32) ([]*nexproto.DataStoreCustomRankingResult, []uint32) {
|
||||
courseMetadatas := getUserStarredCourses(pid)
|
||||
|
||||
pRankingResult := make([]*nexproto.DataStoreCustomRankingResult, 0)
|
||||
pResults := make([]uint32, 0)
|
||||
|
||||
for _, courseMetadata := range courseMetadatas {
|
||||
rankingResult := nexproto.NewDataStoreCustomRankingResult()
|
||||
|
||||
rankingResult.Order = 0 // unknown
|
||||
rankingResult.Score = courseMetadata.Stars
|
||||
rankingResult.MetaInfo = nexproto.NewDataStoreMetaInfo()
|
||||
rankingResult.MetaInfo.DataID = courseMetadata.DataID
|
||||
rankingResult.MetaInfo.OwnerID = courseMetadata.OwnerPID
|
||||
rankingResult.MetaInfo.Size = courseMetadata.Size
|
||||
rankingResult.MetaInfo.Name = courseMetadata.Name
|
||||
rankingResult.MetaInfo.DataType = courseMetadata.DataType
|
||||
rankingResult.MetaInfo.MetaBinary = courseMetadata.MetaBinary
|
||||
rankingResult.MetaInfo.Permission = nexproto.NewDataStorePermission()
|
||||
rankingResult.MetaInfo.Permission.Permission = 0 // unknown
|
||||
rankingResult.MetaInfo.Permission.RecipientIds = []uint32{}
|
||||
rankingResult.MetaInfo.DelPermission = nexproto.NewDataStorePermission()
|
||||
rankingResult.MetaInfo.DelPermission.Permission = 3 // unknown
|
||||
rankingResult.MetaInfo.DelPermission.RecipientIds = []uint32{}
|
||||
rankingResult.MetaInfo.CreatedTime = courseMetadata.CreatedTime
|
||||
rankingResult.MetaInfo.UpdatedTime = courseMetadata.UpdatedTime
|
||||
rankingResult.MetaInfo.Period = courseMetadata.Period
|
||||
rankingResult.MetaInfo.Status = 0 // unknown
|
||||
rankingResult.MetaInfo.ReferredCnt = 0 // unknown
|
||||
rankingResult.MetaInfo.ReferDataID = 0 // unknown
|
||||
rankingResult.MetaInfo.Flag = courseMetadata.Flag
|
||||
rankingResult.MetaInfo.ReferredTime = courseMetadata.CreatedTime
|
||||
rankingResult.MetaInfo.ExpireTime = nex.NewDateTime(671075926016) // December 31st, year 9999
|
||||
rankingResult.MetaInfo.Tags = []string{""} // unknown
|
||||
rankingResult.MetaInfo.Ratings = []*nexproto.DataStoreRatingInfoWithSlot{
|
||||
nexproto.NewDataStoreRatingInfoWithSlot(), // attempts
|
||||
nexproto.NewDataStoreRatingInfoWithSlot(), // unknown
|
||||
nexproto.NewDataStoreRatingInfoWithSlot(), // completions
|
||||
nexproto.NewDataStoreRatingInfoWithSlot(), // failures
|
||||
nexproto.NewDataStoreRatingInfoWithSlot(), // unknown
|
||||
nexproto.NewDataStoreRatingInfoWithSlot(), // unknown
|
||||
nexproto.NewDataStoreRatingInfoWithSlot(), // unknown
|
||||
}
|
||||
|
||||
// attempts
|
||||
rankingResult.MetaInfo.Ratings[0].Slot = 0
|
||||
rankingResult.MetaInfo.Ratings[0].Rating = nexproto.NewDataStoreRatingInfo()
|
||||
rankingResult.MetaInfo.Ratings[0].Rating.TotalValue = int64(courseMetadata.Attempts)
|
||||
rankingResult.MetaInfo.Ratings[0].Rating.Count = courseMetadata.Attempts
|
||||
rankingResult.MetaInfo.Ratings[0].Rating.InitialValue = 0
|
||||
|
||||
// unknown
|
||||
rankingResult.MetaInfo.Ratings[1].Slot = 1
|
||||
rankingResult.MetaInfo.Ratings[1].Rating = nexproto.NewDataStoreRatingInfo()
|
||||
rankingResult.MetaInfo.Ratings[1].Rating.TotalValue = 2
|
||||
rankingResult.MetaInfo.Ratings[1].Rating.Count = 2
|
||||
rankingResult.MetaInfo.Ratings[1].Rating.InitialValue = 0
|
||||
|
||||
// completions
|
||||
rankingResult.MetaInfo.Ratings[2].Slot = 2
|
||||
rankingResult.MetaInfo.Ratings[2].Rating = nexproto.NewDataStoreRatingInfo()
|
||||
rankingResult.MetaInfo.Ratings[2].Rating.TotalValue = int64(courseMetadata.Completions)
|
||||
rankingResult.MetaInfo.Ratings[2].Rating.Count = courseMetadata.Completions
|
||||
rankingResult.MetaInfo.Ratings[2].Rating.InitialValue = 0
|
||||
|
||||
// failures
|
||||
rankingResult.MetaInfo.Ratings[3].Slot = 3
|
||||
rankingResult.MetaInfo.Ratings[3].Rating = nexproto.NewDataStoreRatingInfo()
|
||||
rankingResult.MetaInfo.Ratings[3].Rating.TotalValue = int64(courseMetadata.Failures)
|
||||
rankingResult.MetaInfo.Ratings[3].Rating.Count = courseMetadata.Failures
|
||||
rankingResult.MetaInfo.Ratings[3].Rating.InitialValue = 0
|
||||
|
||||
// unknown
|
||||
rankingResult.MetaInfo.Ratings[4].Slot = 4
|
||||
rankingResult.MetaInfo.Ratings[4].Rating = nexproto.NewDataStoreRatingInfo()
|
||||
rankingResult.MetaInfo.Ratings[4].Rating.TotalValue = 5
|
||||
rankingResult.MetaInfo.Ratings[4].Rating.Count = 5
|
||||
rankingResult.MetaInfo.Ratings[4].Rating.InitialValue = 0
|
||||
|
||||
// unknown
|
||||
rankingResult.MetaInfo.Ratings[5].Slot = 5
|
||||
rankingResult.MetaInfo.Ratings[5].Rating = nexproto.NewDataStoreRatingInfo()
|
||||
rankingResult.MetaInfo.Ratings[5].Rating.TotalValue = 6
|
||||
rankingResult.MetaInfo.Ratings[5].Rating.Count = 6
|
||||
rankingResult.MetaInfo.Ratings[5].Rating.InitialValue = 0
|
||||
|
||||
// Number of new Miiverse comments
|
||||
rankingResult.MetaInfo.Ratings[6].Slot = 6
|
||||
rankingResult.MetaInfo.Ratings[6].Rating = nexproto.NewDataStoreRatingInfo()
|
||||
rankingResult.MetaInfo.Ratings[6].Rating.TotalValue = 0
|
||||
rankingResult.MetaInfo.Ratings[6].Rating.Count = 0
|
||||
rankingResult.MetaInfo.Ratings[6].Rating.InitialValue = 0
|
||||
|
||||
pRankingResult = append(pRankingResult, rankingResult)
|
||||
pResults = append(pResults, 0x690001)
|
||||
}
|
||||
|
||||
return pRankingResult, pResults
|
||||
}
|
||||
|
||||
func getCustomRankingByDataIdMiiData(param *nexproto.DataStoreGetCustomRankingByDataIdParam) ([]*nexproto.DataStoreCustomRankingResult, []uint32) {
|
||||
pRankingResult := make([]*nexproto.DataStoreCustomRankingResult, 0)
|
||||
pResults := make([]uint32, 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user