jecnaapi

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2019 License: GPL-3.0 Imports: 13 Imported by: 0

README

Ječná API

Build Status

Neoficiální knihovna pro získání dat z portálu spsejecna.cz

Slovník:

  • ječnitel = učitel
  • ječňák = přihlášený uživatel

Funkce:

  • kontrola přihlašovacích údajů
  • seznam ječnitelů (i bez přihlášení)
  • informace o učiteli (bez přihlášení nejsou úplné)
  • známky
  • rozvrh
  • informace o ječňákovi
  • omluvný list
  • příchody a odchody
  • seznam posledních pěti suplarchů
  • parsing dat ze suplarchu
  • jednoduchý výpis všech datových struktur pro debugging

Známé chyby:

  • rozvrh neumí pracovat s hodinami, které mají více skupin žáků
  • u známek nefunguje rozdělení hodin (např. praxe a teorie), jsou smíchány k sobě
  • I přes veškerou snahu zblbuvzdornit parsing suplarchů a cest k nim, nemusí tyto funkce fungovat, ale v tomto případě za to může externí faktor - neschopnost dodržovat jednotnou cestu (např. značení školního roku) a obsah suplarchů (kompletní změna uspořádání náležitostí, nemyslím změnu tříd atd.) od jistého pana zástupce. Kdyby aspoň nezapomínal dávat suplarchy do novinek, tak bych nemusel dělat takovéto šaškárny.

Documentation

Overview

Podpurne funkce Jecna API pro http a html parsing

Hlavni soubor, neobsahuje skoro nic mimo konstanty siteURL pro pripad zmeneni domeny Jecny a zasadni funkce isLogged()

Tento soubor obsahuje funkce pro vypis vsech datovych typu, ktere vyflusnou funkce ze souboru get.go Jsou urceny spise pro debugging a demonstraci nez pouziti v "produkcnich" prostredich, holt lepsi neco nez nic

Tento soubor obsahuje datove struktury potrebne pro ostatni soubory

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MakeSuplovaniTextReadable

func MakeSuplovaniTextReadable(s string) string

Types

type Jecnak

type Jecnak struct {
	// zak
	// Login - login_name a login_pass musi byt vyplneny, pote IsLogged() pro ziskani sessionu nebo overeni loginu
	LoginName    string
	LoginPass    string
	LoginSession string
	LoginValid   bool
	// Osobni udaje - GetJecnakInfo()
	CeleJmeno           string
	Vek                 uint8
	Narozeniny          string
	MistoNarozeni       string
	Telefon             uint32
	TrvalaAdresaUlice   string
	TrvalaAdresaMesto   string
	TrvalaAdresaPSC     string
	SkupinyTrida        string
	CisloVTridnimVykazu uint8
	SoukromyEmail       string
	SkolniEmail         string
}

func (*Jecnak) GetJecnakInfo

func (jecnak *Jecnak) GetJecnakInfo()

Stahne informace o Jecnakovi (to co je vsechno videt na ty strance s ksichtem Jecnaka) a ulozi je do Jecnaka, na kterem je funkce volana Vyzaduje session token - Jecnak.isLogged()

func (*Jecnak) GetJecnitel

func (jecnak *Jecnak) GetJecnitel(jecnitelovaZkratka string) Jecnitel

Stahne informace o Jecniteli Pro ziskani nekterych udaju neni vyzadovan session token (muze byt spusteno rovnou bez vyplneni prihlaseni a IsLogged()), ale pro vsechny udaje je potreba

func (*Jecnak) GetOmluvnyList

func (jecnak *Jecnak) GetOmluvnyList() OmluvnyList

Stahne omluvny list pro toto pololeti Vyzaduje session token - Jecnak.isLogged()

func (*Jecnak) GetPrichody

func (jecnak *Jecnak) GetPrichody() Prichody

Stahne seznam vsech zaznamenanych prichodu v tomto pololeti Vyzaduje session token - Jecnak.isLogged()

func (*Jecnak) GetRozvrh

func (jecnak *Jecnak) GetRozvrh() Rozvrh

Stahne momentalne platny rozvrh Jecnaka Vyzaduje session token - Jecnak.isLogged()

func (*Jecnak) GetSeznamJecnitelu

func (jecnak *Jecnak) GetSeznamJecnitelu() SeznamJecnitelu

Stahne seznam Jecnitelu Teto funkci je uplne ukradeny, jestli ma session token, nebo ne, pac je to stejne verejne pristupny na webu

func (Jecnak) GetSuplarchAndPrint

func (jecnak Jecnak) GetSuplarchAndPrint(n uint8)

Stahne n-ty suplarch a zobrazi ho Demonstrace vyuziti Jecna API Vyzaduje platne vyplnene prihlasovaci udaje v Jecnakovi, a argument "n" Hodnota n = 0 znaci nejnovejsi suplarch, hodnota 1 predposledni, a tak dal az do 4 (limit seznamu suplarchu v Jecna API)

func (*Jecnak) GetSuplarchContent

func (jecnak *Jecnak) GetSuplarchContent(suplarch Suplarch) SuplarchObsah

