diff --git a/src/plugins/leetcode.rs b/src/plugins/leetcode.rs index 6463ff1..5f0106f 100644 --- a/src/plugins/leetcode.rs +++ b/src/plugins/leetcode.rs @@ -37,12 +37,20 @@ impl LeetCode { /// New LeetCode client pub fn new() -> Result { let conf = config::Config::locate()?; - let cookies = conf.cookies.clone(); + let (cookie, csrf) = if conf.cookies.csrf.is_empty() || conf.cookies.session.is_empty() { + let cookies = super::chrome::cookies()?; + (cookies.to_string(), cookies.csrf) + } else { + ( + conf.cookies.clone().to_string(), + conf.cookies.clone().csrf, + ) + }; let default_headers = LeetCode::headers( HeaderMap::new(), vec![ - ("Cookie", cookies.to_string().as_str()), - ("x-csrftoken", &cookies.csrf), + ("Cookie", &cookie), + ("x-csrftoken", &csrf), ("x-requested-with", "XMLHttpRequest"), ("Origin", &conf.sys.urls.base), ], diff --git a/src/plugins/mod.rs b/src/plugins/mod.rs index 9b2d903..0102ca0 100644 --- a/src/plugins/mod.rs +++ b/src/plugins/mod.rs @@ -8,6 +8,6 @@ //! // FIXME: Read cookies from local storage. (issue #122) -// mod chrome; +mod chrome; mod leetcode; pub use leetcode::LeetCode;