Compare commits
No commits in common. "main" and "1.6.18033" have entirely different histories.
10 changed files with 107 additions and 137 deletions
125
Cargo.lock
generated
125
Cargo.lock
generated
|
@ -292,9 +292,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.9.4"
|
||||
version = "2.9.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
|
||||
checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29"
|
||||
|
||||
[[package]]
|
||||
name = "block-buffer"
|
||||
|
@ -346,11 +346,10 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.2.35"
|
||||
version = "1.2.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3"
|
||||
checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f"
|
||||
dependencies = [
|
||||
"find-msvc-tools",
|
||||
"jobserver",
|
||||
"libc",
|
||||
"shlex",
|
||||
|
@ -398,9 +397,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.47"
|
||||
version = "4.5.45"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931"
|
||||
checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
|
@ -408,9 +407,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.5.47"
|
||||
version = "4.5.44"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6"
|
||||
checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
|
@ -420,9 +419,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap_derive"
|
||||
version = "4.5.47"
|
||||
version = "4.5.45"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c"
|
||||
checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
|
@ -563,9 +562,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deranged"
|
||||
version = "0.5.3"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc"
|
||||
checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
|
||||
dependencies = [
|
||||
"powerfmt",
|
||||
]
|
||||
|
@ -713,12 +712,6 @@ dependencies = [
|
|||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "find-msvc-tools"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650"
|
||||
|
||||
[[package]]
|
||||
name = "fnv"
|
||||
version = "1.0.7"
|
||||
|
@ -748,9 +741,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
|||
|
||||
[[package]]
|
||||
name = "form_urlencoded"
|
||||
version = "1.2.2"
|
||||
version = "1.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
|
||||
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
|
||||
dependencies = [
|
||||
"percent-encoding",
|
||||
]
|
||||
|
@ -899,7 +892,7 @@ dependencies = [
|
|||
"cfg-if",
|
||||
"libc",
|
||||
"r-efi",
|
||||
"wasi 0.14.3+wasi-0.2.4",
|
||||
"wasi 0.14.2+wasi-0.2.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1210,9 +1203,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
|||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "1.1.0"
|
||||
version = "1.0.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
|
||||
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
|
||||
dependencies = [
|
||||
"idna_adapter",
|
||||
"smallvec",
|
||||
|
@ -1231,9 +1224,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "2.11.0"
|
||||
version = "2.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9"
|
||||
checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661"
|
||||
dependencies = [
|
||||
"equivalent",
|
||||
"hashbrown",
|
||||
|
@ -1266,9 +1259,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "io-uring"
|
||||
version = "0.7.10"
|
||||
version = "0.7.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b"
|
||||
checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cfg-if",
|
||||
|
@ -1323,9 +1316,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
|||
|
||||
[[package]]
|
||||
name = "jobserver"
|
||||
version = "0.1.34"
|
||||
version = "0.1.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
|
||||
checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
|
||||
dependencies = [
|
||||
"getrandom 0.3.3",
|
||||
"libc",
|
||||
|
@ -1333,7 +1326,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "jocalsend"
|
||||
version = "1.6.1803398"
|
||||
version = "1.6.18033"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"axum-server",
|
||||
|
@ -1468,9 +1461,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.28"
|
||||
version = "0.4.27"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
|
||||
checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
|
||||
|
||||
[[package]]
|
||||
name = "lru"
|
||||
|
@ -1751,9 +1744,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "percent-encoding"
|
||||
version = "2.3.2"
|
||||
version = "2.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
|
||||
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-lite"
|
||||
|
@ -1775,9 +1768,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
|||
|
||||
[[package]]
|
||||
name = "potential_utf"
|
||||
version = "0.1.3"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a"
|
||||
checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
|
||||
dependencies = [
|
||||
"zerovec",
|
||||
]
|
||||
|
@ -1940,9 +1933,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.11.2"
|
||||
version = "1.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912"
|
||||
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
|
@ -1952,9 +1945,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "regex-automata"
|
||||
version = "0.4.10"
|
||||
version = "0.4.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6"
|
||||
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
|
@ -1963,9 +1956,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.8.6"
|
||||
version = "0.8.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
|
||||
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
||||
|
||||
[[package]]
|
||||
name = "reqwest"
|
||||
|
@ -2429,31 +2422,31 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.21.0"
|
||||
version = "3.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e"
|
||||
checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
|
||||
dependencies = [
|
||||
"fastrand",
|
||||
"getrandom 0.3.3",
|
||||
"once_cell",
|
||||
"rustix 1.0.8",
|
||||
"windows-sys 0.60.2",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "2.0.16"
|
||||
version = "2.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
|
||||
checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "2.0.16"
|
||||
version = "2.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
|
||||
checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -2462,9 +2455,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.3.43"
|
||||
version = "0.3.41"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031"
|
||||
checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
|
||||
dependencies = [
|
||||
"deranged",
|
||||
"num-conv",
|
||||
|
@ -2475,9 +2468,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "time-core"
|
||||
version = "0.1.6"
|
||||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
|
||||
checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
|
||||
|
||||
[[package]]
|
||||
name = "tinystr"
|
||||
|
@ -2800,14 +2793,13 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
|
|||
|
||||
[[package]]
|
||||
name = "url"
|
||||
version = "2.5.7"
|
||||
version = "2.5.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
|
||||
checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
|
||||
dependencies = [
|
||||
"form_urlencoded",
|
||||
"idna",
|
||||
"percent-encoding",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2851,11 +2843,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.14.3+wasi-0.2.4"
|
||||
version = "0.14.2+wasi-0.2.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95"
|
||||
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
|
||||
dependencies = [
|
||||
"wit-bindgen",
|
||||
"wit-bindgen-rt",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3201,18 +3193,21 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
|
|||
|
||||
[[package]]
|
||||
name = "winnow"
|
||||
version = "0.7.13"
|
||||
version = "0.7.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
|
||||
checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wit-bindgen"
|
||||
version = "0.45.0"
|
||||
name = "wit-bindgen-rt"
|
||||
version = "0.39.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814"
|
||||
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "writeable"
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
[package]
|
||||
name = "jocalsend"
|
||||
# 1.61803398874989484
|
||||
#----------^
|
||||
version = "1.6.1803398"
|
||||
#--------^
|
||||
version = "1.6.18033"
|
||||
edition = "2024"
|
||||
rust-version = "1.89"
|
||||
authors = ["Joe Ardent <code@ardent.nebcorp.com>"]
|
||||
keywords = ["p2p", "localsend", "tui", "linux"]
|
||||
description = "A TUI for LocalSend"
|
||||
|
|
|
@ -13,10 +13,6 @@ Install with `cargo install jocalsend` (requires [Rust](https://rustup.rs/)); te
|
|||
will probably work on Macs but if you're on a Mac, you probably have AirDrop. It's also available in
|
||||
nixpkgs, and so if you're a NixOS user, `nix-shell -p jocalsend` will do what you expect.
|
||||
|
||||
## BLOG POSTS!
|
||||
- [Announcement post](https://proclamations.nebcorp-hias.com/sundries/jocalsend/)
|
||||
- [Design and development](https://proclamations.nebcorp-hias.com/rnd/jocalsend-development/)
|
||||
|
||||
## Capabilities and screenshots
|
||||
|
||||
As with the official app, JocalSend can be used to send and receive files and text from other
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.61803398
|
||||
1.618033
|
||||
|
|
|
@ -29,8 +29,8 @@ impl App {
|
|||
_ => match mode {
|
||||
CurrentScreen::Main | CurrentScreen::Help => {}
|
||||
CurrentScreen::Logging => match code {
|
||||
KeyCode::Left => change_log_level(LogDelta::Down),
|
||||
KeyCode::Right => change_log_level(LogDelta::Up),
|
||||
KeyCode::Left => super::change_log_level(-1),
|
||||
KeyCode::Right => super::change_log_level(1),
|
||||
_ => {}
|
||||
},
|
||||
CurrentScreen::Receiving => match code {
|
||||
|
@ -325,17 +325,3 @@ impl App {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||
enum LogDelta {
|
||||
Up,
|
||||
Down,
|
||||
}
|
||||
|
||||
fn change_log_level(delta: LogDelta) {
|
||||
let level = match delta {
|
||||
LogDelta::Up => log::max_level().increment_severity(),
|
||||
LogDelta::Down => log::max_level().decrement_severity(),
|
||||
};
|
||||
log::set_max_level(level);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ use crossterm::event::{Event, EventStream, KeyEventKind};
|
|||
use futures::{FutureExt, StreamExt};
|
||||
use jocalsend::{JocalEvent, JocalService, ReceiveRequest, error::Result};
|
||||
use julid::Julid;
|
||||
use log::LevelFilter;
|
||||
use ratatui::{
|
||||
Frame,
|
||||
widgets::{ListState, TableState},
|
||||
|
@ -84,6 +85,18 @@ impl App {
|
|||
|
||||
pub async fn handle_events(&mut self) -> Result<()> {
|
||||
tokio::select! {
|
||||
terminal_event = self.terminal_events.next().fuse() => {
|
||||
if let Some(Ok(evt)) = terminal_event {
|
||||
match evt {
|
||||
Event::Key(key)
|
||||
if key.kind == KeyEventKind::Press
|
||||
=> self.handle_key_event(key, evt).await,
|
||||
Event::Mouse(_) => {}
|
||||
Event::Resize(_, _) => {}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
jocal_event = self.jocal_event_rx.recv().fuse() => {
|
||||
if let Some(event) = jocal_event {
|
||||
log::trace!("got JocalEvent {event:?}");
|
||||
|
@ -102,19 +115,6 @@ impl App {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
terminal_event = self.terminal_events.next().fuse() => {
|
||||
if let Some(Ok(evt)) = terminal_event {
|
||||
match evt {
|
||||
Event::Key(key)
|
||||
if key.kind == KeyEventKind::Press
|
||||
=> self.handle_key_event(key, evt).await,
|
||||
Event::Mouse(_) => {}
|
||||
Event::Resize(_, _) => {}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
@ -143,3 +143,13 @@ impl App {
|
|||
frame.render_widget(self, frame.area());
|
||||
}
|
||||
}
|
||||
|
||||
fn change_log_level(delta: isize) {
|
||||
let level = log::max_level() as isize;
|
||||
let max = log::LevelFilter::max() as isize;
|
||||
let level = (level + delta).clamp(0, max) as usize;
|
||||
// levelfilter is repr(usize) so this is safe
|
||||
let level = unsafe { std::mem::transmute::<usize, LevelFilter>(level) };
|
||||
|
||||
log::set_max_level(level);
|
||||
}
|
||||
|
|
|
@ -192,30 +192,18 @@ impl Widget for &mut App {
|
|||
}
|
||||
|
||||
let file_area = header_left.inner(header_margin);
|
||||
let cwd = self
|
||||
.file_finder
|
||||
.cwd()
|
||||
.as_os_str()
|
||||
.to_string_lossy()
|
||||
.into_owned();
|
||||
|
||||
match sending_screen {
|
||||
SendingScreen::Files(FileMode::Picking)
|
||||
| SendingScreen::Peers
|
||||
| SendingScreen::Text => {
|
||||
let layout = Layout::vertical([Constraint::Length(3), Constraint::Min(5)]);
|
||||
let [cwd_area, file_area] = layout.areas(file_area);
|
||||
let cwd: Line = cwd.into();
|
||||
Paragraph::new(cwd)
|
||||
.centered()
|
||||
.block(Block::bordered())
|
||||
.render(cwd_area, buf);
|
||||
self.file_finder.widget().render(file_area, buf);
|
||||
}
|
||||
SendingScreen::Files(FileMode::Fuzzy) => {
|
||||
let layout = Layout::vertical([Constraint::Max(3), Constraint::Min(5)]);
|
||||
let [input_area, files_area] = layout.areas(file_area);
|
||||
text_popup(self.file_finder.input.value(), &cwd, input_area, buf);
|
||||
self.file_finder.widget().render(files_area, buf);
|
||||
let layout = Layout::vertical([Constraint::Max(6), Constraint::Min(5)]);
|
||||
let [input, files] = layout.areas(file_area);
|
||||
text_popup(self.file_finder.input.value(), "fuzzy search", input, buf);
|
||||
self.file_finder.widget().render(files, buf);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,8 +32,6 @@ impl JocalService {
|
|||
|
||||
log::info!("starting http server");
|
||||
|
||||
// need to make a custom tls acceptor, see
|
||||
// https://github.com/programatik29/axum-server/blob/master/examples/rustls_session.rs
|
||||
axum_server::bind_rustls(addr, ssl_config)
|
||||
.handle(handle)
|
||||
.serve(app.into_make_service_with_connect_info::<SocketAddr>())
|
||||
|
|
14
src/lib.rs
14
src/lib.rs
|
@ -30,7 +30,7 @@ use transfer::Session;
|
|||
|
||||
pub const DEFAULT_PORT: u16 = 53317;
|
||||
pub const MULTICAST_IP: Ipv4Addr = Ipv4Addr::new(224, 0, 0, 167);
|
||||
pub const DEFAULT_INTERVAL: Duration = Duration::from_millis(100);
|
||||
pub const DEFAULT_INTERVAL: Duration = Duration::from_micros(33333);
|
||||
|
||||
pub type Peers = Arc<Mutex<BTreeMap<String, (SocketAddr, Device)>>>;
|
||||
pub type Sessions = Arc<Mutex<BTreeMap<String, Session>>>; // Session ID to Session
|
||||
|
@ -178,26 +178,22 @@ impl JocalService {
|
|||
let service = self.clone();
|
||||
handles.spawn(async move {
|
||||
loop {
|
||||
if let Err(e) = service.announce(None).await {
|
||||
error!("Announcement error: {e}");
|
||||
}
|
||||
|
||||
tokio::time::sleep(Duration::from_secs(2)).await;
|
||||
|
||||
let rstate = service.running_state.lock().await;
|
||||
if *rstate == RunningState::Stopping {
|
||||
break;
|
||||
}
|
||||
if let Err(e) = service.announce(None).await {
|
||||
error!("Announcement error: {e}");
|
||||
}
|
||||
tokio::time::sleep(Duration::from_secs(2)).await;
|
||||
}
|
||||
JocalTasks::Udp
|
||||
});
|
||||
}
|
||||
|
||||
pub async fn stop(&self) {
|
||||
{
|
||||
let mut rstate = self.running_state.lock().await;
|
||||
*rstate = RunningState::Stopping;
|
||||
}
|
||||
log::info!("shutting down http server");
|
||||
self.http_handle
|
||||
.get()
|
||||
|
|
12
src/main.rs
12
src/main.rs
|
@ -6,7 +6,7 @@ use log::{error, info};
|
|||
use ratatui::DefaultTerminal;
|
||||
use ratatui_explorer::FileExplorer;
|
||||
use tokio::task::JoinSet;
|
||||
use tui_logger::{LevelFilter, init_logger};
|
||||
use tui_logger::{LevelFilter, init_logger, set_env_filter_from_env};
|
||||
|
||||
mod app;
|
||||
use app::{App, CurrentScreen, Peer};
|
||||
|
@ -18,11 +18,13 @@ fn main() -> Result<()> {
|
|||
// just in case we need to display the help
|
||||
let _ = Cli::parse();
|
||||
|
||||
if std::env::var("RUST_LOG").is_err() {
|
||||
unsafe {
|
||||
std::env::set_var("RUST_LOG", "jocalsend");
|
||||
}
|
||||
}
|
||||
init_logger(LevelFilter::Info).map_err(|e| std::io::Error::other(format!("{e}")))?;
|
||||
|
||||
tui_logger::set_env_filter_from_string(
|
||||
&std::env::var("RUST_LOG").unwrap_or("jocalsend".to_string()),
|
||||
);
|
||||
set_env_filter_from_env(None);
|
||||
|
||||
let config = Config::new()?;
|
||||
|
||||
|
|
Loading…
Reference in a new issue