duolingo_query/
lib.rs

1//! # duolingo-query
2//!
3//! Grab user information on duolingo easily
4
5pub mod prelude;
6pub use crate::prelude::duolingo::*;
7
8#[cfg(test)]
9mod duolingo_tests {
10    use crate::Duolingo;
11
12    #[tokio::test]
13    async fn api_test() -> anyhow::Result<()> {
14        // Query information about a duolingo user
15        let duo = Duolingo::query("christi3").await?;
16
17        // Print information about users
18        println!("{}", "-".repeat(10));
19        println!("Streak: {}", duo.get_streak());
20        println!("Uid: {}", duo.get_id());
21
22        // Dates are unix timestamps
23        println!("Creation date: {}", duo.get_creation_date());
24
25        // Print information about the user's streaks
26        duo.get_courses().iter().for_each(|course| {
27            println!("{}", "-".repeat(10));
28            println!("Course: {}", course.get_title());
29            println!("Course XP: {}", course.get_xp());
30            println!("Course Lang: {}", course.get_learning_language());
31        });
32
33        println!("{}", "-".repeat(10));
34        println!("Total XP: {}", duo.get_total_xp());
35        println!("Username: {}", duo.get_username());
36        println!("Learning language: {}", duo.get_learning_language());
37        println!("Has Duolingo Plus: {}", duo.has_plus());
38        println!("{}", "-".repeat(10));
39
40        Ok(())
41    }
42}