Documentation ¶
Index ¶
- Constants
- func CleanDescription(description string) string
- func IsCTFEventActive(event Event) bool
- 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) 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) 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
func IsCTFEventActive ¶
IsCTFEventActive returns true if the CTF event is active based on the start and finish times
Types ¶
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) 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 { CreatedAt time.Time UpdatedAt time.Time DeletedAt time.Time Hidden bool ID uint64 `json:"id"` CTFID int `json:"ctf_id"` Title string `json:"title"` Description string `json:"description"` URL string `json:"url"` URLIsCTFD bool `json:"url_is_ctfd"` 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 are not "Open", are on-site, are not of jeopardy style or that have finished