chiark / gitweb /
tests: fetch session document
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Feb 2021 22:10:52 +0000 (22:10 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Feb 2021 22:10:52 +0000 (22:10 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest.rs
apitest/at-otter.rs

index 3c23c47aed0627995d1c876a2d9d7bf16fe2da39..bbf4ec3f63a0956bb85fd650492e72120b9674cc 100644 (file)
@@ -26,6 +26,7 @@ pub use num_derive::FromPrimitive;
 pub use parking_lot::{Mutex, MutexGuard};
 pub use regex::{Captures, Regex};
 pub use serde::{Serialize, Deserialize};
+pub use serde_json::json;
 pub use structopt::StructOpt;
 pub use strum::{EnumIter, EnumProperty, IntoEnumIterator, IntoStaticStr};
 pub use void::Void;
index 35d7182fa4e0d0b7ae4ac3682696098ac0f6be40..20d2d8623d03693018103ed31772b1381ab49b06 100644 (file)
@@ -21,21 +21,30 @@ struct Player {
   url: String,
 }
 
-impl Player {
+impl Ctx {
   #[throws(AE)]
-  fn connect(&self) {
-    let resp = reqwest::blocking::get(&self.url)?;
+  fn connect_player(&self, player: &Player) {
+    let client = reqwest::blocking::Client::new();
+
+    let resp = client.get(&player.url).send()?;
     ensure_eq!(resp.status(), 200);
     let body = resp.text()?;
     let dom = scraper::Html::parse_document(&body);
     dbg!(&body, &dom);
-    let clid = dom
+    let ptoken = dom
       .select(&"#loading_token".try_into().unwrap())
       .next().unwrap()
-      .value().attr("data-ptoken");
-    dbg!(&clid);
+      .value().attr("data-ptoken")
+      .unwrap();
+    dbg!(&ptoken);
 
-    
+    let resp = client.post(&self.ds.subst("@url@/_/session/Portrait")?)
+      .json(&json!({ "ptoken": ptoken }))
+      .send()?;
+    ensure_eq!(resp.status(), 200);
+    let body = resp.text()?;
+    let dom = scraper::Html::parse_document(&body);
+    dbg!(&body, &dom);
   }
 }
 
@@ -55,7 +64,7 @@ impl Ctx {
 
     self.otter(&self.ds.ss("library-add @table@ wikimedia chess-blue-?")?)?;
 
-    self.alice.connect()?;
+    self.connect_player(&self.alice)?;
   }
 }