ZeroBot-Plugin/plugin/warframeapi/wfdata.go
2023-01-31 16:22:19 +08:00

631 lines
23 KiB
Go

package warframeapi
import "time"
type wfAPI struct {
Timestamp time.Time `json:"timestamp"`
News []news `json:"news"`
Events []events `json:"events"`
Alerts []alerts `json:"alerts"`
Sortie sortie `json:"sortie"`
SyndicateMissions []syndicateMissions `json:"syndicateMissions"`
Fissures []fissures `json:"fissures"`
GlobalUpgrades []interface{} `json:"globalUpgrades"`
FlashSales []flashSales `json:"flashSales"`
Invasions []invasions `json:"invasions"`
DarkSectors []interface{} `json:"darkSectors"`
VoidTrader voidTrader `json:"voidTrader"`
DailyDeals []dailyDeals `json:"dailyDeals"`
Simaris simaris `json:"simaris"`
ConclaveChallenges []conclaveChallenges `json:"conclaveChallenges"`
PersistentEnemies []interface{} `json:"persistentEnemies"`
EarthCycle earthCycle `json:"earthCycle"`
CetusCycle cetusCycle `json:"cetusCycle"`
CambionCycle cambionCycle `json:"cambionCycle"`
ZarimanCycle zarimanCycle `json:"zarimanCycle"`
WeeklyChallenges []interface{} `json:"weeklyChallenges"`
ConstructionProgress constructionProgress `json:"constructionProgress"`
VallisCycle vallisCycle `json:"vallisCycle"`
Nightwave nightwave `json:"nightwave"`
Kuva []interface{} `json:"kuva"`
Arbitration arbitration `json:"arbitration"`
SentientOutposts sentientOutposts `json:"sentientOutposts"`
SteelPath steelPath `json:"steelPath"`
VaultTrader vaultTrader `json:"vaultTrader"`
}
type translations struct {
En string `json:"en"`
Fr string `json:"fr"`
It string `json:"it"`
De string `json:"de"`
Es string `json:"es"`
Pt string `json:"pt"`
Ru string `json:"ru"`
Pl string `json:"pl"`
Uk string `json:"uk"`
Tr string `json:"tr"`
Ja string `json:"ja"`
Zh string `json:"zh"`
Ko string `json:"ko"`
Tc string `json:"tc"`
}
type news struct {
ID string `json:"id"`
Message string `json:"message"`
Link string `json:"link"`
ImageLink string `json:"imageLink"`
Priority bool `json:"priority"`
Date time.Time `json:"date"`
Eta string `json:"eta"`
Update bool `json:"update"`
PrimeAccess bool `json:"primeAccess"`
Stream bool `json:"stream"`
Translations translations `json:"translations"`
AsString string `json:"asString"`
}
type metadata struct {
}
type nextAlt struct {
Expiry time.Time `json:"expiry"`
Activation time.Time `json:"activation"`
}
type events struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
MaximumScore int `json:"maximumScore"`
CurrentScore int `json:"currentScore"`
SmallInterval interface{} `json:"smallInterval"`
LargeInterval interface{} `json:"largeInterval"`
Faction string `json:"faction"`
Description string `json:"description"`
Tooltip string `json:"tooltip"`
Node string `json:"node"`
ConcurrentNodes []interface{} `json:"concurrentNodes"`
Rewards []interface{} `json:"rewards"`
Expired bool `json:"expired"`
InterimSteps []interface{} `json:"interimSteps"`
ProgressSteps []interface{} `json:"progressSteps"`
IsPersonal bool `json:"isPersonal"`
RegionDrops []interface{} `json:"regionDrops"`
ArchwingDrops []interface{} `json:"archwingDrops"`
AsString string `json:"asString"`
Metadata metadata `json:"metadata"`
CompletionBonuses []interface{} `json:"completionBonuses"`
AltExpiry time.Time `json:"altExpiry"`
AltActivation time.Time `json:"altActivation"`
NextAlt nextAlt `json:"nextAlt"`
}
type variants struct {
MissionType string `json:"missionType"`
Modifier string `json:"modifier"`
ModifierDescription string `json:"modifierDescription"`
Node string `json:"node"`
}
type sortie struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
RewardPool string `json:"rewardPool"`
Variants []variants `json:"variants"`
Boss string `json:"boss"`
Faction string `json:"faction"`
Expired bool `json:"expired"`
Eta string `json:"eta"`
}
type jobs struct {
ID string `json:"id"`
RewardPool []string `json:"rewardPool"`
Type string `json:"type"`
EnemyLevels []int `json:"enemyLevels"`
StandingStages []int `json:"standingStages"`
MinMR int `json:"minMR"`
Expiry time.Time `json:"expiry"`
TimeBound string `json:"timeBound,omitempty"`
}
type syndicateMissions struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
Syndicate string `json:"syndicate"`
SyndicateKey string `json:"syndicateKey"`
Nodes []interface{} `json:"nodes"`
Jobs []jobs `json:"jobs"`
Eta string `json:"eta"`
}
type fissures struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
Node string `json:"node"`
MissionType string `json:"missionType"`
MissionKey string `json:"missionKey"`
Enemy string `json:"enemy"`
EnemyKey string `json:"enemyKey"`
NodeKey string `json:"nodeKey"`
Tier string `json:"tier"`
TierNum int `json:"tierNum"`
Expired bool `json:"expired"`
Eta string `json:"eta"`
IsStorm bool `json:"isStorm"`
}
type flashSales struct {
Item string `json:"item"`
Expiry time.Time `json:"expiry"`
Activation time.Time `json:"activation"`
Discount int `json:"discount"`
RegularOverride int `json:"regularOverride"`
PremiumOverride int `json:"premiumOverride"`
IsShownInMarket bool `json:"isShownInMarket"`
IsFeatured bool `json:"isFeatured"`
IsPopular bool `json:"isPopular"`
ID string `json:"id"`
Expired bool `json:"expired"`
Eta string `json:"eta"`
}
type countedItems struct {
Count int `json:"count"`
Type string `json:"type"`
Key string `json:"key"`
}
type attackerReward struct {
Items []interface{} `json:"items"`
CountedItems []countedItems `json:"countedItems"`
Credits int `json:"credits"`
AsString string `json:"asString"`
ItemString string `json:"itemString"`
Thumbnail string `json:"thumbnail"`
Color int `json:"color"`
}
type reward struct {
Items []interface{} `json:"items"`
CountedItems []countedItems `json:"countedItems"`
Credits int `json:"credits"`
AsString string `json:"asString"`
ItemString string `json:"itemString"`
Thumbnail string `json:"thumbnail"`
Color int `json:"color"`
}
type attacker struct {
Reward reward `json:"reward"`
Faction string `json:"faction"`
FactionKey string `json:"factionKey"`
}
type defenderReward struct {
Items []interface{} `json:"items"`
CountedItems []countedItems `json:"countedItems"`
Credits int `json:"credits"`
AsString string `json:"asString"`
ItemString string `json:"itemString"`
Thumbnail string `json:"thumbnail"`
Color int `json:"color"`
}
type defender struct {
Reward reward `json:"reward"`
Faction string `json:"faction"`
FactionKey string `json:"factionKey"`
}
type invasions struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Node string `json:"node"`
NodeKey string `json:"nodeKey"`
Desc string `json:"desc"`
AttackerReward attackerReward `json:"attackerReward"`
AttackingFaction string `json:"attackingFaction"`
Attacker attacker `json:"attacker"`
DefenderReward defenderReward `json:"defenderReward"`
DefendingFaction string `json:"defendingFaction"`
Defender defender `json:"defender"`
VsInfestation bool `json:"vsInfestation"`
Count int `json:"count"`
RequiredRuns int `json:"requiredRuns"`
Completion float64 `json:"completion"`
Completed bool `json:"completed"`
Eta string `json:"eta"`
RewardTypes []string `json:"rewardTypes"`
}
type voidTrader struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
Character string `json:"character"`
Location string `json:"location"`
Inventory []interface{} `json:"inventory"`
PsID string `json:"psId"`
EndString string `json:"endString"`
InitialStart time.Time `json:"initialStart"`
Schedule []interface{} `json:"schedule"`
}
type dailyDeals struct {
Item string `json:"item"`
Expiry time.Time `json:"expiry"`
Activation time.Time `json:"activation"`
OriginalPrice int `json:"originalPrice"`
SalePrice int `json:"salePrice"`
Total int `json:"total"`
Sold int `json:"sold"`
ID string `json:"id"`
Eta string `json:"eta"`
Discount int `json:"discount"`
}
type simaris struct {
Target string `json:"target"`
IsTargetActive bool `json:"isTargetActive"`
AsString string `json:"asString"`
}
type conclaveChallenges struct {
ID string `json:"id"`
Expiry time.Time `json:"expiry"`
Activation time.Time `json:"activation"`
Amount int `json:"amount"`
Mode string `json:"mode"`
Category string `json:"category"`
Eta string `json:"eta"`
Expired bool `json:"expired"`
Daily bool `json:"daily"`
RootChallenge bool `json:"rootChallenge"`
EndString string `json:"endString"`
Description string `json:"description"`
Title string `json:"title"`
Standing int `json:"standing"`
AsString string `json:"asString"`
}
type earthCycle struct {
ID string `json:"id"`
Expiry time.Time `json:"expiry"`
Activation time.Time `json:"activation"`
IsDay bool `json:"isDay"`
State string `json:"state"`
TimeLeft string `json:"timeLeft"`
}
type cetusCycle struct {
ID string `json:"id"`
Expiry time.Time `json:"expiry"`
Activation time.Time `json:"activation"`
IsDay bool `json:"isDay"`
State string `json:"state"`
TimeLeft string `json:"timeLeft"`
IsCetus bool `json:"isCetus"`
ShortString string `json:"shortString"`
}
type cambionCycle struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
Expiry time.Time `json:"expiry"`
TimeLeft string `json:"timeLeft"`
Active string `json:"active"`
}
type zarimanCycle struct {
ID string `json:"id"`
BountiesEndDate time.Time `json:"bountiesEndDate"`
Expiry time.Time `json:"expiry"`
Activation time.Time `json:"activation"`
IsCorpus bool `json:"isCorpus"`
State string `json:"state"`
TimeLeft string `json:"timeLeft"`
ShortString string `json:"shortString"`
}
type constructionProgress struct {
ID string `json:"id"`
FomorianProgress string `json:"fomorianProgress"`
RazorbackProgress string `json:"razorbackProgress"`
UnknownProgress string `json:"unknownProgress"`
}
type vallisCycle struct {
ID string `json:"id"`
Expiry time.Time `json:"expiry"`
IsWarm bool `json:"isWarm"`
State string `json:"state"`
Activation time.Time `json:"activation"`
TimeLeft string `json:"timeLeft"`
ShortString string `json:"shortString"`
}
type params struct {
}
type activeChallenges struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
IsDaily bool `json:"isDaily,omitempty"`
IsElite bool `json:"isElite"`
Desc string `json:"desc"`
Title string `json:"title"`
Reputation int `json:"reputation"`
}
type nightwave struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
Season int `json:"season"`
Tag string `json:"tag"`
Phase int `json:"phase"`
Params params `json:"params"`
PossibleChallenges []interface{} `json:"possibleChallenges"`
ActiveChallenges []activeChallenges `json:"activeChallenges"`
RewardTypes []string `json:"rewardTypes"`
}
type arbitration struct {
Activation time.Time `json:"activation"`
Expiry time.Time `json:"expiry"`
Enemy string `json:"enemy"`
Type string `json:"type"`
Archwing bool `json:"archwing"`
Sharkwing bool `json:"sharkwing"`
Node string `json:"node"`
NodeKey string `json:"nodeKey"`
TypeKey string `json:"typeKey"`
ID string `json:"id"`
Expired bool `json:"expired"`
}
type mission struct {
Node string `json:"node"`
Faction string `json:"faction"`
Type string `json:"type"`
}
type sentientOutposts struct {
Mission mission `json:"mission"`
Activation time.Time `json:"activation"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
ID string `json:"id"`
}
type currentReward struct {
Name string `json:"name"`
Cost int `json:"cost"`
}
type rotation struct {
Name string `json:"name"`
Cost int `json:"cost"`
}
type evergreens struct {
Name string `json:"name"`
Cost int `json:"cost"`
}
type incursions struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
Expiry time.Time `json:"expiry"`
}
type steelPath struct {
CurrentReward currentReward `json:"currentReward"`
Activation time.Time `json:"activation"`
Expiry time.Time `json:"expiry"`
Remaining string `json:"remaining"`
Rotation []rotation `json:"rotation"`
Evergreens []evergreens `json:"evergreens"`
Incursions incursions `json:"incursions"`
}
type inventory struct {
Item string `json:"item"`
Ducats int `json:"ducats"`
Credits interface{} `json:"credits"`
}
type schedule struct {
Expiry time.Time `json:"expiry"`
Item string `json:"item"`
}
type vaultTrader struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
Character string `json:"character"`
Location string `json:"location"`
Inventory []inventory `json:"inventory"`
PsID string `json:"psId"`
EndString string `json:"endString"`
InitialStart time.Time `json:"initialStart"`
Completed bool `json:"completed"`
Schedule []schedule `json:"schedule"`
}
type alerts struct {
ID string `json:"id"`
Activation time.Time `json:"activation"`
StartString string `json:"startString"`
Expiry time.Time `json:"expiry"`
Active bool `json:"active"`
Mission struct {
Description string `json:"description"`
Node string `json:"node"`
NodeKey string `json:"nodeKey"`
Type string `json:"type"`
TypeKey string `json:"typeKey"`
Faction string `json:"faction"`
Reward struct {
Items []interface{} `json:"items"`
CountedItems []struct {
Count int `json:"count"`
Type string `json:"type"`
Key string `json:"key"`
} `json:"countedItems"`
Credits int `json:"credits"`
AsString string `json:"asString"`
ItemString string `json:"itemString"`
Thumbnail string `json:"thumbnail"`
Color int `json:"color"`
} `json:"reward"`
MinEnemyLevel int `json:"minEnemyLevel"`
MaxEnemyLevel int `json:"maxEnemyLevel"`
MaxWaveNum int `json:"maxWaveNum"`
Nightmare bool `json:"nightmare"`
ArchwingRequired bool `json:"archwingRequired"`
IsSharkwing bool `json:"isSharkwing"`
LevelOverride string `json:"levelOverride"`
EnemySpec string `json:"enemySpec"`
AdvancedSpawners []interface{} `json:"advancedSpawners"`
RequiredItems []interface{} `json:"requiredItems"`
LevelAuras []interface{} `json:"levelAuras"`
} `json:"mission"`
Eta string `json:"eta"`
RewardTypes []string `json:"rewardTypes"`
Tag string `json:"tag"`
}
type wfAPIItem struct {
Payload payload `json:"payload"`
}
type items struct {
URLName string `json:"url_name"`
Thumb string `json:"thumb"`
ItemName string `json:"item_name"`
ID string `json:"id"`
Vaulted bool `json:"vaulted,omitempty"`
}
type payload struct {
Items []items `json:"items"`
Orders orders `json:"orders"`
}
type wfAPIItemsOrders struct {
Payload payload `json:"payload"`
Include include `json:"include"`
}
type user struct {
IngameName string `json:"ingame_name"`
LastSeen time.Time `json:"last_seen"`
Reputation int `json:"reputation"`
Region string `json:"region"`
ID string `json:"id"`
Avatar interface{} `json:"avatar"`
Status string `json:"status"`
}
type orders []struct {
OrderType string `json:"order_type"`
LastUpdate time.Time `json:"last_update"`
Region string `json:"region"`
Quantity int `json:"quantity"`
Visible bool `json:"visible"`
CreationDate time.Time `json:"creation_date"`
Platinum int `json:"platinum"`
Platform string `json:"platform"`
User user `json:"user"`
ID string `json:"id"`
ModRank int `json:"mod_rank"`
}
func (a orders) Len() int { // 重写 Len() 方法
return len(a)
}
func (a orders) Swap(i, j int) { // 重写 Swap() 方法
a[i], a[j] = a[j], a[i]
}
func (a orders) Less(i, j int) bool { // 重写 Less() 方法, 从大到小排序
return a[i].Platinum < a[j].Platinum
}
type en struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type ru struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type ko struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type fr struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type sv struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type de struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type zhHant struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type zhHans struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type pt struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type es struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type pl struct {
ItemName string `json:"item_name"`
Description string `json:"description"`
WikiLink string `json:"wiki_link"`
Drop []interface{} `json:"drop"`
}
type itemsInSet struct {
Icon string `json:"icon"`
URLName string `json:"url_name"`
SubIcon string `json:"sub_icon"`
ModMaxRank int `json:"mod_max_rank"`
Thumb string `json:"thumb"`
SetRoot bool `json:"set_root"`
QuantityForSet int `json:"quantity_for_set,omitempty"`
ID string `json:"id"`
TradingTax int `json:"trading_tax"`
Tags []string `json:"tags"`
MasteryLevel int `json:"mastery_level"`
Ducats int `json:"ducats"`
IconFormat string `json:"icon_format"`
En en `json:"en"`
Ru ru `json:"ru"`
Ko ko `json:"ko"`
Fr fr `json:"fr"`
Sv sv `json:"sv"`
De de `json:"de"`
ZhHant zhHant `json:"zh-hant"`
ZhHans zhHans `json:"zh-hans"`
Pt pt `json:"pt"`
Es es `json:"es"`
Pl pl `json:"pl"`
}
type item struct {
ID string `json:"id"`
ItemsInSet []itemsInSet `json:"items_in_set"`
}
type include struct {
Item item `json:"item"`
}