battlescribe

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2022 License: MIT Imports: 14 Imported by: 0

README

go-battlescribe

A Go module for interfacing with various aspects of Battlescribe data.

Install

go get github.com/myminicommission/go-battlescribe

Usage

BSData
Getting BSData Module
package main

import (
	"fmt"
	"strings"

	"github.com/myminicommission/go-battlescribe"
)

const (
  wh40k = "wh40k"
)

func main() {
  battlescribe.GetBSData(wh40k)
}
Rosters
Read .rosz File
package main

import (
	"fmt"
	"strings"

	"github.com/myminicommission/go-battlescribe"
)

const (
	rosterFilePath = "./Double Tantalus.rosz"
)

func main() {

	r, err := battlescribe.ReadRoszFile(rosterFilePath)
	if err != nil {
		panic(err)
	}

	println(r.Name)
	println(r.GameSystemName)
	for _, cost := range r.Costs.Cost {
		println(fmt.Sprintf("%s - %s", strings.TrimSpace(cost.Name), cost.Value))
	}
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrBSDataCouldNotCloneRepo             = errors.New("could not clone bsdata repo")
	ErrBSDataCouldNotReadRepoFiles         = errors.New("could not read repo files")
	ErrBSDataCouldNotReadRepoFile          = errors.New("could not read repo file")
	ErrBSDataCouldNotUnmarshalCatalogueXML = errors.New("could not unmarshal catalogue xml")
	ErrBSDataCouldNotCleanUpTempDirs       = errors.New("could not clean up temp directories")
)
View Source
var (
	ErrFeedCouldNotGetFeed    = errors.New("could not get atom feed")
	ErrFeedCouldNotDecodeFeed = errors.New("could not decode atom feed")
)
View Source
var (
	ErrReposCouldNotFetchRepos     = errors.New("could not fetch repos")
	ErrReposCouldNotDecodeResponse = errors.New("could not decode repos response")
)
View Source
var (
	ErrCouldNotOpenROSZFile            = errors.New("could not open rosz file at path specified")
	ErrCouldNotOpenRosterFileInArchive = errors.New("could not open roster file in archive")
	ErrCouldNotReadRosterBytes         = errors.New("could not read roster bytes")
	ErrCouldNotParseRosterData         = errors.New("could not parse roster data")
)
View Source
var (
	ErrTagDataIsNil = errors.New("data is nil")
)

Functions

func LatestTag added in v0.1.1

func LatestTag(repo string, data *Feed) (string, error)

LatestTag takes a repo name and a Feed pointer and extracts the highest value tag for the given repo

Types

type Catalogue added in v0.1.1

