Documentation
¶
Index ¶
- Constants
- func CleanDescription(description string) string
- func IsActive(event Event) bool
- type CTFOpts
- type CTFTeam
- type ChallengeData
- type ChallengesData
- type Client
- func (c *Client) Authenticate() error
- func (c *Client) Challenge(id int64) (*ChallengeData, error)
- func (c *Client) Check() error
- func (c *Client) DoRequest(req *http.Request) (*http.Response, error)
- func (c *Client) DownloadFiles(id int64, outputPath string) error
- func (c *Client) GetCTFEvent(id int) (Event, error)
- func (c *Client) GetCTFEvents() ([]Event, error)
- func (c *Client) GetCTFTeam(id int) (CTFTeam, error)
- func (c *Client) GetDescription(challenge *ChallengeData, challengePath string) error
- func (c *Client) GetDoc(urlStr string, a ...interface{}) (*goquery.Document, error)
- func (c *Client) GetJson(urlStr string, a ...interface{}) (*http.Response, error)
- func (c *Client) GetTopTeams() ([]TopTeam, error)
- func (c *Client) ListChallenges() ([]ChallengesData, error)
- func (c *Client) ScoreboardTop(count int64) (TopTeamData, error)
- func (c *Client) SubmitFlag(submission Submission) error
- type Credentials
- type Event
- type Hint
- type Solves
- type Submission
- type Team
- type TopTeam
- type TopTeamData
- type TopTeams
Constants ¶
const ( // Constants for max file sizes (1mb, 5mb, 25mb, 100mb, 0) NoFileSizeLimit = 0 OneMB = 1000000 FiveMB = 5000000 TwentyFiveMB = 25000000 OneHundredMB = 100000000 TwoHhundredFiftyMB = 250000000 )
Variables ¶
This section is empty.
Functions ¶
func CleanDescription ¶
Clean the description of a CTF event, removing \r\n and limiting the length of the description
Types ¶
type CTFOpts ¶ added in v0.0.23
type CTFTeam ¶
type CTFTeam struct {
ID int `json:"id"`
Academic bool `json:"academic"`
PrimaryAlias string `json:"primary_alias"`
Name string `json:"name"`
Logo string `json:"logo"`
Country string `json:"country"`
Aliases []string `json:"aliases"`
Rating map[string]struct {
RatingPlace int `json:"rating_place"`
OrganizerPoints float64 `json:"organizer_points"`
RatingPoints float64 `json:"rating_points"`
CountryPlace int `json:"country_place"`
} `json:"rating"`
}
Struct for API Endpoint ctftime.org/api/v1/teams/
type ChallengeData ¶
type ChallengeData struct {
ID int64 `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
ConnectionInfo string `json:"connection_info"`
NextID int64 `json:"next_id"`
Attempts int64 `json:"attempts"`
MaxAttempts int64 `json:"max_attempts"`
Value int64 `json:"value"`
Category string `json:"category"`
Type string `json:"type"`
TypeData struct {
ID string `json:"id"`
Name string `json:"name"`
Templates struct {
Create string `json:"create"`
Update string `json:"update"`
View string `json:"view"`
} `json:"templates"`
Scripts struct {
Create string `json:"create"`
Update string `json:"update"`
View string `json:"view"`
} `json:"scripts"`
} `json:"type_data"`
State string `json:"state"`
Solves int64 `json:"solves"`
SolvedByMe bool `json:"solved_by_me"`
Files []string `json:"files"`
Hints []Hint `json:"hints"`
Tags []interface{} `json:"tags"`
}
type ChallengesData ¶ added in v0.0.19
type Client ¶
func NewClient ¶
func NewClient(transport http.RoundTripper) *Client
NewClient constructs a new Client. If transport is nil, a default transport is used.
func (*Client) Authenticate ¶
Authenticate will attempt to authenticate the client with the provided username and password.
func (*Client) Challenge ¶
func (c *Client) Challenge(id int64) (*ChallengeData, error)
Challenge returns a challenge by ID
func (*Client) DownloadFiles ¶
DownloadFiles will download all the files of a challenge by ID and save them to the given directory
func (*Client) GetCTFEvent ¶
Retrieve information about a specific CTF event on CTFTime
func (*Client) GetCTFEvents ¶
Retrieve information about all CTF events on CTFTime
func (*Client) GetCTFTeam ¶
Get information about a specific team on CTFTime
func (*Client) GetDescription ¶
func (c *Client) GetDescription(challenge *ChallengeData, challengePath string) error
GetDescription retrieves a challenge and returns a writeup template of the challenge
func (*Client) GetDoc ¶ added in v0.0.21
GetDoc fetches a urlStr (URL relative to the client's BaseURL) and returns the parsed response document.
func (*Client) GetJson ¶ added in v0.0.21
GetJson fetches a urlStr (URL relative to the client's BaseURL) and returns the parsed response body.
func (*Client) GetTopTeams ¶
Get the top teams on CTFTime
func (*Client) ListChallenges ¶
func (c *Client) ListChallenges() ([]ChallengesData, error)
ListChallenges returns a list of challenges
func (*Client) ScoreboardTop ¶
func (c *Client) ScoreboardTop(count int64) (TopTeamData, error)
ScoreboardTop returns the top teams on the scoreboard
func (*Client) SubmitFlag ¶ added in v0.0.19
func (c *Client) SubmitFlag(submission Submission) error
type Credentials ¶
type Event ¶
type Event struct {
ID uint64 `json:"id"`
CTFID int `json:"ctf_id"`
Title string `json:"title"`
Description string `json:"description"`
URL string `json:"url"`
Logo string `json:"logo"`
Weight float64 `json:"weight"`
Onsite bool `json:"onsite"`
Location string `json:"location"`
Restrictions string `json:"restrictions"`
Format string `json:"format"`
FormatID int `json:"format_id"`
Participants int `json:"participants"`
CTFTimeURL string `json:"ctftime_url"`
LiveFeed string `json:"live_feed"`
IsVotableNow bool `json:"is_votable_now"`
PublicVotable bool `json:"public_votable"`
Start time.Time `json:"start"`
Finish time.Time `json:"finish"`
}
Struct for API Endpoint ctftime.org/api/v1/events/
func CleanCTFEvents ¶
CleanCTFEvents will clean the CTF events, removing any events that have finished