Documentation
¶
Index ¶
- type AchievementInfo
- type ActiveMemberRange
- type AllAchievementInfo
- type CWLS
- type CWLSMember
- type CWLSOptions
- type CWLSSearchResult
- type Character
- type CharacterOptions
- type CharacterSearchOrder
- type CharacterSearchResult
- type ClassJob
- type ClassJobBozja
- type ClassJobEureka
- type ClassJobUnlockedState
- type CrestLayers
- type Estate
- type FreeCompany
- type FreeCompanyActiveState
- type FreeCompanyFocus
- type FreeCompanyFocusInfo
- type FreeCompanyHousingStatus
- type FreeCompanyMember
- type FreeCompanyOptions
- type FreeCompanyRanking
- type FreeCompanyRecruitingState
- type FreeCompanyReputation
- type FreeCompanySearchOrder
- type FreeCompanySearchResult
- type FreeCompanySeekingInfo
- type GearItem
- type GearItemBuild
- type GearSet
- type GrandCompanyInfo
- type IconedNamedEntity
- type Linkshell
- type LinkshellMember
- type LinkshellOptions
- type LinkshellSearchOrder
- type LinkshellSearchResult
- type Minion
- type Mount
- type PVPTeam
- type PVPTeamMember
- type PVPTeamOptions
- type PVPTeamSearchOrder
- type PVPTeamSearchResult
- type PageInfo
- type Scraper
- func (s *Scraper) FetchCWLS(id string) (*CWLS, error)
- func (s *Scraper) FetchCharacter(id uint32) (*Character, error)
- func (s *Scraper) FetchCharacterAchievements(id uint32) ([]*AchievementInfo, *AllAchievementInfo, error)
- func (s *Scraper) FetchCharacterMinions(id uint32) ([]*Minion, error)
- func (s *Scraper) FetchCharacterMounts(id uint32) ([]*Mount, error)
- func (s *Scraper) FetchFreeCompany(id string) (*FreeCompany, error)
- func (s *Scraper) FetchFreeCompanyMembers(id string) chan *FreeCompanyMember
- func (s *Scraper) FetchLinkshell(id string) (*Linkshell, error)
- func (s *Scraper) FetchPVPTeam(id string) (*PVPTeam, error)
- func (s *Scraper) SearchCWLS(opts CWLSOptions) chan *CWLSSearchResult
- func (s *Scraper) SearchCharacters(opts CharacterOptions) chan *CharacterSearchResult
- func (s *Scraper) SearchFreeCompanies(opts FreeCompanyOptions) chan *FreeCompanySearchResult
- func (s *Scraper) SearchLinkshells(opts LinkshellOptions) chan *LinkshellSearchResult
- func (s *Scraper) SearchPVPTeams(opts PVPTeamOptions) chan *PVPTeamSearchResult
- type SearchLang
- type SiteLang
- type Title
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AchievementInfo ¶
type AchievementInfo struct {
*models.NamedEntity
Date time.Time
}
AchievementInfo represents information about a character's achievements.
type ActiveMemberRange ¶
type ActiveMemberRange string
ActiveMemberRange represents the active member range filter of a search.
const ( OneToTen ActiveMemberRange = "1-10" ElevenToThirty ActiveMemberRange = "11-30" ThirtyOneToFifty ActiveMemberRange = "31-50" FiftyOnePlus ActiveMemberRange = "51-" )
Active member range for searches.
type AllAchievementInfo ¶
type AllAchievementInfo struct {
Private bool
TotalAchievements uint32
TotalAchievementPoints uint32
}
AllAchievementInfo represents information about a character's achievements in aggregate.
type CWLSMember ¶
type CWLSMember struct {
Avatar string
ID uint32
Name string
LinkshellRank string
LinkshellRankIcon string
Rank gcrank.GCRank
RankIcon string
World string
DC string
}
CWLSMember represents information about a CWLS member.
type CWLSOptions ¶
type CWLSOptions struct {
Name string
DC string
Order LinkshellSearchOrder
ActiveMembers ActiveMemberRange
CommunityFinderRecruiting bool
}
CWLSOptions defines extra search information that can help to narrow down a CWLS search.
func (*CWLSOptions) BuildURI ¶
func (s *CWLSOptions) BuildURI(lang string) string
BuildURI returns a constructed URI for the provided search options.
type CWLSSearchResult ¶
type CWLSSearchResult struct {
Error error `json:"-"`
Name string
ID string
DC string
ActiveMembers uint32
}
CWLSSearchResult represents basic CWLS information returned from a search.
type Character ¶
type Character struct {
ActiveClassJob *ClassJob
Avatar string
Bio string
ClassJobs []*ClassJob
ClassJobBozjan *ClassJobBozja
ClassJobElemental *ClassJobEureka
DC string
FreeCompanyID string
FreeCompanyName string
GearSet *GearSet
Gender gender.Gender
GrandCompanyInfo *GrandCompanyInfo
GuardianDeity *IconedNamedEntity
ID uint32
Name string
Nameday string
ParseDate time.Time
Portrait string
PvPTeamID string
Race *models.GenderedEntity
Title *Title
Town *IconedNamedEntity
Tribe *models.GenderedEntity
World string
}
Character represents the information available about a character on The Lodestone.
type CharacterOptions ¶
type CharacterOptions struct {
Name string
World string
DC string
SearchLang SearchLang
GrandCompany string
Race string
Tribe string
Order CharacterSearchOrder
}
CharacterOptions defines extra search information that can help to narrow down a search.
type CharacterSearchOrder ¶
type CharacterSearchOrder uint8
CharacterSearchOrder represents the search result ordering of a Lodestone character search.
const ( OrderCharaNameAToZ CharacterSearchOrder = iota + 1 OrderCharaNameZToA OrderCharaWorldAtoZ OrderCharaWorldZtoA OrderCharaLevelDescending OrderCharaLevelAscending )
Search ordering for character searches.
type CharacterSearchResult ¶
type CharacterSearchResult struct {
Error error `json:"-"`
Avatar string
ID uint32
Lang string
Name string
Rank gcrank.GCRank
RankIcon string
World string
DC string
}
CharacterSearchResult contains data from the character search page about a character.
type ClassJob ¶
type ClassJob struct {
ClassID uint8
ExpLevel uint32
ExpLevelMax uint32
ExpLevelTogo uint32
IsSpecialized bool
JobID uint8
Level uint8
Name string
UnlockedState ClassJobUnlockedState
}
ClassJob represents class and job information.
type ClassJobBozja ¶
ClassJobBozja represents character progression data in the Bozjan Southern Front.
type ClassJobEureka ¶
type ClassJobEureka struct {
ExpLevel uint32
ExpLevelMax uint32
ExpLevelTogo uint32
Level uint8
Name string
}
ClassJobEureka represents character progression data in Eureka.
type ClassJobUnlockedState ¶
ClassJobUnlockedState represents the unlock state of a ClassJob
type CrestLayers ¶
CrestLayers represents the layers of a community crest.
type FreeCompany ¶
type FreeCompany struct {
Active FreeCompanyActiveState
ActiveMemberCount uint32
CrestLayers *CrestLayers
DC string
Estate *Estate
Focus []*FreeCompanyFocusInfo
Formed time.Time
GrandCompany *models.NamedEntity
ID string
Name string
ParseDate time.Time
Rank uint8
Ranking *FreeCompanyRanking
Recruitment FreeCompanyRecruitingState
Reputation []*FreeCompanyReputation
Seeking []*FreeCompanySeekingInfo
Slogan string
Tag string
World string
}
FreeCompany represents all of the basic information about an FC.
type FreeCompanyActiveState ¶
type FreeCompanyActiveState string
FreeCompanyActiveState is the active state of an FC.
const ( FCActiveNotSpecified FreeCompanyActiveState = "Not specified" FCActiveWeekdaysOnly FreeCompanyActiveState = "Weekdays Only" FCActiveWeekendsOnly FreeCompanyActiveState = "Weekends Only" FCActiveAlways FreeCompanyActiveState = "Always" )
Active state for an FC.
type FreeCompanyFocus ¶
type FreeCompanyFocus string
FreeCompanyFocus is an FC's focus.
const ( FCFocusRolePlaying FreeCompanyFocus = "Role-playing" FCFocusLeveling FreeCompanyFocus = "Leveling" FCFocusCasual FreeCompanyFocus = "Casual" FCFocusHardcore FreeCompanyFocus = "Hardcore" FCFocusDungeons FreeCompanyFocus = "Dungeons" FCFocusGuildhests FreeCompanyFocus = "Guildhests" FCFocusTrials FreeCompanyFocus = "Trials" FCFocusRaids FreeCompanyFocus = "Raids" FCFocusPvP FreeCompanyFocus = "PvP" )
Free Company Focus.
type FreeCompanyFocusInfo ¶
type FreeCompanyFocusInfo struct {
Icon string
Kind FreeCompanyFocus
Status bool
}
FreeCompanyFocusInfo represents a particular FC's intentions for a focus.
type FreeCompanyHousingStatus ¶
type FreeCompanyHousingStatus uint8
FreeCompanyHousingStatus represents the housing status of a Free Company for the purpose of searches.
const ( FCHousingAll FreeCompanyHousingStatus = iota FCHousingNoEstateOrPlot FCHousingPlotOnly FCHousingEstateBuilt )
Housing status for Free Company searches.
type FreeCompanyMember ¶
type FreeCompanyMember struct {
Error error `json:"-"`
Avatar string
ID uint32
Name string
Rank gcrank.GCRank
RankIcon string
World string
DC string
}
FreeCompanyMember represents information about a Free Company member.
type FreeCompanyOptions ¶
type FreeCompanyOptions struct {
Name string
World string
DC string
ActiveTime FreeCompanyActiveState
Recruitment FreeCompanyRecruitingState
Order FreeCompanySearchOrder
HousingStatus FreeCompanyHousingStatus
ActiveMembers ActiveMemberRange
CommunityFinderRecruiting bool
}
FreeCompanyOptions defines extra search information that can help to narrow down a Free Company search.
func (*FreeCompanyOptions) BuildURI ¶
func (s *FreeCompanyOptions) BuildURI(lang string) string
BuildURI returns a constructed URI for the provided search options.
type FreeCompanyRanking ¶
FreeCompanyRanking represents a particular FC's periodic rankings.
type FreeCompanyRecruitingState ¶
type FreeCompanyRecruitingState string
FreeCompanyRecruitingState is the recruiting state of an FC.
const ( FCRecruitmentClosed FreeCompanyRecruitingState = "Closed" FCRecruitmentOpen FreeCompanyRecruitingState = "Open" )
Recruiting state for an FC.
type FreeCompanyReputation ¶
type FreeCompanyReputation struct {
GrandCompany *models.NamedEntity
Progress uint8
Rank *models.NamedEntity
}
FreeCompanyReputation represents an FC's alignment with each Grand Company.
type FreeCompanySearchOrder ¶
type FreeCompanySearchOrder uint8
FreeCompanySearchOrder represents the search result ordering of a Lodestone Free Company search.
const ( OrderFCNameAToZ FreeCompanySearchOrder = iota + 1 OrderFCNameZToA OrderFCMembershipHighToLow OrderFCMembershipLowToHigh OrderFCDateFoundedDescending OrderFCDateFoundedAscending )
Search ordering for Free Company searches.
type FreeCompanySearchResult ¶
type FreeCompanySearchResult struct {
Error error `json:"-"`
Active FreeCompanyActiveState
ActiveMembers uint32
CrestLayers *CrestLayers
DC string
Estate string
Formed time.Time
GrandCompany *models.NamedEntity
ID string
Name string
Recruitment FreeCompanyRecruitingState
World string
}
FreeCompanySearchResult represents all of the searchable information about an FC.
type FreeCompanySeekingInfo ¶
FreeCompanySeekingInfo represents a particular FC's intentions for a recruit roles.
type GearItem ¶
type GearItem struct {
*models.NamedEntity
Creator string
Dye uint32
HQ bool
Materia []uint32
Mirage uint32
}
GearItem represents information about a single gear item on a character.
type GearItemBuild ¶
type GearItemBuild struct {
Body *GearItem
Bracelets *GearItem
Earrings *GearItem
Feet *GearItem
Hands *GearItem
Head *GearItem
Legs *GearItem
MainHand *GearItem
Necklace *GearItem
OffHand *GearItem
Ring1 *GearItem
Ring2 *GearItem
SoulCrystal *GearItem
Waist *GearItem
}
GearItemBuild represents a full gearset on a character. All gear items can be nil.
type GearSet ¶
type GearSet struct {
Attributes map[baseparam.BaseParam]uint32
ClassID uint8
Gear *GearItemBuild
GearKey string
JobID uint8
Level uint8
}
GearSet represents the current gear information of a character.
type GrandCompanyInfo ¶
type GrandCompanyInfo struct {
GrandCompany *models.NamedEntity
RankID gcrank.GCRank
}
GrandCompanyInfo represents Grand Company information about a character.
type IconedNamedEntity ¶
type IconedNamedEntity struct {
*models.NamedEntity
Icon string
}
IconedNamedEntity represents an instance of an object with an icon and a name.
type Linkshell ¶
type Linkshell struct {
Name string
ID string
ParseDate time.Time
Members []*LinkshellMember
}
Linkshell represents basic linkshell information.
type LinkshellMember ¶
type LinkshellMember struct {
Avatar string
ID uint32
Name string
LinkshellRank string
LinkshellRankIcon string
Rank gcrank.GCRank
RankIcon string
World string
DC string
}
LinkshellMember represents information about a linkshell member.
type LinkshellOptions ¶
type LinkshellOptions struct {
Name string
World string
DC string
Order LinkshellSearchOrder
ActiveMembers ActiveMemberRange
CommunityFinderRecruiting bool
}
LinkshellOptions defines extra search information that can help to narrow down a linkshell search.
func (*LinkshellOptions) BuildURI ¶
func (s *LinkshellOptions) BuildURI(lang string) string
BuildURI returns a constructed URI for the provided search options.
type LinkshellSearchOrder ¶
type LinkshellSearchOrder uint8
LinkshellSearchOrder represents the search result ordering of a Lodestone CWLS search.
const ( OrderLinkshellNameAToZ LinkshellSearchOrder = iota + 1 OrderLinkshellNameZToA OrderLinkshellMembershipHighToLow OrderLinkshellMembershipLowToHigh )
Search ordering for linkshell and CWLS searches.
type LinkshellSearchResult ¶
type LinkshellSearchResult struct {
Error error `json:"-"`
Name string
ID string
World string
DC string
ActiveMembers uint32
}
LinkshellSearchResult represents basic linkshell information returned from a search.
type PVPTeam ¶
type PVPTeam struct {
Name string
ID string
DC string
ParseDate time.Time
Formed time.Time
CrestLayers *CrestLayers
Members []*PVPTeamMember
}
PVPTeam represents information about a PVP team.
type PVPTeamMember ¶
type PVPTeamMember struct {
Avatar string
ID uint32
Name string
Matches uint32
Rank gcrank.GCRank
RankIcon string
World string
DC string
}
PVPTeamMember represents information about a PVP team member.
type PVPTeamOptions ¶
type PVPTeamOptions struct {
Name string
DC string
Order PVPTeamSearchOrder
CommunityFinderRecruiting bool
}
PVPTeamOptions defines extra search information that can help to narrow down a PVP team search.
func (*PVPTeamOptions) BuildURI ¶
func (s *PVPTeamOptions) BuildURI(lang string) string
BuildURI returns a constructed URI for the provided search options.
type PVPTeamSearchOrder ¶
type PVPTeamSearchOrder uint8
PVPTeamSearchOrder represents the search result ordering of a Lodestone CWLS search.
const ( OrderPVPTeamNameAToZ PVPTeamSearchOrder = iota + 1 OrderPVPTeamNameZToA )
Search ordering for PVP Team searches.
type PVPTeamSearchResult ¶
type PVPTeamSearchResult struct {
Error error `json:"-"`
Name string
ID string
DC string
CrestLayers *CrestLayers
}
PVPTeamSearchResult represents basic PVP team information returned from a search.
type Scraper ¶
type Scraper struct {
// contains filtered or unexported fields
}
Scraper is the object through which interactions with The Lodestone are made.
func NewScraper ¶
func NewScraper(dataProvider provider.DataProvider, lang SiteLang) *Scraper
NewScraper creates a new instance of the Scraper. Do note that all five language-versions of the website are on the same physical servers in Japan. Changing the language of the website will not meaningfully improve response times.
func (*Scraper) FetchCWLS ¶
FetchCWLS returns CWLS information for the provided CWLS ID. The error is returned if the request fails.
func (*Scraper) FetchCharacter ¶
FetchCharacter returns character information for the provided Lodestone ID. This function makes two requests: one to the base character profile, and another to the class and job page, returning an error if either request fails.
func (*Scraper) FetchCharacterAchievements ¶
func (s *Scraper) FetchCharacterAchievements(id uint32) ([]*AchievementInfo, *AllAchievementInfo, error)
FetchCharacterAchievements returns unlocked achievement information for the provided Lodestone ID. The error is returned if the request fails with anything other than a 403. A 403 will not be raised when the character's achievements are private. Instead, the Private field on the AllAchievementInfo object will be set to true.
func (*Scraper) FetchCharacterMinions ¶
FetchCharacterMinions returns unlocked minion information for the provided Lodestone ID. The error is returned if the request fails with anything other than a 404. A 404 can result from a character not existing, but it can also result from a character not having any minions.
func (*Scraper) FetchCharacterMounts ¶
FetchCharacterMounts returns unlocked mount information for the provided Lodestone ID. The error is returned if the request fails with anything other than a 404. A 404 can result from a character not existing, but it can also result from a character not having any mounts.
func (*Scraper) FetchFreeCompany ¶
func (s *Scraper) FetchFreeCompany(id string) (*FreeCompany, error)
FetchFreeCompany returns Free Company information for the provided Free Company ID. The error is returned if the request fails.
func (*Scraper) FetchFreeCompanyMembers ¶
func (s *Scraper) FetchFreeCompanyMembers(id string) chan *FreeCompanyMember
FetchFreeCompanyMembers returns Free Company member information for the provided Free Company ID. The error is returned if the request fails.
func (*Scraper) FetchLinkshell ¶
FetchLinkshell returns linkshell information for the provided linkshell ID. The error is returned if the request fails.
func (*Scraper) FetchPVPTeam ¶
FetchPVPTeam returns PVP team information for the provided PVP team ID. The error is returned if the request fails.
func (*Scraper) SearchCWLS ¶
func (s *Scraper) SearchCWLS(opts CWLSOptions) chan *CWLSSearchResult
SearchCWLS returns a channel of searchable crossworld linkshells. Please note that searches are notoriously poor, and often return exact matches far down in the results, or else return no search results when search results should be present. This library does one retry on each failure, but this is not a guarantee that all search results will be returned.
func (*Scraper) SearchCharacters ¶
func (s *Scraper) SearchCharacters(opts CharacterOptions) chan *CharacterSearchResult
SearchCharacters returns a channel of searchable characters. Please note that searches are notoriously poor, and often return exact matches far down in the results, or else return no search results when search results should be present. This library does one retry on each failure, but this is not a guarantee that all search results will be returned.
func (*Scraper) SearchFreeCompanies ¶
func (s *Scraper) SearchFreeCompanies(opts FreeCompanyOptions) chan *FreeCompanySearchResult
SearchFreeCompanies returns a channel of searchable Free Companies. Please note that searches are notoriously poor, and often return exact matches far down in the results, or else return no search results when search results should be present. This library does one retry on each failure, but this is not a guarantee that all search results will be returned.
func (*Scraper) SearchLinkshells ¶
func (s *Scraper) SearchLinkshells(opts LinkshellOptions) chan *LinkshellSearchResult
SearchLinkshells returns a channel of searchable linkshells. Please note that searches are notoriously poor, and often return exact matches far down in the results, or else return no search results when search results should be present. This library does one retry on each failure, but this is not a guarantee that all search results will be returned.
func (*Scraper) SearchPVPTeams ¶
func (s *Scraper) SearchPVPTeams(opts PVPTeamOptions) chan *PVPTeamSearchResult
SearchPVPTeams returns a channel of searchable PVP teams. Please note that searches are notoriously poor, and often return exact matches far down in the results, or else return no search results when search results should be present. This library does one retry on each failure, but this is not a guarantee that all search results will be returned.
type SearchLang ¶
type SearchLang uint8
SearchLang represents character language for the purposes of search.
const ( NoneLang SearchLang = 1 << iota SearchJA SearchEN SearchDE SearchFR )
Language
type SiteLang ¶
type SiteLang string
SiteLang represents the scraped website language.
Lodestone website language. Do note that all five language-versions of the website (`eu` not listed) are on the same physical servers in Japan. Changing the language of the website will not meaningfully improve response times.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
data
|
|
|
examples
|
|
|
achievements
command
|
|
|
character
command
|
|
|
character-search
command
|
|
|
cwls
command
|
|
|
cwls-search
command
|
|
|
freecompany
command
|
|
|
freecompany-members
command
|
|
|
freecompany-search
command
|
|
|
linkshell
command
|
|
|
linkshell-search
command
|
|
|
minions
command
|
|
|
mounts
command
|
|
|
pvpteam
command
|
|
|
pvpteam-search
command
|
|
|
internal
|
|
|
pack/css
Package main generated by go-bindata.// sources: lodestone-css-selectors/cwls/cwls.json lodestone-css-selectors/cwls/members.json lodestone-css-selectors/freecompany/focus.json lodestone-css-selectors/freecompany/freecompany.json lodestone-css-selectors/freecompany/members.json lodestone-css-selectors/freecompany/reputation.json lodestone-css-selectors/freecompany/seeking.json lodestone-css-selectors/linkshell/ls.json lodestone-css-selectors/linkshell/members.json lodestone-css-selectors/meta.json lodestone-css-selectors/profile/achievements.json lodestone-css-selectors/profile/attributes.json lodestone-css-selectors/profile/character.json lodestone-css-selectors/profile/classjob.json lodestone-css-selectors/profile/gearset.json lodestone-css-selectors/profile/minion.json lodestone-css-selectors/profile/mount.json lodestone-css-selectors/pvpteam/members.json lodestone-css-selectors/pvpteam/pvpteam.json lodestone-css-selectors/search/character.json lodestone-css-selectors/search/cwls.json lodestone-css-selectors/search/freecompany.json lodestone-css-selectors/search/linkshell.json lodestone-css-selectors/search/pvpteam.json
|
Package main generated by go-bindata.// sources: lodestone-css-selectors/cwls/cwls.json lodestone-css-selectors/cwls/members.json lodestone-css-selectors/freecompany/focus.json lodestone-css-selectors/freecompany/freecompany.json lodestone-css-selectors/freecompany/members.json lodestone-css-selectors/freecompany/reputation.json lodestone-css-selectors/freecompany/seeking.json lodestone-css-selectors/linkshell/ls.json lodestone-css-selectors/linkshell/members.json lodestone-css-selectors/meta.json lodestone-css-selectors/profile/achievements.json lodestone-css-selectors/profile/attributes.json lodestone-css-selectors/profile/character.json lodestone-css-selectors/profile/classjob.json lodestone-css-selectors/profile/gearset.json lodestone-css-selectors/profile/minion.json lodestone-css-selectors/profile/mount.json lodestone-css-selectors/pvpteam/members.json lodestone-css-selectors/pvpteam/pvpteam.json lodestone-css-selectors/search/character.json lodestone-css-selectors/search/cwls.json lodestone-css-selectors/search/freecompany.json lodestone-css-selectors/search/linkshell.json lodestone-css-selectors/search/pvpteam.json |