Advertisement
Guest User

Untitled

a guest
Mar 5th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.96 KB | None | 0 0
  1. use ipfsapi::IpfsApi;
  2. use std::str;
  3. use std::string::FromUtf8Error;
  4. use std::thread;
  5. use std::time::Duration;
  6.  
  7. fn main() {
  8.     let api = IpfsApi::new("127.0.0.1", 5001);
  9.  
  10.     while true {
  11.         let logs = api.log_tail()
  12.             .unwrap()
  13.             .filter(|x| x["Operation"].as_str() == Some("handleAddProvider"))
  14.             .filter(|x| x["Tags"]["key"].is_string());
  15.  
  16.         for log in logs {
  17.             let hash = log["Tags"]["key"].as_str().unwrap().to_string();
  18.             println!("{}", hash);
  19.  
  20.             thread::spawn(move || {
  21.                 parse_text(&hash)
  22.             });
  23.         }
  24.  
  25.         println!("Checked logs");
  26.         thread::sleep(Duration::from_millis(1000));
  27.     }
  28. }
  29.  
  30. fn parse_text(hash: &str) -> Result<(), FromUtf8Error> {
  31.     let api = IpfsApi::new("127.0.0.1", 5001);
  32.  
  33.     let data: Vec<u8> = api.cat(hash).unwrap().collect();
  34.     let s = String::from_utf8(data)?;
  35.  
  36.     println!("{}", s);
  37.  
  38.     Ok(())
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement