Documentation
¶
Index ¶
- func LatestSemester(periods []Period) string
- type AcademicData
- type BoletimEntry
- type BoletimNota
- type CHBlock
- type Client
- func (c *Client) GetAcademicData() (*AcademicData, error)
- func (c *Client) GetBoletim(ano, periodo int) ([]BoletimEntry, error)
- func (c *Client) GetCompletionReqs() (*CompletionReqs, error)
- func (c *Client) GetDiaries(semestre string) ([]Diary, error)
- func (c *Client) GetPeriods() ([]Period, error)
- func (c *Client) GetUnreadMessages() (*MessagesResponse, error)
- func (c *Client) Login(matricula, senha string) (*TokenPair, error)
- type CompletionReqs
- type DayBlock
- type Diary
- func (d Diary) AbsenceUsagePct() float64
- func (d Diary) CargaHoraria() int
- func (d Diary) CargaHorariaCumprida() int
- func (d Diary) DayBlocks() map[string]DayBlock
- func (d Diary) Frequencia() float64
- func (d Diary) MaxFaltas() int
- func (d Diary) Nome() string
- func (d Diary) NumeroFaltas() int
- func (d Diary) PodeEFaltar() int
- func (d Diary) ProfNames() string
- func (d Diary) SalaShort() string
- type DiaryDisciplina
- type DiaryHorario
- type DiaryLocal
- type Media
- type Message
- type MessagesResponse
- type Note
- type PaginatedBoletim
- type PaginatedDiaries
- type PaginatedPeriods
- type Period
- type Professor
- type TokenPair
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LatestSemester ¶
LatestSemester returns the most recent semestre string like "2024.1"
Types ¶
type AcademicData ¶
type AcademicData struct {
Ingresso string `json:"ingresso"`
EmailAcademico string `json:"email_academico"`
PeriodoReferencia int `json:"periodo_referencia"`
IRA string `json:"ira"` // "81,05" — comma decimal
Curso string `json:"curso"`
Matriz string `json:"matriz"`
QtdPeriodos int `json:"qtd_periodos"`
Situacao string `json:"situacao"`
}
Academic data — from /api/ensino/meus-dados-aluno/
func (AcademicData) CursoNome ¶
func (a AcademicData) CursoNome() string
Short course name (removes code prefix and campus suffix)
func (AcademicData) IRAFloat ¶
func (a AcademicData) IRAFloat() float64
type BoletimEntry ¶ added in v1.0.2
type BoletimEntry struct {
CodigoDiario string `json:"codigo_diario"`
Disciplina string `json:"disciplina"`
CargaHoraria int `json:"carga_horaria"`
CargaHorariaCumprida int `json:"carga_horaria_cumprida"`
NumeroFaltas int `json:"numero_faltas"`
PercentualCargaHorariaFrequentada float64 `json:"percentual_carga_horaria_frequentada"`
Situacao string `json:"situacao"`
QuantidadeAvaliacoes int `json:"quantidade_avaliacoes"`
NotaEtapa1 BoletimNota `json:"nota_etapa_1"`
NotaEtapa2 BoletimNota `json:"nota_etapa_2"`
NotaEtapa3 BoletimNota `json:"nota_etapa_3"`
NotaEtapa4 BoletimNota `json:"nota_etapa_4"`
MediaDisciplina *float64 `json:"media_disciplina"`
NotaAvaliacaoFinal BoletimNota `json:"nota_avaliacao_final"`
MediaFinalDisciplina *float64 `json:"media_final_disciplina"`
}
type BoletimNota ¶ added in v1.0.2
type CHBlock ¶
type CHBlock struct {
CHEsperada int `json:"ch_esperada"`
CHCumprida int `json:"ch_cumprida"`
CHPendente int `json:"ch_pendente"`
}
Completion requirements — from /api/ensino/requisitos-conclusao/
type Client ¶
type Client struct {
AccessToken string
RefreshToken string
OnRefresh func(access, refresh string)
// contains filtered or unexported fields
}
func (*Client) GetAcademicData ¶
func (c *Client) GetAcademicData() (*AcademicData, error)
func (*Client) GetBoletim ¶ added in v1.0.2
func (c *Client) GetBoletim(ano, periodo int) ([]BoletimEntry, error)
func (*Client) GetCompletionReqs ¶
func (c *Client) GetCompletionReqs() (*CompletionReqs, error)
func (*Client) GetPeriods ¶
func (*Client) GetUnreadMessages ¶
func (c *Client) GetUnreadMessages() (*MessagesResponse, error)
type CompletionReqs ¶
type CompletionReqs struct {
PercentualCumprida string `json:"percentual_cumprida"` // "20.97"
Obrigatorios CHBlock `json:"regulares_obrigatorios"`
Optativos CHBlock `json:"regulares_optativos"`
}
func (CompletionReqs) Percentual ¶
func (c CompletionReqs) Percentual() float64
type Diary ¶
type Diary struct {
ID int `json:"id"`
Disciplina DiaryDisciplina `json:"disciplina"`
Professores []Professor `json:"professores"`
Horarios []DiaryHorario `json:"horarios"`
Local *DiaryLocal `json:"local"`
// Boletim é preenchido após merge com /api/ensino/meu-boletim/
Boletim *BoletimEntry `json:"-"`
}
func MergeBoletim ¶ added in v1.0.2
func MergeBoletim(diaries []Diary, boletim []BoletimEntry) []Diary
MergeBoletim faz o merge dos dados do boletim nos diários pelo codigo_diario
func (Diary) AbsenceUsagePct ¶ added in v1.0.2
AbsenceUsagePct returns how much of the absence budget has been used (0-100+)
func (Diary) CargaHoraria ¶ added in v1.0.2
func (Diary) CargaHorariaCumprida ¶ added in v1.0.2
func (Diary) Frequencia ¶ added in v1.0.2
func (Diary) NumeroFaltas ¶ added in v1.0.2
func (Diary) PodeEFaltar ¶
type DiaryDisciplina ¶
type DiaryDisciplina struct {
ID int `json:"id"`
Descricao string `json:"descricao"`
Sigla string `json:"sigla"`
CHTotal int `json:"ch_total_aula"`
CHCumprida int `json:"ch_cumprida_aula"`
QtdFaltas int `json:"qtd_faltas"`
Frequencia float64 `json:"frequencia"`
Notas []Note `json:"notas"`
Medias []Media `json:"medias"`
}
type DiaryHorario ¶
type DiaryHorario struct {
Dia string `json:"dia"` // "Terça"
Horario string `json:"horario"` // "13:00 - 13:45"
}
Diary structures — from /api/ensino/diarios/{semestre}/
func (DiaryHorario) End ¶
func (h DiaryHorario) End() string
func (DiaryHorario) Start ¶
func (h DiaryHorario) Start() string
type DiaryLocal ¶
type Message ¶
type Message struct {
ID int `json:"id"`
Assunto string `json:"assunto"`
Data string `json:"data"`
Remetente string `json:"remetente"`
}
Messages
type MessagesResponse ¶
type PaginatedBoletim ¶ added in v1.0.2
type PaginatedBoletim struct {
Results []BoletimEntry `json:"results"`
Count int `json:"count"`
}
type PaginatedDiaries ¶
type PaginatedPeriods ¶
type Period ¶
Periods — paginated
func LatestPeriod ¶ added in v1.0.2
LatestPeriod returns the most recent Period struct
Click to show internal directories.
Click to hide internal directories.