#sis #moodle #api-bindings #logging #eelu-sis-login #eelu-sis-moodle #eelu-sis

sis-login

一个简单的crate,用于登录SIS系统并执行各种操作,例如(获取moodle会话链接),无需打开浏览器

12个版本

0.3.1 2023年12月17日
0.3.0 2023年11月12日
0.2.8 2023年10月7日
0.2.6 2023年8月22日
0.1.0 2023年4月8日

#7 in #moodle


用于 eelu-login

MIT/Apache

26KB
272

Lqth logo

一个用于登录sis系统和获取moodle会话的库

crates.io docs.rs downloads license

示例

use sis_login::Sis;
use sis_login::sis::types::user_type::UserType;

#[tokio::main]
async fn main() {
   let username = std::env::var("SIS_USERNAME").unwrap();
   let password = std::env::var("SIS_PASSWORD").unwrap();

   // Crate Sis instance
   let headers_builder = sis_login::headers_builder::DefaultHeadersBuilder::new(
      "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0".to_string(),
     "https://sis.eelu.edu.eg/static/PortalStudent.html".to_string()
  );

   let login_url: &str = "https://sis.eelu.edu.eg/studentLogin";
   let get_moodle_session_url: &str = "https://sis.eelu.edu.eg/getJCI";
   let mut sis = Sis::new(login_url, get_moodle_session_url, &headers_builder);

  // Login to sis
   match sis.login(&username, &password, UserType::Student).await {
        Ok(_) => {
            println!("Login Success");
           // Get moodle session link
          let Ok(moodle_session_link) = sis.get_moodle_session_link().await else { panic!("Failed to get moodle session link") };
          println!("Moodle session link: {}", moodle_session_link);
       },
        Err(err) => println!("Login Failed: {}", err),
    }
}

特性

  • debug - 启用调试日志,您仍需使用像env_logger这样的日志记录器并在您的代码中初始化它

贡献

我很乐意接受任何贡献,但请先阅读CONTRIBUTING.md指南,以避免在我们的时间上浪费一些不必要的事情。

主要关键词包括:签名提交约定式提交无emoji线性历史PR不应该有超过三个提交,大多数情况下

许可证

本项目受MIT许可证许可。

依赖关系图

deps graph

cargo-depgraph生成

当前版本:0.3.0

依赖

~13–26MB
~512K SLoC