type Catalogue struct {
	XMLName             xml.Name `xml:"catalogue"`
	Text                string   `xml:",chardata"`
	ID                  string   `xml:"id,attr"`
	Name                string   `xml:"name,attr"`
	Revision            string   `xml:"revision,attr"`
	BattleScribeVersion string   `xml:"battleScribeVersion,attr"`
	AuthorName          string   `xml:"authorName,attr"`
	AuthorContact       string   `xml:"authorContact,attr"`
	AuthorUrl           string   `xml:"authorUrl,attr"`
	Library             string   `xml:"library,attr"`
	GameSystemId        string   `xml:"gameSystemId,attr"`
	GameSystemRevision  string   `xml:"gameSystemRevision,attr"`
	Xmlns               string   `xml:"xmlns,attr"`
	Comment             string   `xml:"comment"`
	Readme              string   `xml:"readme"`
	Publications        struct {
		Text        string `xml:",chardata"`
		Publication []struct {
			Text            string `xml:",chardata"`
			ID              string `xml:"id,attr"`
			Name            string `xml:"name,attr"`
			ShortName       string `xml:"shortName,attr"`
			Publisher       string `xml:"publisher,attr"`
			PublicationDate string `xml:"publicationDate,attr"`
		} `xml:"publication"`
	} `xml:"publications"`
	ProfileTypes struct {
		Text        string `xml:",chardata"`
		ProfileType struct {
			Text                string `xml:",chardata"`
			ID                  string `xml:"id,attr"`
			Name                string `xml:"name,attr"`
			CharacteristicTypes struct {
				Text               string `xml:",chardata"`
				CharacteristicType []struct {
					Text string `xml:",chardata"`
					ID   string `xml:"id,attr"`
					Name string `xml:"name,attr"`
				} `xml:"characteristicType"`
			} `xml:"characteristicTypes"`
		} `xml:"profileType"`
	} `xml:"profileTypes"`
	CategoryEntries struct {
		Text          string `xml:",chardata"`
		CategoryEntry []struct {
			Text   string `xml:",chardata"`
			ID     string `xml:"id,attr"`
			Name   string `xml:"name,attr"`
			Hidden string `xml:"hidden,attr"`
		} `xml:"categoryEntry"`
	} `xml:"categoryEntries"`
	EntryLinks struct {
		Text      string `xml:",chardata"`
		EntryLink []struct {
			Text       string `xml:",chardata"`
			ID         string `xml:"id,attr"`
			Name       string `xml:"name,attr"`
			Hidden     string `xml:"hidden,attr"`
			Collective string `xml:"collective,attr"`
			Import     string `xml:"import,attr"`
			TargetId   string `xml:"targetId,attr"`
			Type       string `xml:"type,attr"`
			Modifiers  struct {
				Text     string `xml:",chardata"`
				Modifier struct {
					Text       string `xml:",chardata"`
					Type       string `xml:"type,attr"`
					Field      string `xml:"field,attr"`
					Value      string `xml:"value,attr"`
					Conditions struct {
						Text      string `xml:",chardata"`
						Condition struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ChildId                string `xml:"childId,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"condition"`
					} `xml:"conditions"`
				} `xml:"modifier"`
			} `xml:"modifiers"`
		} `xml:"entryLink"`
	} `xml:"entryLinks"`
	SharedSelectionEntries struct {
		Text           string `xml:",chardata"`
		SelectionEntry []struct {
			Text          string `xml:",chardata"`
			ID            string `xml:"id,attr"`
			Name          string `xml:"name,attr"`
			PublicationId string `xml:"publicationId,attr"`
			Page          string `xml:"page,attr"`
			Hidden        string `xml:"hidden,attr"`
			Collective    string `xml:"collective,attr"`
			Import        string `xml:"import,attr"`
			Type          string `xml:"type,attr"`
			Constraints   struct {
				Text       string `xml:",chardata"`
				Constraint []struct {
					Text                   string `xml:",chardata"`
					Field                  string `xml:"field,attr"`
					Scope                  string `xml:"scope,attr"`
					Value                  string `xml:"value,attr"`
					PercentValue           string `xml:"percentValue,attr"`
					Shared                 string `xml:"shared,attr"`
					IncludeChildSelections string `xml:"includeChildSelections,attr"`
					IncludeChildForces     string `xml:"includeChildForces,attr"`
					ID                     string `xml:"id,attr"`
					Type                   string `xml:"type,attr"`
				} `xml:"constraint"`
			} `xml:"constraints"`
			Profiles struct {
				Text    string `xml:",chardata"`
				Profile []struct {
					Text            string `xml:",chardata"`
					ID              string `xml:"id,attr"`
					Name            string `xml:"name,attr"`
					Hidden          string `xml:"hidden,attr"`
					TypeId          string `xml:"typeId,attr"`
					TypeName        string `xml:"typeName,attr"`
					PublicationId   string `xml:"publicationId,attr"`
					Page            string `xml:"page,attr"`
					Characteristics struct {
						Text           string `xml:",chardata"`
						Characteristic []struct {
							Text   string `xml:",chardata"`
							Name   string `xml:"name,attr"`
							TypeId string `xml:"typeId,attr"`
						} `xml:"characteristic"`
					} `xml:"characteristics"`
				} `xml:"profile"`
			} `xml:"profiles"`
			InfoLinks struct {
				Text     string `xml:",chardata"`
				InfoLink []struct {
					Text      string `xml:",chardata"`
					ID        string `xml:"id,attr"`
					Name      string `xml:"name,attr"`
					Hidden    string `xml:"hidden,attr"`
					TargetId  string `xml:"targetId,attr"`
					Type      string `xml:"type,attr"`
					Modifiers struct {
						Text     string `xml:",chardata"`
						Modifier struct {
							Text       string `xml:",chardata"`
							Type       string `xml:"type,attr"`
							Field      string `xml:"field,attr"`
							Value      string `xml:"value,attr"`
							Conditions struct {
								Text      string `xml:",chardata"`
								Condition struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ChildId                string `xml:"childId,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"condition"`
							} `xml:"conditions"`
						} `xml:"modifier"`
					} `xml:"modifiers"`
				} `xml:"infoLink"`
			} `xml:"infoLinks"`
			CategoryLinks struct {
				Text         string `xml:",chardata"`
				CategoryLink []struct {
					Text     string `xml:",chardata"`
					ID       string `xml:"id,attr"`
					Name     string `xml:"name,attr"`
					Hidden   string `xml:"hidden,attr"`
					TargetId string `xml:"targetId,attr"`
					Primary  string `xml:"primary,attr"`
				} `xml:"categoryLink"`
			} `xml:"categoryLinks"`
			SelectionEntries struct {
				Text           string `xml:",chardata"`
				SelectionEntry []struct {
					Text        string `xml:",chardata"`
					ID          string `xml:"id,attr"`
					Name        string `xml:"name,attr"`
					Hidden      string `xml:"hidden,attr"`
					Collective  string `xml:"collective,attr"`
					Import      string `xml:"import,attr"`
					Type        string `xml:"type,attr"`
					Constraints struct {
						Text       string `xml:",chardata"`
						Constraint []struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ID                     string `xml:"id,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"constraint"`
					} `xml:"constraints"`
					Profiles struct {
						Text    string `xml:",chardata"`
						Profile struct {
							Text            string `xml:",chardata"`
							ID              string `xml:"id,attr"`
							Name            string `xml:"name,attr"`
							Hidden          string `xml:"hidden,attr"`
							TypeId          string `xml:"typeId,attr"`
							TypeName        string `xml:"typeName,attr"`
							Characteristics struct {
								Text           string `xml:",chardata"`
								Characteristic []struct {
									Text   string `xml:",chardata"`
									Name   string `xml:"name,attr"`
									TypeId string `xml:"typeId,attr"`
								} `xml:"characteristic"`
							} `xml:"characteristics"`
						} `xml:"profile"`
					} `xml:"profiles"`
					Costs struct {
						Text string `xml:",chardata"`
						Cost []struct {
							Text   string `xml:",chardata"`
							Name   string `xml:"name,attr"`
							TypeId string `xml:"typeId,attr"`
							Value  string `xml:"value,attr"`
						} `xml:"cost"`
					} `xml:"costs"`
				} `xml:"selectionEntry"`
			} `xml:"selectionEntries"`
			EntryLinks struct {
				Text      string `xml:",chardata"`
				EntryLink []struct {
					Text        string `xml:",chardata"`
					ID          string `xml:"id,attr"`
					Name        string `xml:"name,attr"`
					Hidden      string `xml:"hidden,attr"`
					Collective  string `xml:"collective,attr"`
					Import      string `xml:"import,attr"`
					TargetId    string `xml:"targetId,attr"`
					Type        string `xml:"type,attr"`
					Constraints struct {
						Text       string `xml:",chardata"`
						Constraint struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ID                     string `xml:"id,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"constraint"`
					} `xml:"constraints"`
					Modifiers struct {
						Text     string `xml:",chardata"`
						Modifier []struct {
							Text            string `xml:",chardata"`
							Type            string `xml:"type,attr"`
							Field           string `xml:"field,attr"`
							Value           string `xml:"value,attr"`
							ConditionGroups struct {
								Text           string `xml:",chardata"`
								ConditionGroup struct {
									Text       string `xml:",chardata"`
									Type       string `xml:"type,attr"`
									Conditions struct {
										Text      string `xml:",chardata"`
										Condition []struct {
											Text                   string `xml:",chardata"`
											Field                  string `xml:"field,attr"`
											Scope                  string `xml:"scope,attr"`
											Value                  string `xml:"value,attr"`
											PercentValue           string `xml:"percentValue,attr"`
											Shared                 string `xml:"shared,attr"`
											IncludeChildSelections string `xml:"includeChildSelections,attr"`
											IncludeChildForces     string `xml:"includeChildForces,attr"`
											ChildId                string `xml:"childId,attr"`
											Type                   string `xml:"type,attr"`
										} `xml:"condition"`
									} `xml:"conditions"`
								} `xml:"conditionGroup"`
							} `xml:"conditionGroups"`
						} `xml:"modifier"`
					} `xml:"modifiers"`
				} `xml:"entryLink"`
			} `xml:"entryLinks"`
			Costs struct {
				Text string `xml:",chardata"`
				Cost []struct {
					Text   string `xml:",chardata"`
					Name   string `xml:"name,attr"`
					TypeId string `xml:"typeId,attr"`
					Value  string `xml:"value,attr"`
				} `xml:"cost"`
			} `xml:"costs"`
			Modifiers struct {
				Text     string `xml:",chardata"`
				Modifier []struct {
					Text       string `xml:",chardata"`
					Type       string `xml:"type,attr"`
					Field      string `xml:"field,attr"`
					Value      string `xml:"value,attr"`
					Conditions struct {
						Text      string `xml:",chardata"`
						Condition struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ChildId                string `xml:"childId,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"condition"`
					} `xml:"conditions"`
					ConditionGroups struct {
						Text           string `xml:",chardata"`
						ConditionGroup struct {
							Text       string `xml:",chardata"`
							Type       string `xml:"type,attr"`
							Conditions struct {
								Text      string `xml:",chardata"`
								Condition []struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ChildId                string `xml:"childId,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"condition"`
							} `xml:"conditions"`
						} `xml:"conditionGroup"`
					} `xml:"conditionGroups"`
					Repeats struct {
						Text   string `xml:",chardata"`
						Repeat struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ChildId                string `xml:"childId,attr"`
							Repeats                string `xml:"repeats,attr"`
							RoundUp                string `xml:"roundUp,attr"`
						} `xml:"repeat"`
					} `xml:"repeats"`
				} `xml:"modifier"`
			} `xml:"modifiers"`
		} `xml:"selectionEntry"`
	} `xml:"sharedSelectionEntries"`
	SharedSelectionEntryGroups struct {
		Text                string `xml:",chardata"`
		SelectionEntryGroup []struct {
			Text          string `xml:",chardata"`
			ID            string `xml:"id,attr"`
			Name          string `xml:"name,attr"`
			PublicationId string `xml:"publicationId,attr"`
			Hidden        string `xml:"hidden,attr"`
			Collective    string `xml:"collective,attr"`
			Import        string `xml:"import,attr"`
			Modifiers     struct {
				Text     string `xml:",chardata"`
				Modifier []struct {
					Text            string `xml:",chardata"`
					Type            string `xml:"type,attr"`
					Field           string `xml:"field,attr"`
					Value           string `xml:"value,attr"`
					ConditionGroups struct {
						Text           string `xml:",chardata"`
						ConditionGroup struct {
							Text       string `xml:",chardata"`
							Type       string `xml:"type,attr"`
							Conditions struct {
								Text      string `xml:",chardata"`
								Condition []struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ChildId                string `xml:"childId,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"condition"`
							} `xml:"conditions"`
						} `xml:"conditionGroup"`
					} `xml:"conditionGroups"`
					Conditions struct {
						Text      string `xml:",chardata"`
						Condition struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ChildId                string `xml:"childId,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"condition"`
					} `xml:"conditions"`
					Repeats struct {
						Text   string `xml:",chardata"`
						Repeat struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ChildId                string `xml:"childId,attr"`
							Repeats                string `xml:"repeats,attr"`
							RoundUp                string `xml:"roundUp,attr"`
						} `xml:"repeat"`
					} `xml:"repeats"`
				} `xml:"modifier"`
			} `xml:"modifiers"`
			SelectionEntries struct {
				Text           string `xml:",chardata"`
				SelectionEntry []struct {
					Text          string `xml:",chardata"`
					ID            string `xml:"id,attr"`
					Name          string `xml:"name,attr"`
					Hidden        string `xml:"hidden,attr"`
					Collective    string `xml:"collective,attr"`
					Import        string `xml:"import,attr"`
					Type          string `xml:"type,attr"`
					PublicationId string `xml:"publicationId,attr"`
					Page          string `xml:"page,attr"`
					Constraints   struct {
						Text       string `xml:",chardata"`
						Constraint []struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ID                     string `xml:"id,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"constraint"`
					} `xml:"constraints"`
					Profiles struct {
						Text    string `xml:",chardata"`
						Profile struct {
							Text            string `xml:",chardata"`
							ID              string `xml:"id,attr"`
							Name            string `xml:"name,attr"`
							Hidden          string `xml:"hidden,attr"`
							TypeId          string `xml:"typeId,attr"`
							TypeName        string `xml:"typeName,attr"`
							Characteristics struct {
								Text           string `xml:",chardata"`
								Characteristic []struct {
									Text   string `xml:",chardata"`
									Name   string `xml:"name,attr"`
									TypeId string `xml:"typeId,attr"`
								} `xml:"characteristic"`
							} `xml:"characteristics"`
						} `xml:"profile"`
					} `xml:"profiles"`
					Costs struct {
						Text string `xml:",chardata"`
						Cost []struct {
							Text   string `xml:",chardata"`
							Name   string `xml:"name,attr"`
							TypeId string `xml:"typeId,attr"`
							Value  string `xml:"value,attr"`
						} `xml:"cost"`
					} `xml:"costs"`
					SelectionEntryGroups struct {
						Text                string `xml:",chardata"`
						SelectionEntryGroup struct {
							Text           string `xml:",chardata"`
							ID             string `xml:"id,attr"`
							Name           string `xml:"name,attr"`
							Hidden         string `xml:"hidden,attr"`
							Collective     string `xml:"collective,attr"`
							Import         string `xml:"import,attr"`
							ModifierGroups struct {
								Text          string `xml:",chardata"`
								ModifierGroup struct {
									Text       string `xml:",chardata"`
									Conditions struct {
										Text      string `xml:",chardata"`
										Condition struct {
											Text                   string `xml:",chardata"`
											Field                  string `xml:"field,attr"`
											Scope                  string `xml:"scope,attr"`
											Value                  string `xml:"value,attr"`
											PercentValue           string `xml:"percentValue,attr"`
											Shared                 string `xml:"shared,attr"`
											IncludeChildSelections string `xml:"includeChildSelections,attr"`
											IncludeChildForces     string `xml:"includeChildForces,attr"`
											ChildId                string `xml:"childId,attr"`
											Type                   string `xml:"type,attr"`
										} `xml:"condition"`
									} `xml:"conditions"`
									Modifiers struct {
										Text     string `xml:",chardata"`
										Modifier []struct {
											Text  string `xml:",chardata"`
											Type  string `xml:"type,attr"`
											Field string `xml:"field,attr"`
											Value string `xml:"value,attr"`
										} `xml:"modifier"`
									} `xml:"modifiers"`
									ConditionGroups struct {
										Text           string `xml:",chardata"`
										ConditionGroup struct {
											Text       string `xml:",chardata"`
											Type       string `xml:"type,attr"`
											Conditions struct {
												Text      string `xml:",chardata"`
												Condition []struct {
													Text                   string `xml:",chardata"`
													Field                  string `xml:"field,attr"`
													Scope                  string `xml:"scope,attr"`
													Value                  string `xml:"value,attr"`
													PercentValue           string `xml:"percentValue,attr"`
													Shared                 string `xml:"shared,attr"`
													IncludeChildSelections string `xml:"includeChildSelections,attr"`
													IncludeChildForces     string `xml:"includeChildForces,attr"`
													ChildId                string `xml:"childId,attr"`
													Type                   string `xml:"type,attr"`
												} `xml:"condition"`
											} `xml:"conditions"`
										} `xml:"conditionGroup"`
									} `xml:"conditionGroups"`
								} `xml:"modifierGroup"`
							} `xml:"modifierGroups"`
							Constraints struct {
								Text       string `xml:",chardata"`
								Constraint []struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ID                     string `xml:"id,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"constraint"`
							} `xml:"constraints"`
							SelectionEntries struct {
								Text           string `xml:",chardata"`
								SelectionEntry []struct {
									Text        string `xml:",chardata"`
									ID          string `xml:"id,attr"`
									Name        string `xml:"name,attr"`
									Hidden      string `xml:"hidden,attr"`
									Collective  string `xml:"collective,attr"`
									Import      string `xml:"import,attr"`
									Type        string `xml:"type,attr"`
									Constraints struct {
										Text       string `xml:",chardata"`
										Constraint struct {
											Text                   string `xml:",chardata"`
											Field                  string `xml:"field,attr"`
											Scope                  string `xml:"scope,attr"`
											Value                  string `xml:"value,attr"`
											PercentValue           string `xml:"percentValue,attr"`
											Shared                 string `xml:"shared,attr"`
											IncludeChildSelections string `xml:"includeChildSelections,attr"`
											IncludeChildForces     string `xml:"includeChildForces,attr"`
											ID                     string `xml:"id,attr"`
											Type                   string `xml:"type,attr"`
										} `xml:"constraint"`
									} `xml:"constraints"`
									Profiles struct {
										Text    string `xml:",chardata"`
										Profile struct {
											Text            string `xml:",chardata"`
											ID              string `xml:"id,attr"`
											Name            string `xml:"name,attr"`
											Hidden          string `xml:"hidden,attr"`
											TypeId          string `xml:"typeId,attr"`
											TypeName        string `xml:"typeName,attr"`
											Characteristics struct {
												Text           string `xml:",chardata"`
												Characteristic struct {
													Text   string `xml:",chardata"`
													Name   string `xml:"name,attr"`
													TypeId string `xml:"typeId,attr"`
												} `xml:"characteristic"`
											} `xml:"characteristics"`
										} `xml:"profile"`
									} `xml:"profiles"`
									Costs struct {
										Text string `xml:",chardata"`
										Cost []struct {
											Text   string `xml:",chardata"`
											Name   string `xml:"name,attr"`
											TypeId string `xml:"typeId,attr"`
											Value  string `xml:"value,attr"`
										} `xml:"cost"`
									} `xml:"costs"`
								} `xml:"selectionEntry"`
							} `xml:"selectionEntries"`
						} `xml:"selectionEntryGroup"`
					} `xml:"selectionEntryGroups"`
					Modifiers struct {
						Text     string `xml:",chardata"`
						Modifier struct {
							Text            string `xml:",chardata"`
							Type            string `xml:"type,attr"`
							Field           string `xml:"field,attr"`
							Value           string `xml:"value,attr"`
							ConditionGroups struct {
								Text           string `xml:",chardata"`
								ConditionGroup struct {
									Text       string `xml:",chardata"`
									Type       string `xml:"type,attr"`
									Conditions struct {
										Text      string `xml:",chardata"`
										Condition []struct {
											Text                   string `xml:",chardata"`
											Field                  string `xml:"field,attr"`
											Scope                  string `xml:"scope,attr"`
											Value                  string `xml:"value,attr"`
											PercentValue           string `xml:"percentValue,attr"`
											Shared                 string `xml:"shared,attr"`
											IncludeChildSelections string `xml:"includeChildSelections,attr"`
											IncludeChildForces     string `xml:"includeChildForces,attr"`
											ChildId                string `xml:"childId,attr"`
											Type                   string `xml:"type,attr"`
										} `xml:"condition"`
									} `xml:"conditions"`
								} `xml:"conditionGroup"`
							} `xml:"conditionGroups"`
							Conditions struct {
								Text      string `xml:",chardata"`
								Condition struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ChildId                string `xml:"childId,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"condition"`
							} `xml:"conditions"`
						} `xml:"modifier"`
					} `xml:"modifiers"`
					CategoryLinks struct {
						Text         string `xml:",chardata"`
						CategoryLink struct {
							Text     string `xml:",chardata"`
							ID       string `xml:"id,attr"`
							Name     string `xml:"name,attr"`
							Hidden   string `xml:"hidden,attr"`
							TargetId string `xml:"targetId,attr"`
							Primary  string `xml:"primary,attr"`
						} `xml:"categoryLink"`
					} `xml:"categoryLinks"`
				} `xml:"selectionEntry"`
			} `xml:"selectionEntries"`
			Constraints struct {
				Text       string `xml:",chardata"`
				Constraint []struct {
					Text                   string `xml:",chardata"`
					Field                  string `xml:"field,attr"`
					Scope                  string `xml:"scope,attr"`
					Value                  string `xml:"value,attr"`
					PercentValue           string `xml:"percentValue,attr"`
					Shared                 string `xml:"shared,attr"`
					IncludeChildSelections string `xml:"includeChildSelections,attr"`
					IncludeChildForces     string `xml:"includeChildForces,attr"`
					ID                     string `xml:"id,attr"`
					Type                   string `xml:"type,attr"`
				} `xml:"constraint"`
			} `xml:"constraints"`
			EntryLinks struct {
				Text      string `xml:",chardata"`
				EntryLink []struct {
					Text       string `xml:",chardata"`
					ID         string `xml:"id,attr"`
					Name       string `xml:"name,attr"`
					Hidden     string `xml:"hidden,attr"`
					Collective string `xml:"collective,attr"`
					Import     string `xml:"import,attr"`
					TargetId   string `xml:"targetId,attr"`
					Type       string `xml:"type,attr"`
					Modifiers  struct {
						Text     string `xml:",chardata"`
						Modifier struct {
							Text            string `xml:",chardata"`
							Type            string `xml:"type,attr"`
							Field           string `xml:"field,attr"`
							Value           string `xml:"value,attr"`
							ConditionGroups struct {
								Text           string `xml:",chardata"`
								ConditionGroup struct {
									Text       string `xml:",chardata"`
									Type       string `xml:"type,attr"`
									Conditions struct {
										Text      string `xml:",chardata"`
										Condition []struct {
											Text                   string `xml:",chardata"`
											Field                  string `xml:"field,attr"`
											Scope                  string `xml:"scope,attr"`
											Value                  string `xml:"value,attr"`
											PercentValue           string `xml:"percentValue,attr"`
											Shared                 string `xml:"shared,attr"`
											IncludeChildSelections string `xml:"includeChildSelections,attr"`
											IncludeChildForces     string `xml:"includeChildForces,attr"`
											ChildId                string `xml:"childId,attr"`
											Type                   string `xml:"type,attr"`
										} `xml:"condition"`
									} `xml:"conditions"`
									ConditionGroups struct {
										Text           string `xml:",chardata"`
										ConditionGroup struct {
											Text       string `xml:",chardata"`
											Type       string `xml:"type,attr"`
											Conditions struct {
												Text      string `xml:",chardata"`
												Condition []struct {
													Text                   string `xml:",chardata"`
													Field                  string `xml:"field,attr"`
													Scope                  string `xml:"scope,attr"`
													Value                  string `xml:"value,attr"`
													PercentValue           string `xml:"percentValue,attr"`
													Shared                 string `xml:"shared,attr"`
													IncludeChildSelections string `xml:"includeChildSelections,attr"`
													IncludeChildForces     string `xml:"includeChildForces,attr"`
													ChildId                string `xml:"childId,attr"`
													Type                   string `xml:"type,attr"`
												} `xml:"condition"`
											} `xml:"conditions"`
										} `xml:"conditionGroup"`
									} `xml:"conditionGroups"`
								} `xml:"conditionGroup"`
							} `xml:"conditionGroups"`
							Conditions struct {
								Text      string `xml:",chardata"`
								Condition struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ChildId                string `xml:"childId,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"condition"`
							} `xml:"conditions"`
						} `xml:"modifier"`
					} `xml:"modifiers"`
					Constraints struct {
						Text       string `xml:",chardata"`
						Constraint struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ID                     string `xml:"id,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"constraint"`
					} `xml:"constraints"`
				} `xml:"entryLink"`
			} `xml:"entryLinks"`
			SelectionEntryGroups struct {
				Text                string `xml:",chardata"`
				SelectionEntryGroup struct {
					Text       string `xml:",chardata"`
					ID         string `xml:"id,attr"`
					Name       string `xml:"name,attr"`
					Hidden     string `xml:"hidden,attr"`
					Collective string `xml:"collective,attr"`
					Import     string `xml:"import,attr"`
					Modifiers  struct {
						Text     string `xml:",chardata"`
						Modifier struct {
							Text       string `xml:",chardata"`
							Type       string `xml:"type,attr"`
							Field      string `xml:"field,attr"`
							Value      string `xml:"value,attr"`
							Conditions struct {
								Text      string `xml:",chardata"`
								Condition struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ChildId                string `xml:"childId,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"condition"`
							} `xml:"conditions"`
						} `xml:"modifier"`
					} `xml:"modifiers"`
					Constraints struct {
						Text       string `xml:",chardata"`
						Constraint struct {
							Text                   string `xml:",chardata"`
							Field                  string `xml:"field,attr"`
							Scope                  string `xml:"scope,attr"`
							Value                  string `xml:"value,attr"`
							PercentValue           string `xml:"percentValue,attr"`
							Shared                 string `xml:"shared,attr"`
							IncludeChildSelections string `xml:"includeChildSelections,attr"`
							IncludeChildForces     string `xml:"includeChildForces,attr"`
							ID                     string `xml:"id,attr"`
							Type                   string `xml:"type,attr"`
						} `xml:"constraint"`
					} `xml:"constraints"`
					EntryLinks struct {
						Text      string `xml:",chardata"`
						EntryLink []struct {
							Text       string `xml:",chardata"`
							ID         string `xml:"id,attr"`
							Name       string `xml:"name,attr"`
							Hidden     string `xml:"hidden,attr"`
							Collective string `xml:"collective,attr"`
							Import     string `xml:"import,attr"`
							TargetId   string `xml:"targetId,attr"`
							Type       string `xml:"type,attr"`
							Modifiers  struct {
								Text     string `xml:",chardata"`
								Modifier struct {
									Text       string `xml:",chardata"`
									Type       string `xml:"type,attr"`
									Field      string `xml:"field,attr"`
									Value      string `xml:"value,attr"`
									Conditions struct {
										Text      string `xml:",chardata"`
										Condition struct {
											Text                   string `xml:",chardata"`
											Field                  string `xml:"field,attr"`
											Scope                  string `xml:"scope,attr"`
											Value                  string `xml:"value,attr"`
											PercentValue           string `xml:"percentValue,attr"`
											Shared                 string `xml:"shared,attr"`
											IncludeChildSelections string `xml:"includeChildSelections,attr"`
											IncludeChildForces     string `xml:"includeChildForces,attr"`
											ChildId                string `xml:"childId,attr"`
											Type                   string `xml:"type,attr"`
										} `xml:"condition"`
									} `xml:"conditions"`
									ConditionGroups struct {
										Text           string `xml:",chardata"`
										ConditionGroup struct {
											Text       string `xml:",chardata"`
											Type       string `xml:"type,attr"`
											Conditions struct {
												Text      string `xml:",chardata"`
												Condition []struct {
													Text                   string `xml:",chardata"`
													Field                  string `xml:"field,attr"`
													Scope                  string `xml:"scope,attr"`
													Value                  string `xml:"value,attr"`
													PercentValue           string `xml:"percentValue,attr"`
													Shared                 string `xml:"shared,attr"`
													IncludeChildSelections string `xml:"includeChildSelections,attr"`
													IncludeChildForces     string `xml:"includeChildForces,attr"`
													ChildId                string `xml:"childId,attr"`
													Type                   string `xml:"type,attr"`
												} `xml:"condition"`
											} `xml:"conditions"`
										} `xml:"conditionGroup"`
									} `xml:"conditionGroups"`
								} `xml:"modifier"`
							} `xml:"modifiers"`
							Constraints struct {
								Text       string `xml:",chardata"`
								Constraint struct {
									Text                   string `xml:",chardata"`
									Field                  string `xml:"field,attr"`
									Scope                  string `xml:"scope,attr"`
									Value                  string `xml:"value,attr"`
									PercentValue           string `xml:"percentValue,attr"`
									Shared                 string `xml:"shared,attr"`
									IncludeChildSelections string `xml:"includeChildSelections,attr"`
									IncludeChildForces     string `xml:"includeChildForces,attr"`
									ID                     string `xml:"id,attr"`
									Type                   string `xml:"type,attr"`
								} `xml:"constraint"`
							} `xml:"constraints"`
						} `xml:"entryLink"`
					} `xml:"entryLinks"`
				} `xml:"selectionEntryGroup"`
			} `xml:"selectionEntryGroups"`
			CategoryLinks struct {
				Text         string `xml:",chardata"`
				CategoryLink struct {
					Text     string `xml:",chardata"`
					ID       string `xml:"id,attr"`
					Name     string `xml:"name,attr"`
					Hidden   string `xml:"hidden,attr"`
					TargetId string `xml:"targetId,attr"`
					Primary  string `xml:"primary,attr"`
				} `xml:"categoryLink"`
			} `xml:"categoryLinks"`
		} `xml:"selectionEntryGroup"`
	} `xml:"sharedSelectionEntryGroups"`
	SharedRules struct {
		Text string `xml:",chardata"`
		Rule struct {
			Text          string `xml:",chardata"`
			ID            string `xml:"id,attr"`
			Name          string `xml:"name,attr"`
			PublicationId string `xml:"publicationId,attr"`
			Page          string `xml:"page,attr"`
			Hidden        string `xml:"hidden,attr"`
			Description   string `xml:"description"`
		} `xml:"rule"`
	} `xml:"sharedRules"`
	SharedProfiles struct {
		Text    string `xml:",chardata"`
		Profile []struct {
			Text            string `xml:",chardata"`
			ID              string `xml:"id,attr"`
			Name            string `xml:"name,attr"`
			Hidden          string `xml:"hidden,attr"`
			TypeId          string `xml:"typeId,attr"`
			TypeName        string `xml:"typeName,attr"`
			Characteristics struct {
				Text           string `xml:",chardata"`
				Characteristic []struct {
					Text   string `xml:",chardata"`
					Name   string `xml:"name,attr"`
					TypeId string `xml:"typeId,attr"`
				} `xml:"characteristic"`
			} `xml:"characteristics"`
		} `xml:"profile"`
	} `xml:"sharedProfiles"`
}

