Help us shape the future of Go! Take the 2026 Go Developer Survey

client

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2023 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

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

ErrorNeedContestID error

View Source
const ErrorNeedGroupID = "You have to specify the Group ID"

ErrorNeedGroupID error

View Source
const ErrorNeedGymID = "You have to specify the Gym ID"

ErrorNeedGymID 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 ErrorNotSupportAcmsguru = "Not support acmsguru"

ErrorNotSupportAcmsguru error

View Source
const ErrorSkip = "Exists, skip"

ErrorSkip error

View Source
const ErrorTooManyRequest = "Too many requests"

ErrorTooManyRequest 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",
	"42": "GNU G++11 5.1.0",
	"50": "GNU G++14 6.4.0",
	"54": "GNU G++17 7.3.0",
	"73": "GNU G++20 11.2.0 (64 bit, winlibs)",
	"2":  "Microsoft Visual C++ 2010",
	"59": "Microsoft Visual C++ 2017",
	"9":  "C# Mono 5.18",
	"28": "D DMD32 v2.086.0",
	"32": "Go 1.12.6",
	"12": "Haskell GHC 8.6.3",
	"60": "Java 11.0.5",
	"36": "Java 1.8.0_162",
	"48": "Kotlin 1.3.10",
	"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.15",
	"31": "Python 3.7.2",
	"40": "PyPy 2.7 (7.2.0)",
	"41": "PyPy 3.6 (7.2.0)",
	"8":  "Ruby 2.0.0p645",
	"49": "Rust 1.35.0",
	"20": "Scala 2.12.8",
	"34": "JavaScript V8 4.8.0",
	"55": "Node.js 9.4.0",
	"14": "ActiveTcl 8.5",
	"15": "Io-2008-01-07 (Win32)",
	"17": "Pike 7.8",
	"18": "Befunge",
	"22": "OpenCobol 1.0",
	"25": "Factor",
	"26": "Secret_171",
	"27": "Roco",
	"33": "Ada GNAT 4",
	"38": "Mysterious Language",
	"39": "FALSE",
	"44": "Picat 0.9",
	"45": "GNU C++11 5 ZIP",
	"46": "Java 8 ZIP",
	"47": "J",
	"56": "Microsoft Q#",
}

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

"\1": "\2",
View Source
var LangsExt = map[string]string{
	"GNU C11":               "c",
	"Clang++17 Diagnostics": "cpp",
	"GNU C++0x":             "cpp",
	"GNU C++":               "cpp",
	"GNU C++11":             "cpp",
	"GNU C++14":             "cpp",
	"GNU C++17":             "cpp",
	"GNU C++20 (64)":        "cpp",
	"MS C++":                "cpp",
	"MS C++ 2017":           "cpp",
	"Mono C#":               "cs",
	"D":                     "d",
	"Go":                    "go",
	"Haskell":               "hs",
	"Kotlin":                "kt",
	"Ocaml":                 "ml",
	"Delphi":                "pas",
	"FPC":                   "pas",
	"PascalABC.NET":         "pas",
	"Perl":                  "pl",
	"PHP":                   "php",
	"Python 2":              "py",
	"Python 3":              "py",
	"PyPy 2":                "py",
	"PyPy 3":                "py",
	"Ruby":                  "rb",
	"Rust":                  "rs",
	"JavaScript":            "js",
	"Node.js":               "js",
	"Q#":                    "qs",
	"Java":                  "java",
	"Java 6":                "java",
	"Java 7":                "java",
	"Java 8":                "java",
	"Java 9":                "java",
	"Java 10":               "java",
	"Java 11":               "java",
	"Tcl":                   "tcl",
	"F#":                    "fs",
	"Befunge":               "bf",
	"Pike":                  "pike",
	"Io":                    "io",
	"Factor":                "factor",
	"Cobol":                 "cbl",
	"Secret_171":            "secret_171",
	"Ada":                   "adb",
	"FALSE":                 "f",
	"":                      "txt",
}

LangsExt language's ext

View Source
var ProblemTypes = [...]string{
	"contest",
	"gym",
	"group",
	"acmsguru",
}

ProblemTypes problem types

Functions

func Init

func Init(path, host, proxy 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) Clone

func (c *Client) Clone(handle, rootPath string, ac bool) (err error)

Clone all ac codes of all contests

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) Pull

func (c *Client) Pull(info Info, contestPath string, ac bool) (err error)

Pull pull all latest codes or ac codes

func (*Client) PullCode

func (c *Client) PullCode(URL, path, ext string, rename bool) (filename string, err error)

PullCode pull problem's code to path

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 (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 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 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 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