Add last 20 wallet transaction summary

This commit is contained in:
Thomas Schwery 2017-08-08 22:12:16 +02:00
parent aaa75f6bfd
commit f43d69cd15

67
main.go
View file

@ -128,6 +128,7 @@ func main() {
skillsInfoChan := make(chan string)
marketInfoChan := make(chan string)
industryInfoChan := make(chan string)
transactionsInfoChan := make(chan string)
go func() {
charInfoChan <- printCharacterInformation(swaggerclient, m)
@ -159,6 +160,11 @@ func main() {
close(skillsInfoChan)
}()
go func() {
transactionsInfoChan <- printCharacterTransactions(swaggerclient, m)
close(transactionsInfoChan)
}()
for msg := range charInfoChan {
fmt.Print(msg)
}
@ -187,6 +193,11 @@ func main() {
for msg := range industryInfoChan {
fmt.Print(msg)
}
fmt.Printf("\n\nTransactions\n")
for msg := range transactionsInfoChan {
fmt.Print(msg)
}
}
func readConfigurationFile() (*InternalUtils.HTTPConfiguration, error) {
@ -317,6 +328,60 @@ func printCharacterSkillQueue(swaggerclient *ESI.App, m *Character) string {
return content
}
func printCharacterTransactions(swaggerclient *ESI.App, m *Character) string {
callParam := ESIWallet.NewGetCharactersCharacterIDWalletTransactionsParams()
callParam.WithCharacterID(m.CharacterID)
esiresponse, esierr := swaggerclient.Wallet.GetCharactersCharacterIDWalletTransactions(callParam, nil)
if esierr != nil {
fmt.Println("Error while getting the wallet information")
log.Fatalf("Got error on GetCharactersCharacterIDWalletTransactions: %T %s", esierr, esierr)
}
transactions := esiresponse.Payload
ac := accounting.Accounting{Symbol: "", Precision: 2, Thousand: "'"}
var content string
itemIds := make([]int32, 0)
for _, transaction := range transactions {
itemIds = append(itemIds, *transaction.TypeID)
itemIds = append(itemIds, *transaction.ClientID)
}
universeNames := getUniverseNames(swaggerclient, &itemIds)
for _, transaction := range transactions[:20] {
locationName, locationErr := getStructureStationInfo(swaggerclient, *transaction.LocationID)
if locationErr != nil {
fmt.Println("Error while getting the location information")
log.Fatalf("Got error on getStructureStationInfo: %T %s", locationErr, locationErr)
}
status := fmt.Sprint(aurora.Red("✘").Bold())
if *transaction.IsBuy {
status = fmt.Sprint(aurora.Green("✔").Bold())
}
content = content + fmt.Sprintf(" %s %s ISK% 15s,% 7d %s, %s, %s",
status,
time.Time(*transaction.Date).Format(defaultDateFormat),
ac.FormatMoney(*transaction.UnitPrice*float32(*transaction.Quantity)),
*transaction.Quantity,
universeNames[*transaction.TypeID],
locationName.Name,
universeNames[*transaction.ClientID],
)
content = content + "\n"
}
return content
}
func formatDuration(duration time.Duration, daysLength int32) string {
days := int32(duration.Hours()) / 24
hours := int32(duration.Minutes()) / 60 % 24
@ -332,7 +397,7 @@ func printCharacterInformation(swaggerclient *ESI.App, m *Character) string {
esiresponse, esierr := swaggerclient.Wallet.GetCharactersCharacterIDWallet(callParam, nil)
if esierr != nil {
fmt.Println("Error while getting the wallet information")
log.Fatalf("Got error on GetCharactersCharacterIDWallets: %T %s", esierr, esierr)
log.Fatalf("Got error on GetCharactersCharacterIDWallet: %T %s", esierr, esierr)
}
wallet := esiresponse.Payload