func GetBSData added in v0.1.1

func GetBSData(repo, tag string) ([]*Catalogue, error)

GetBSData fetches the Battlescribe data for the specified github repo and tag

type Feed added in v0.1.1

type Feed struct {
	XMLName xml.Name `xml:"feed"`
	Text    string   `xml:",chardata"`
	Xmlns   string   `xml:"xmlns,attr"`
	Title   string   `xml:"title"`
	Link    []struct {
		Text string `xml:",chardata"`
		Rel  string `xml:"rel,attr"`
		Type string `xml:"type,attr"`
		Href string `xml:"href,attr"`
	} `xml:"link"`
	Author struct {
		Text string `xml:",chardata"`
		Name string `xml:"name"`
		URI  string `xml:"uri"`
	} `xml:"author"`
	Subtitle struct {
		Text string `xml:",chardata"`
		Type string `xml:"type,attr"`
	} `xml:"subtitle"`
	ID      string `xml:"id"`
	Updated string `xml:"updated"`
	Entry   []struct {
		Text  string `xml:",chardata"`
		Title string `xml:"title"`
		Link  struct {
			Text string `xml:",chardata"`
			Rel  string `xml:"rel,attr"`
			Type string `xml:"type,attr"`
			Href string `xml:"href,attr"`
		} `xml:"link"`
		ID        string `xml:"id"`
		Updated   string `xml:"updated"`
		Published string `xml:"published"`
		Summary   struct {
			Text string `xml:",chardata"`
			Type string `xml:"type,attr"`
		} `xml:"summary"`
	} `xml:"entry"`
}

