client

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2022 License: GPL-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const ErrorNeedContestID = "You have to specify the Contest ID"

ErrorNeedContestID error

View Source
const ErrorNeedProblemID = "You have to specify the Problem ID"

ErrorNeedProblemID error

View Source
const ErrorNeedSubmissionID = "You have to specify the Submission ID"

ErrorNeedSubmissionID error

View Source
const ErrorUnknownType = "Unknown Type"

ErrorUnknownType error

Variables

View Source
var ErrorNotLogged = "Not logged in"

ErrorNotLogged not logged in

View Source
var Langs = map[string]string{
	"43": "GNU GCC C11 5.1.0 ",
	"52": "Clang++17 Diagnostics ",
	"50": "GNU G++14 6.4.0 ",
	"54": "GNU G++17 7.3.0 ",
	"73": "GNU G++20 11.2.0 (64 bit, winlibs) ",
	"59": "Microsoft Visual C++ 2017 ",
	"61": "GNU G++17 9.2.0 (64 bit, msys 2) ",
	"65": "C# 8, .NET Core 3.1 ",
	"9":  "C# Mono 6.8 ",
	"28": "D DMD32 v2.091.0 ",
	"32": "Go 1.17.3 ",
	"12": "Haskell GHC 8.10.1 ",
	"60": "Java 11.0.6 ",
	"36": "Java 1.8.0_241 ",
	"48": "Kotlin 1.4.31 ",
	"72": "Kotlin 1.5.31 ",
	"19": "OCaml 4.02.1 ",
	"3":  "Delphi 7 ",
	"4":  "Free Pascal 3.0.2 ",
	"51": "PascalABC.NET 3.4.2 ",
	"13": "Perl 5.20.1 ",
	"6":  "PHP 7.2.13 ",
	"7":  "Python 2.7.18 ",
	"31": "Python 3.8.10 ",
	"40": "PyPy 2.7 (7.3.0) ",
	"41": "PyPy 3.7 (7.3.0) ",
	"70": "PyPy 3.8 (7.3.7, 64bit) ",
	"67": "Ruby 3.0.0 ",
	"75": "Rust 1.57.0 (2021) ",
	"20": "Scala 2.12.8 ",
	"34": "JavaScript V8 4.8.0 ",
	"55": "Node.js 12.16.3 ",
}

Langs generated by ^[\s\S]*?value="(.+?)"[\s\S]*?>([\s\S]+?)<[\s\S]*?$

"\1": "\2",
View Source
var ProblemTypes = [...]string{
	"contest",
}

ProblemTypes problem types

Functions

func Init

func Init(path, host string)

Init initialize

Types

type Client

type Client struct {
	Jar            *cookiejar.Jar `json:"cookies"`
	Handle         string         `json:"handle"`
	HandleOrEmail  string         `json:"handle_or_email"`
	Password       string         `json:"password"`
	Ftaa           string         `json:"ftaa"`
	Bfaa           string         `json:"bfaa"`
	LastSubmission *Info          `json:"last_submission"`
	// contains filtered or unexported fields
}

Client codeforces client

var Instance *Client

Instance global client

func (*Client) ConfigLogin

func (c *Client) ConfigLogin() (err error)

ConfigLogin configure handle and password

func (*Client) DecryptPassword

func (c *Client) DecryptPassword() (string, error)

DecryptPassword get real password

func (*Client) Login

func (c *Client) Login() (err error)

Login codeforces with handler and password

func (*Client) Parse

func (c *Client) Parse(info Info) (problems []string, paths []string, err error)

Parse parse

func (*Client) ParseProblem

func (c *Client) ParseProblem(URL, path string, mu *sync.Mutex) (samples int, standardIO bool, err error)

ParseProblem parse problem to path. mu can be nil

func (*Client) RaceContest

func (c *Client) RaceContest(info Info) (err error)

RaceContest wait for contest starting

func (*Client) Statis

func (c *Client) Statis(info Info) (problems []StatisInfo, err error)

Statis get statis

func (*Client) Submit

func (c *Client) Submit(info Info, langID, source string) (err error)

Submit submit (block while pending)

func (*Client) WatchSubmission

func (c *Client) WatchSubmission(info Info, n int, line bool) (submissions []Submission, err error)

WatchSubmission n is the number of submissions

type Contest

type Contest struct {
	ID                  uint64 `json:"id"`
	Name                string `json:"name"`
	Type                string `json:"type"`
	Phase               string `json:"phase"`
	Frozen              bool   `json:"frozen"`
	DurationSeconds     int64  `json:"durationSeconds"`
	StartTimeSeconds    int64  `json:"startTimeSeconds"`
	RelativeTimeSeconds int64  `json:"relativeTimeSeconds"`
}

func GetContest

func GetContest() []*Contest

type Info

type Info struct {
	ProblemType  string `json:"problem_type"`
	ContestID    string `json:"contest_id"`
	GroupID      string `json:"group_id"`
	ProblemID    string `json:"problem_id"`
	SubmissionID string `json:"submission_id"`
	RootPath     string
}

Info information

func (*Info) Hint

func (info *Info) Hint() string

Hint hint text

func (*Info) MySubmissionURL

func (info *Info) MySubmissionURL(host string) (string, error)

MySubmissionURL parse submission url

func (*Info) OpenURL

func (info *Info) OpenURL(host string) (string, error)

OpenURL open url

func (*Info) Path

func (info *Info) Path() string

Path path

func (*Info) ProblemSetURL

func (info *Info) ProblemSetURL(host string) (string, error)

ProblemSetURL parse problem set url

func (*Info) ProblemURL

func (info *Info) ProblemURL(host string) (string, error)

ProblemURL parse problem url

func (*Info) StandingsURL

func (info *Info) StandingsURL(host string) (string, error)

StandingsURL parse standings url

func (*Info) SubmissionURL

func (info *Info) SubmissionURL(host string) (string, error)

SubmissionURL parse submission url

func (*Info) SubmitURL

func (info *Info) SubmitURL(host string) (string, error)

SubmitURL submit url

type Limit

type Limit struct {
	TimeLimit   uint64
	MemoryLimit uint64
}

type Response

type Response struct {
	Status string    `json:"status"`
	Result []Contest `json:"result"`
}

type StatisInfo

type StatisInfo struct {
	ID     string
	Name   string
	IO     string
	Limit  string
	Passed string
	State  string
}

StatisInfo statis information

type Submission

type Submission struct {
	// contains filtered or unexported fields
}

Submission submit state

func (*Submission) ParseID

func (s *Submission) ParseID() string

ParseID formatter

func (*Submission) ParseMemory

func (s *Submission) ParseMemory() string

ParseMemory formatter

func (*Submission) ParseProblemIndex

func (s *Submission) ParseProblemIndex() string

ParseProblemIndex get problem's index

func (*Submission) ParseStatus

func (s *Submission) ParseStatus() string

ParseStatus with color

func (*Submission) ParseTime

func (s *Submission) ParseTime() string

ParseTime formatter

Jump to

Keyboard shortcuts

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