mirror of
https://github.com/pcvolkmer/arsnova-client.git
synced 2025-04-19 11:06:51 +00:00
This prevents using the client without using guest login and without token.
ARSnova-client
An ARSnova live feedback client library
Usage
Initialize client and login
Create a client using and request guest login.
let client = Client::new("https://ars.particify.de/api").expect("client created");
let client = client.guest_login().await.expect("logged in");
Request room information
The room information contains the name, ID and the 8-digit short ID of the requested room.
let room_info = client.get_room_info("12345678").await.expect("room information");
Feedback
You can get feedback information in two different ways: Direct request and getting notified about changes.
Direct request
You can request (poll) the current feedback:
let feedback = client.get_feedback("12345678").await.expect("current feedback");
Getting notified
To handle feedback changes, you can use a handler function or forward the feedback to a channel.
Handle feedback changes using a function:
client.on_feedback_changed( & cli.room, FeedbackHandler::Fn(|feedback| {/*...*/})).await;
Forward feedback to a channel:
let (tx, rx) = tokio::sync::mpsc::channel::<Feedback>(10);
client.on_feedback_changed( & cli.room, FeedbackHandler::Sender(tx.clone())).await;
Example
See examples/arsnova-client-tui.rs
for a simple terminal-based feedback client
application.
arsnova-client-tui 23269388
Description
Languages
Rust
100%