func GetFeedData added in v0.1.1

func GetFeedData() (*Feed, error)

GetFeedData gets the data in the BSData Atom feed

type ReposResponse added in v0.1.2

type ReposResponse struct {
	Name                string       `json:"name"`
	Description         string       `json:"description"`
	BattleScribeVersion string       `json:"battleScribeVersion"`
	RepositorySourceURL string       `json:"repositorySourceUrl"`
	WebsiteURL          string       `json:"websiteUrl"`
	GithubURL           string       `json:"githubUrl"`
	DiscordURL          string       `json:"discordUrl"`
	FeedURL             string       `json:"feedUrl"`
	TwitterURL          string       `json:"twitterUrl"`
	FacebookURL         string       `json:"facebookUrl"`
	Repositories        []Repository `json:"repositories"`
}

type Repository added in v0.1.2

type Repository struct {
	Name                  string        `json:"name"`
	Description           string        `json:"description"`
	BattleScribeVersion   string        `json:"battleScribeVersion"`
	Version               string        `json:"version"`
	LastUpdated           string        `json:"lastUpdated"`
	LastUpdateDescription string        `json:"lastUpdateDescription"`
	IndexURL              string        `json:"indexUrl"`
	RepositoryURL         string        `json:"repositoryUrl"`
	GithubURL             string        `json:"githubUrl"`
	FeedURL               string        `json:"feedUrl"`
	BugTrackerURL         string        `json:"bugTrackerUrl"`
	ReportBugURL          string        `json:"reportBugUrl"`
	Archived              bool          `json:"archived"`
	RepositoryFiles       []interface{} `json:"repositoryFiles"`
}

