/
syndicatemissions.go
82 lines (73 loc) · 2.68 KB
/
syndicatemissions.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package parser
import (
"strings"
"sync"
"github.com/bitti09/go-wfapi/datasources"
"github.com/bitti09/go-wfapi/helper"
"github.com/buger/jsonparser"
)
// SyndicateJobs struct
type SyndicateJobs struct {
Jobtype string
Rewards []string
MinEnemyLevel int64
MaxEnemyLevel int64
StandingReward []string
}
// SyndicateMissions struct
type SyndicateMissions struct {
ID string
Started string
End string
Syndicate string
Jobs []SyndicateJobs
}
// SyndicateMissionsdata export SyndicateMissions
var SyndicateMissionsdata = make(map[int]map[string][]SyndicateMissions)
// ParseSyndicateMissions Parse Ostrons & Solaris United Missions
func ParseSyndicateMissions(platformno int, platform string, lang string, wg *sync.WaitGroup) {
defer wg.Done()
if _, ok := SyndicateMissionsdata[platformno]; !ok {
SyndicateMissionsdata[platformno] = make(map[string][]SyndicateMissions)
}
data := datasources.Apidata[platformno]
var syndicates []SyndicateMissions
jsonparser.ArrayEach(data, func(value []byte, dataType jsonparser.ValueType, offset int, err error) {
syndicatecheck, _ := jsonparser.GetString(value, "Tag")
if syndicatecheck == "CetusSyndicate" || syndicatecheck == "SolarisSyndicate" {
id, _ := jsonparser.GetString(value, "_id", "$oid")
started, _ := jsonparser.GetString(value, "Activation", "$date", "$numberLong")
ended, _ := jsonparser.GetString(value, "Expiry", "$date", "$numberLong")
syndicate, _ := jsonparser.GetString(value, "Tag")
var jobs []SyndicateJobs
jsonparser.ArrayEach(value, func(value1 []byte, dataType jsonparser.ValueType, offset int, err error) {
jobtype, _ := jsonparser.GetString(value1, "jobType")
jobtype = helper.Langtranslate1(jobtype, lang)
rewards0, _ := jsonparser.GetString(value1, "rewards")
rewards1 := helper.Langtranslate1(rewards0, lang)
rewards := strings.Split(rewards1, ",")
minEnemyLevel, _ := jsonparser.GetInt(value1, "minEnemyLevel")
maxEnemyLevel, _ := jsonparser.GetInt(value1, "maxEnemyLevel")
standing := make([]string, 0)
jsonparser.ArrayEach(value1, func(xpam []byte, dataType jsonparser.ValueType, offset int, err error) {
standing = append(standing, string(xpam))
}, "xpAmounts")
jobs = append(jobs, SyndicateJobs{
Jobtype: jobtype,
Rewards: rewards,
MinEnemyLevel: minEnemyLevel,
MaxEnemyLevel: maxEnemyLevel,
StandingReward: standing,
})
}, "Jobs")
w := SyndicateMissions{
ID: id,
Started: started,
End: ended,
Syndicate: syndicate,
Jobs: jobs}
syndicates = append(syndicates, w)
}
}, "SyndicateMissions")
SyndicateMissionsdata[platformno][lang] = syndicates
}