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())
 | 
					    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 {
 | 
					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 = serde_json::from_str::<Vec<String>>(&filter).unwrap_or_default();
 | 
				
			||||||
    let id_filters = if id_filters.is_empty() {
 | 
					    let id_filters = if id_filters.is_empty() {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user