🚀 Unoffical .NET web-scrapping API for the kasiopea.matfyz.cz competition.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
KasiopeaApi.Tests
KasiopeaApi
tools
.gitignore
KasiopeaApi.sln
LICENSE
README-en.md
README.md
build.cake
build.ps1
build.sh
cake.config

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