add rust bindings to get peers data
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
This commit is contained in:
		
							parent
							
								
									ab982e86c3
								
							
						
					
					
						commit
						ff20acc367
					
				| @ -886,6 +886,72 @@ pub fn main_load_recent_peers_sync() -> SyncReturn<String> { | ||||
|     SyncReturn("".to_string()) | ||||
| } | ||||
| 
 | ||||
| pub fn main_load_fav_peers_sync() -> SyncReturn<String> { | ||||
|     if !config::APP_DIR.read().unwrap().is_empty() { | ||||
|         let favs = get_fav(); | ||||
|         let mut recent = PeerConfig::peers(None); | ||||
|         let mut lan = config::LanPeers::load() | ||||
|             .peers | ||||
|             .iter() | ||||
|             .filter(|d| recent.iter().all(|r| r.0 != d.id)) | ||||
|             .map(|d| { | ||||
|                 ( | ||||
|                     d.id.clone(), | ||||
|                     SystemTime::UNIX_EPOCH, | ||||
|                     PeerConfig { | ||||
|                         info: PeerInfoSerde { | ||||
|                             username: d.username.clone(), | ||||
|                             hostname: d.hostname.clone(), | ||||
|                             platform: d.platform.clone(), | ||||
|                         }, | ||||
|                         ..Default::default() | ||||
|                     }, | ||||
|                 ) | ||||
|             }) | ||||
|             .collect(); | ||||
|         recent.append(&mut lan); | ||||
|         let peers: Vec<HashMap<&str, String>> = recent | ||||
|             .into_iter() | ||||
|             .filter_map(|(id, _, p)| { | ||||
|                 if favs.contains(&id) { | ||||
|                     Some(peer_to_map(id, p)) | ||||
|                 } else { | ||||
|                     None | ||||
|                 } | ||||
|             }) | ||||
|             .collect(); | ||||
| 
 | ||||
|         let data = HashMap::from([ | ||||
|             ("name", "load_fav_peers".to_owned()), | ||||
|             ( | ||||
|                 "peers", | ||||
|                 serde_json::ser::to_string(&peers).unwrap_or("".to_owned()), | ||||
|             ), | ||||
|         ]); | ||||
|         return SyncReturn(serde_json::ser::to_string(&data).unwrap_or("".to_owned())); | ||||
|     } | ||||
|     SyncReturn("".to_string()) | ||||
| } | ||||
| 
 | ||||
| pub fn main_load_lan_peers_sync() -> SyncReturn<String> { | ||||
|     let data = HashMap::from([ | ||||
|         ("name", "load_lan_peers".to_owned()), | ||||
|         ( | ||||
|             "peers", | ||||
|             serde_json::to_string(&get_lan_peers()).unwrap_or_default(), | ||||
|         ), | ||||
|     ]); | ||||
|     return SyncReturn(serde_json::ser::to_string(&data).unwrap_or("".to_owned())); | ||||
| } | ||||
| 
 | ||||
| pub fn main_load_ab_sync() -> SyncReturn<String> { | ||||
|     return SyncReturn(serde_json::to_string(&config::Ab::load()).unwrap_or_default()); | ||||
| } | ||||
| 
 | ||||
| pub fn main_load_group_sync() -> SyncReturn<String> { | ||||
|     return SyncReturn(serde_json::to_string(&config::Group::load()).unwrap_or_default()); | ||||
| } | ||||
| 
 | ||||
| pub fn main_load_recent_peers_for_ab(filter: String) -> String { | ||||
|     let id_filters = serde_json::from_str::<Vec<String>>(&filter).unwrap_or_default(); | ||||
|     let id_filters = if id_filters.is_empty() { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user