func GetRepos added in v0.1.2

func GetRepos() ([]Repository, error)

GetRepos calls the /repos api and returns the repositories in the response

type Roster

type Roster struct {
	XMLName             xml.Name `xml:"roster"`
	Text                string   `xml:",chardata"`
	Xsd                 string   `xml:"xsd,attr"`
	Xsi                 string   `xml:"xsi,attr"`
	BattleScribeVersion string   `xml:"battleScribeVersion,attr"`
	GameSystemId        string   `xml:"gameSystemId,attr"`
	GameSystemName      string   `xml:"gameSystemName,attr"`
	GameSystemRevision  string   `xml:"gameSystemRevision,attr"`
	ID                  string   `xml:"id,attr"`
	Name                string   `xml:"name,attr"`
	Xmlns               string   `xml:"xmlns,attr"`
	Costs               struct {
		Text string `xml:",chardata"`
		Cost []struct {
			Text   string `xml:",chardata"`
			TypeId string `xml:"typeId,attr"`
			Value  string `xml:"value,attr"`
			Name   string `xml:"name,attr"`
		} `xml:"cost"`
	} `xml:"costs"`
	CostLimits string `xml:"costLimits"`
	Forces     struct {
		Text  string `xml:",chardata"`
		Force struct {
			Text              string `xml:",chardata"`
			CatalogueId       string `xml:"catalogueId,attr"`
			CatalogueName     string `xml:"catalogueName,attr"`
			CatalogueRevision string `xml:"catalogueRevision,attr"`
			EntryId           string `xml:"entryId,attr"`
			ID                string `xml:"id,attr"`
			Name              string `xml:"name,attr"`
			Publications      struct {
				Text        string `xml:",chardata"`
				Publication []struct {
					Text string `xml:",chardata"`
					ID   string `xml:"id,attr"`
					Name string `xml:"name,attr"`
				} `xml:"publication"`
			} `xml:"publications"`
			Categories struct {
				Text     string `xml:",chardata"`
				Category []struct {
					Text     string `xml:",chardata"`
					Primary  string `xml:"primary,attr"`
					EntryId  string `xml:"entryId,attr"`
					ID       string `xml:"id,attr"`
					Name     string `xml:"name,attr"`
					Rules    string `xml:"rules"`
					Profiles string `xml:"profiles"`
				} `xml:"category"`
			} `xml:"categories"`
			Forces     string `xml:"forces"`
			Selections struct {
				Text      string `xml:",chardata"`
				Selection []struct {
					Text          string `xml:",chardata"`
					Number        string `xml:"number,attr"`
					Type          string `xml:"type,attr"`
					EntryId       string `xml:"entryId,attr"`
					ID            string `xml:"id,attr"`
					Name          string `xml:"name,attr"`
					PublicationId string `xml:"publicationId,attr"`
					Page          string `xml:"page,attr"`
					Costs         struct {
						Text string `xml:",chardata"`
						Cost []struct {
							Text   string `xml:",chardata"`
							TypeId string `xml:"typeId,attr"`
							Value  string `xml:"value,attr"`
							Name   string `xml:"name,attr"`
						} `xml:"cost"`
					} `xml:"costs"`
					Categories struct {
						Text     string `xml:",chardata"`
						Category []struct {
							Text     string `xml:",chardata"`
							Primary  string `xml:"primary,attr"`
							EntryId  string `xml:"entryId,attr"`
							ID       string `xml:"id,attr"`
							Name     string `xml:"name,attr"`
							Rules    string `xml:"rules"`
							Profiles string `xml:"profiles"`
						} `xml:"category"`
					} `xml:"categories"`
					Selections struct {
						Text      string `xml:",chardata"`
						Selection []struct {
							Text         string `xml:",chardata"`
							Number       string `xml:"number,attr"`
							Type         string `xml:"type,attr"`
							EntryId      string `xml:"entryId,attr"`
							EntryGroupId string `xml:"entryGroupId,attr"`
							ID           string `xml:"id,attr"`
							Name         string `xml:"name,attr"`
							Page         string `xml:"page,attr"`
							Costs        struct {
								Text string `xml:",chardata"`
								Cost []struct {
									Text   string `xml:",chardata"`
									TypeId string `xml:"typeId,attr"`
									Value  string `xml:"value,attr"`
									Name   string `xml:"name,attr"`
								} `xml:"cost"`
							} `xml:"costs"`
							Categories struct {
								Text     string `xml:",chardata"`
								Category []struct {
									Text     string `xml:",chardata"`
									Primary  string `xml:"primary,attr"`
									EntryId  string `xml:"entryId,attr"`
									ID       string `xml:"id,attr"`
									Name     string `xml:"name,attr"`
									Rules    string `xml:"rules"`
									Profiles string `xml:"profiles"`
								} `xml:"category"`
							} `xml:"categories"`
							Selections struct {
								Text      string `xml:",chardata"`
								Selection []struct {
									Text         string `xml:",chardata"`
									Number       string `xml:"number,attr"`
									Type         string `xml:"type,attr"`
									EntryId      string `xml:"entryId,attr"`
									ID           string `xml:"id,attr"`
									Name         string `xml:"name,attr"`
									EntryGroupId string `xml:"entryGroupId,attr"`
									Costs        struct {
										Text string `xml:",chardata"`
										Cost []struct {
											Text   string `xml:",chardata"`
											TypeId string `xml:"typeId,attr"`
											Value  string `xml:"value,attr"`
											Name   string `xml:"name,attr"`
										} `xml:"cost"`
									} `xml:"costs"`
									Categories string `xml:"categories"`
									Selections string `xml:"selections"`
									Rules      string `xml:"rules"`
									Profiles   struct {
										Text    string `xml:",chardata"`
										Profile struct {
											Text            string `xml:",chardata"`
											TypeId          string `xml:"typeId,attr"`
											TypeName        string `xml:"typeName,attr"`
											Hidden          string `xml:"hidden,attr"`
											PublicationId   string `xml:"publicationId,attr"`
											Page            string `xml:"page,attr"`
											ID              string `xml:"id,attr"`
											Name            string `xml:"name,attr"`
											Characteristics struct {
												Text           string `xml:",chardata"`
												Characteristic []struct {
													Text   string `xml:",chardata"`
													TypeId string `xml:"typeId,attr"`
													Name   string `xml:"name,attr"`
												} `xml:"characteristic"`
											} `xml:"characteristics"`
											Modifiers      string `xml:"modifiers"`
											ModifierGroups string `xml:"modifierGroups"`
										} `xml:"profile"`
									} `xml:"profiles"`
								} `xml:"selection"`
							} `xml:"selections"`
							Rules struct {
								Text string `xml:",chardata"`
								Rule struct {
									Text           string `xml:",chardata"`
									Hidden         string `xml:"hidden,attr"`
									ID             string `xml:"id,attr"`
									Name           string `xml:"name,attr"`
									Description    string `xml:"description"`
									Modifiers      string `xml:"modifiers"`
									ModifierGroups string `xml:"modifierGroups"`
								} `xml:"rule"`
							} `xml:"rules"`
							Profiles struct {
								Text    string `xml:",chardata"`
								Profile struct {
									Text            string `xml:",chardata"`
									TypeId          string `xml:"typeId,attr"`
									TypeName        string `xml:"typeName,attr"`
									Hidden          string `xml:"hidden,attr"`
									ID              string `xml:"id,attr"`
									Name            string `xml:"name,attr"`
									Characteristics struct {
										Text           string `xml:",chardata"`
										Characteristic []struct {
											Text   string `xml:",chardata"`
											TypeId string `xml:"typeId,attr"`
											Name   string `xml:"name,attr"`
										} `xml:"characteristic"`
									} `xml:"characteristics"`
									Modifiers      string `xml:"modifiers"`
									ModifierGroups string `xml:"modifierGroups"`
								} `xml:"profile"`
							} `xml:"profiles"`
						} `xml:"selection"`
					} `xml:"selections"`
					Rules struct {
						Text string `xml:",chardata"`
						Rule []struct {
							Text           string `xml:",chardata"`
							Hidden         string `xml:"hidden,attr"`
							PublicationId  string `xml:"publicationId,attr"`
							ID             string `xml:"id,attr"`
							Name           string `xml:"name,attr"`
							Page           string `xml:"page,attr"`
							Description    string `xml:"description"`
							Modifiers      string `xml:"modifiers"`
							ModifierGroups string `xml:"modifierGroups"`
						} `xml:"rule"`
					} `xml:"rules"`
					Profiles struct {
						Text    string `xml:",chardata"`
						Profile []struct {
							Text            string `xml:",chardata"`
							TypeId          string `xml:"typeId,attr"`
							TypeName        string `xml:"typeName,attr"`
							Hidden          string `xml:"hidden,attr"`
							ID              string `xml:"id,attr"`
							Name            string `xml:"name,attr"`
							Characteristics struct {
								Text           string `xml:",chardata"`
								Characteristic []struct {
									Text   string `xml:",chardata"`
									TypeId string `xml:"typeId,attr"`
									Name   string `xml:"name,attr"`
								} `xml:"characteristic"`
							} `xml:"characteristics"`
							Modifiers      string `xml:"modifiers"`
							ModifierGroups string `xml:"modifierGroups"`
						} `xml:"profile"`
					} `xml:"profiles"`
				} `xml:"selection"`
			} `xml:"selections"`
			Rules    string `xml:"rules"`
			Profiles string `xml:"profiles"`
		} `xml:"force"`
	} `xml:"forces"`
	Tags string `xml:"tags"`
}

func ReadRoszArchive

func ReadRoszArchive(archive *zip.ReadCloser) (Roster, error)

ReadRoszArchive parses the ros file in the supplied archive and returns a Roster

func ReadRoszFile

func ReadRoszFile(roszPath string) (Roster, error)

ReadRoszFile reads the rosz file in the supplied path, unzips it, and parses the roster inside

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL