#client #hungarian #command-line-tool #kreta

app rsfilc

An E-Kréta console client: cli and todo!("TUI"), written entirely in Rust from the ground up

20 releases

new 0.9.24 Feb 15, 2025
0.8.14 Jun 12, 2024

#90 in Command-line interface

Download history 73/week @ 2024-12-01 175/week @ 2024-12-08 29/week @ 2024-12-15 4/week @ 2024-12-22 19/week @ 2024-12-29 22/week @ 2025-01-05 9/week @ 2025-01-12 61/week @ 2025-01-26 63/week @ 2025-02-02 55/week @ 2025-02-09

185 downloads per month

MIT license

1MB
2.5K SLoC

RozsdásFilc: E-Kréta console client in Rust

E-Kréta is an awful Hungarian electronic school administration system

Magyar leírás

dependency status

Installation

  • EZ mode: grab a prebuilt binary from releases

if not available for your platform (file an issue), not a preferred method or feels a bit outdated:

  • Rust
  • cargo install --locked rsfilc

for latest, beta builds: cargo install --locked --git "https://codeberg.org/jark/rsfilc"

Shell completions:

Bash

Add this to the end of your config file (usually ~/.bashrc):

eval "$(rsfilc completions bash)"
Zsh

Add this to the end of your config file (usually ~/.zshrc):

eval "$(rsfilc completions zsh)"

For completions to work, the above line must be added after compcompletions is called. You may have to rebuild your completions cache by running rm ~/.zcompdump*; compcompletions.

Fish

Add this to the end of your config file (usually ~/.config/fish/config.fish):

rsfilc completions fish | source
PowerShell

Add this to the end of your config file (find it by running echo $profile in PowerShell):

Invoke-Expression (& { (rsfilc completions powershell | Out-String) })
Elvish

Add this to the end of your config file (usually ~/.elvish/rc.elv):

eval (rsfilc completions elvish | slurp)

Note RsFilc only supports elvish v0.18.0 and above.

Usage

general help: rsfilc --help
createing a new user: rsfilc user --create <USER_ID>

demo

Features

cross-platform: not tested thoroughly but should run on

  • linux
  • windows
  • macOS
  • android via Termux
  • everything else that Rust supports

CLI

  • basic usage of API
  • filtering what to show
  • multi-user feature
  • somehow rendering html that messages return
  • render html messages with w3m or lynx if possible
  • shell completions: [bash, zsh, fish, elvish, powershell]
  • logger: fern maybe
  • helpful crashes
  • caching everything so that life remains enjoyable
    • token
    • timetable
    • evals
    • user info
    • absences
    • announced tests
    • messages
    • note messages
  • encoding passwords
  • sending messages
  • class averages
  • fetching administrational processes
  • starting new administrational processes

TUI

  • multiple pages

    • evaluations
    • timetable
    • ...
  • beautifully displaying data

    • timetable in nice table
    • plotting evaluations
    • ...

Acknowledgements

  • dependencies used (although many of them wouldn't be necessary with a proper API, this is not the case with e-kréta.)
  • See ekreta-rs, which provides the API client for E-Kréta
  • Shell completions section got from zoxide

Dependencies

~11–20MB
~266K SLoC