Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

README.md

Kasiopea API

CZ | EN

Discord

NuGet NuGet AppVeyor branch GitHub issues Trello license

Neoficiální .NET web-scraping API pro soutěž Kasiopea.

Install-Package KasiopeaApi

Pomocí tohoto API můžeš

  • Získat vstup, odeslat svůj výstup a zjistit úspěšnost (success/fail)
  • Číst názvy a zadání úloh (i ze sekce Archiv)
  • Číst a iterovat tabulku výsledků
  • Uspokojit svou OCD

Jak začít

Instalace

Nejjednodušší je použít Package Manager Console ve Visual Studiu. Spusť Install-Package KasiopeaApi

Jelikož používáme SemVer 2.0.0, musíš mít alespoň Visual Studio 2017 (verze 15.3) nebo NuGet client 4.3.0 a výš.

Pokud nepoužíváš Visual Studio, musíš mít NuGet console a spustit nuget install KasiopeaApi -PreRelease ve složce s projektem.

Použití

Nejrychlejší způsob, jak začít, je použít relativní URL na úlohu, kterou řešíš. Například /archiv/2016/doma/D/ odkazuje na tuto úlohu.

Příklad

var kasiopeaInterface = new KasiopeaInterface();
var loginSucceeded = await kasiopeaInterface.Login("email", "password");
var task = await KasiopeaTask.FromUrl("/archiv/2016/doma/D/");
var version = KasiopeaTask.InputVersion.Easy; // nebo InputVersion.Hard (těžší vstup)
var reader = await task.GetInputReaderAsync(version, kasiopeaInterface);
var writer = task.GetOutputWriter();

// čti vstup pomocí
reader.ReadLine();
// piš výstup pomocí
writer.WriteLine();
// nebo vyčisti výstup a začni odznovu
task.ClearStreamWriter();

// odešli výstup a zkontroluj KasiopeaTask.OutputCheckResult (Success, Fail, Timeout, MissingFile, Unknown)
var result = await task.PostOutputAsync(version, kasiopeaInterface);
if(result == KasiopeaTask.OutputCheckResult.Success)
	Console.WriteLine("Hurá");
else
	Console.WriteLine(result.ToString());
Jak použít await ze vstupního bodu aplikace?
static void Main() {
	try {
		MainAsync().Wait();
	}
	catch(Exception e) {
		while(e is AggregateException) e = e.InnerException;
		throw e;
	}
}
static async Task MainAsync() {
	// do your async stuff
}

Od C# 7.1 lze označit vstupní bod jako asynchronní metodu.

static async Task Main() {
	// do your async stuff
}

Pokud máš jakékoli dotazy, zeptej se na našem Discord serveru.

Závislosti

Pre-release

Pokud rád žiješ na hraně, instaluj pre-release verzi. Obsahuje nejnovější binárky, které ještě nebyly označeny za stabilní 😱

Install-Package KasiopeaApi -IncludePrerelease

Licence

MIT licence

About

🚀 Unoffical .NET web-scraping API for the kasiopea.matfyz.cz competition.

Topics

Resources

License

Packages

No packages published
You can’t perform that action at this time.