Stahne obsah jednoho suplarchu Vyzaduje session token - Jecnak.isLogged()

func (*Jecnak) GetSuplarchSeznam

func (jecnak *Jecnak) GetSuplarchSeznam() SuplarchSeznam

Vygeneruje automaticky seznam peti poslednich suplarchu Melo by funkovat i pristi skolni roky, pokud nekdo az moc neprekope strukturu slozek suplarchu na portalu Vyzaduje session token - Jecnak.isLogged()

func (*Jecnak) GetZnamky

func (jecnak *Jecnak) GetZnamky() Znamky

Stahne vsechny znamky Jecnaka v tomto pololeti Vyzaduje session token - Jecnak.isLogged()

func (*Jecnak) IsLogged

func (jecnak *Jecnak) IsLogged() bool

Pokusi se o prihlaseni, zjisti, zda-li je platne, a ulozi session token do Jecnaka Je nutne zavolat pred vetsinou funkci ktera by na webu vyzadovala prihlaseni (napr. suplarchy) Pozor, session tokeny maji omezenou dobu platnosti, a taky ztraci platnost prihlasenim na portal z jineho zarizeni/programu Je nutne vyplnit pole LoginName a LoginPass v Jecnakovi pred volanim teto funkce

func (*Jecnak) Print

func (jecnak *Jecnak) Print(showPassword bool)

Vypise do konzole obsah datove struktury Jecnak Pokud chcete zobrazit i heslo k prihlaseni, nastavte argument "showPassword" na true

type Jecnitel

type Jecnitel struct {
	// ucitel
	Jmeno             string
	Zkratka           string
	UzivatelskeJmeno  string
	Email             string
	SoukromyEmail     string
	Telefon           string
	Kabinet           string
	TridniUcitel      string
	KonzultacniHodiny string
	ImgUrl            string
}

func (*Jecnitel) Print

func (jecnitel *Jecnitel) Print()

Vypise do konzole obsah datove struktury Jecnitel

type OmluvnyList

type OmluvnyList []omluvnyListRow

func (OmluvnyList) Print

func (omluvnyList OmluvnyList) Print()

Vypise do konzole obsah datove struktury OmluvnyList

type Prichody

type Prichody []prichodyRow

func (Prichody) Print

func (prichody Prichody) Print(printEmptyRows bool)

Vypise do konzole obsah datove struktury Prichody Pokud chcete vypsat i dny, kdy nebyl zaznamenan zadny prichod, nastavte argument "printEmptyRows" na true

type Rozvrh

type Rozvrh struct {
	Casy    []RozvrhCas
	Pondeli []RozvrhHodina
	Utery   []RozvrhHodina
	Streda  []RozvrhHodina
	Ctvrtek []RozvrhHodina
	Patek   []RozvrhHodina
}

func (*Rozvrh) Print

func (rozvrh *Rozvrh) Print()

Vypise do konzole obsah datove struktury Rozvrh Je to trosku vizualne rozbity, protoze je mi to nejak jedno, ale obsah se vypisuje spravne

type RozvrhCas

type RozvrhCas struct {
	CisloHodiny string
	Doba        string
}

type RozvrhHodina

type RozvrhHodina struct {
	UcitelZkratka string
	ZkratkaHodiny string
	Ucebna        string
	Trida         string
	Skupina       string
}

type SeznamJecnitelu

type SeznamJecnitelu []SeznamJecniteluRow

func (SeznamJecnitelu) Print

func (seznamJecnitelu SeznamJecnitelu) Print()

Vypise do konzole obsah datove struktury SeznamJecnitelu

type SeznamJecniteluRow

type SeznamJecniteluRow struct {
	Jmeno   string
	Zkratka string
}

type Suplarch

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

type SuplarchObsah

type SuplarchObsah []SuplarchTrida

func (SuplarchObsah) Print

func (suplarchObsah SuplarchObsah) Print(a interface{})

Vypise do konzole obsah datove struktury SuplarchObsah Pokud je do argumentu vlozen Jecnak, automaticky vypise pouze suplovani jeho tridy Pokud je do nej vlozen typ int (pozor, ne napr. int64 nebo uint8) nastavuje se tim uroven podrobnosti vypisu Mozne hodnoty intu: 1, 2 Pokud je vlozena hodnota vyssi ci nizsi, automaticky se vybere ta nejblizsi

type SuplarchSeznam

type SuplarchSeznam []Suplarch

func (SuplarchSeznam) Print

func (suplarchSeznam SuplarchSeznam) Print()

Vypise do konzole obsah datove struktury SuplarchSeznam

type SuplarchTrida

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

type Znamky

type Znamky []znamkyPredmet

func (Znamky) Print

func (znamky Znamky) Print(details uint8)

Vypise do konzole obsah datove struktury Znamky Do argumentu "details" lze zadat uroven podrobnosti vypisu Mozne hdonoty: 1, 2, 3 V pripade zadani jine hodnoty bude pouzita ta nejblizsi mozna k zadane

Jump to

Keyboard shortcuts

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