mirror of
https://github.com/valmojr/armatak.git
synced 2026-06-13 16:03:31 +00:00
finished local address extension method
This commit is contained in:
@@ -5,7 +5,6 @@ use std::sync::mpsc::{self, Receiver, Sender};
|
|||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use ws::{listen, Message, Result as WsResult};
|
use ws::{listen, Message, Result as WsResult};
|
||||||
use qrcode::{render::unicode::{self}, QrCode};
|
|
||||||
|
|
||||||
use crate::structs::{IntoMessage, LocationPayload};
|
use crate::structs::{IntoMessage, LocationPayload};
|
||||||
|
|
||||||
@@ -122,9 +121,7 @@ pub fn stop() -> &'static str {
|
|||||||
"Stopping WebSocket server"
|
"Stopping WebSocket server"
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn local_qrcode() -> Vec<String> {
|
pub fn local_address() -> String {
|
||||||
let mut result = Vec::<String>::new();
|
|
||||||
|
|
||||||
fn get_local_ip() -> Result<IpAddr, String> {
|
fn get_local_ip() -> Result<IpAddr, String> {
|
||||||
let socket = UdpSocket::bind("0.0.0.0:0").map_err(|e| e.to_string())?;
|
let socket = UdpSocket::bind("0.0.0.0:0").map_err(|e| e.to_string())?;
|
||||||
socket
|
socket
|
||||||
@@ -136,24 +133,14 @@ pub fn local_qrcode() -> Vec<String> {
|
|||||||
.map_err(|e| e.to_string())
|
.map_err(|e| e.to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn draw_qrcode(data: String) -> String {
|
|
||||||
let code = QrCode::new(data).expect("Failed to generate QR Code");
|
|
||||||
let ascii_qr = code.render::<unicode::Dense1x2>().quiet_zone(false).build();
|
|
||||||
return ascii_qr.replace("\n", ",")
|
|
||||||
}
|
|
||||||
|
|
||||||
let parsed_data = get_local_ip();
|
let parsed_data = get_local_ip();
|
||||||
|
|
||||||
match parsed_data {
|
match parsed_data {
|
||||||
Ok(ip) => {
|
Ok(ip) => {
|
||||||
result.push(draw_qrcode(ip.to_string()));
|
return format!("ws://{}:4152", ip.to_string());
|
||||||
result.push(ip.to_string())
|
|
||||||
},
|
},
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
result.push("not provided".to_string());
|
return "not provided".to_string();
|
||||||
result.push("not provided".to_string());
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return result;
|
|
||||||
}
|
|
||||||
@@ -29,7 +29,7 @@ pub fn init() -> Extension {
|
|||||||
Extension::build()
|
Extension::build()
|
||||||
.command("start", commands::start)
|
.command("start", commands::start)
|
||||||
.command("stop", commands::stop)
|
.command("stop", commands::stop)
|
||||||
.command("local_ip", commands::local_qrcode)
|
.command("local_ip", commands::local_address)
|
||||||
.command("message", commands::message)
|
.command("message", commands::message)
|
||||||
.command("location", commands::location)
|
.command("location", commands::location)
|
||||||
.finish()
|
.finish()
|
||||||
|
|||||||
Reference in New Issue
Block a user