szkopul_client

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2023 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const ErrorFetchingProblemSiteFailed = `fetching problem site failed`
View Source
const ErrorIDNotFound = `problem id not found`
View Source
const ErrorNeedArchive = "you have to specify the archive"

ErrorNeedSubmissionID error

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

ErrorNeedContestID error

View Source
const ErrorNeedProblemAlias = "you have to specify the Problem alias"

ErrorNeedProblemID 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 ErrorParsingProblemsFailed = `parsing some problems failed`
View Source
const ErrorParsingSamples = `parsing samples failed`
View Source
const ErrorServiceUnavailable = `service unavailable`
View Source
const PdfStatementProblemURL = `/problemset/problem/%v/statement`
View Source
const SiteStatementProblemURL = `/problemset/problem/%v/site/?key=statement`
View Source
const StandardIOReg = `(\nKomunikacja\n|\nOpis interfejsu\s+)`
View Source
const SubmitIDRegStr = `\d+`

Variables

View Source
var Archives = [...]string{
	"OI",
}
View Source
var ErrorNotLogged = "Not logged in"

ErrorNotLogged not logged in

Functions

func AesDecrypt

func AesDecrypt(cipherIn []byte, key, iv []byte) ([]byte, error)

func GetAliasAndName added in v0.4.0

func GetAliasAndName(name string) (alias string, problemName string)

func Init

func Init(path, host, proxy string)

Init initialize

func ProblemURL added in v0.4.0

func ProblemURL(host, problemID string) string

Types

type Info

type Info struct {
	Archive      string `json:"archive"`
	ContestID    string `json:"contest_id"`
	StageID      string `json:"stage_id"`
	ProblemAlias string `json:"problem_alias"`
	ProblemID    string `json:"problem_id"`
	SubmissionID string `json:"submission_id"`
	RootPath     string
}

Info information

func (*Info) APISubmitURL

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

APISubmitURL submit url

func (*Info) Hint

func (info *Info) Hint() string

Hint hint text

func (*Info) MySubmissionURL

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

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 added in v0.4.0

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

func (*Info) ProblemURL

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

ProblemURL parse problem 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 added in v0.4.0

type StatisInfo struct {
	ID      string
	Name    string
	Alias   string
	Stage   string
	Contest string
	Points  string
}

func (*StatisInfo) ParsePoint added in v0.4.1

func (prob *StatisInfo) ParsePoint() string

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

func (s *Submission) ParsePoints() string

ParsePoints formatter

func (*Submission) ParseStatus

func (s *Submission) ParseStatus() string

type SzkopulClient

type SzkopulClient struct {
	Jar            *cookiejar.Jar `json:"cookies"`
	Username       string         `json:"handle"`
	Password       string         `json:"password"`
	LastSubmission *Info          `json:"last_submission"`
	// contains filtered or unexported fields
}

SzkopulClient szkopul client

var Instance *SzkopulClient

Instance global client

func (*SzkopulClient) ConfigLogin

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

ConfigLogin configure handle and password

func (*SzkopulClient) DecryptPassword

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

DecryptPassword get real password

func (*SzkopulClient) GetCsrf

func (c *SzkopulClient) GetCsrf(URL string) (csrf string, err error)

func (*SzkopulClient) Login

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

Login codeforces with handler and password

func (*SzkopulClient) Parse added in v0.4.0

func (c *SzkopulClient) Parse(info Info, db *sql.DB) (problems []StatisInfo, paths []string, err error)

func (*SzkopulClient) ParseProblem added in v0.4.0

func (c *SzkopulClient) ParseProblem(host, problemID, path string, mu *sync.Mutex) (name string, alias string, samples int, standardIO bool, perf util.Performance, err error)

func (*SzkopulClient) Statis added in v0.4.0

func (c *SzkopulClient) Statis(info Info) (problems []StatisInfo, perf util.Performance, err error)

func (*SzkopulClient) Submit

func (c *SzkopulClient) Submit(info Info, sourcePath string) (err error)

func (*SzkopulClient) WatchSubmission

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

WatchSubmission n is the number of submissions

Jump to

Keyboard shortcuts

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