commit 30846c47600dfea75436c17bfce037f9e4e7fe1a
parent 12583ac857973dc9ad9e2e938ec4d9742f7c2390
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 27 Mar 2023 23:07:13 -0700
fmt
Diffstat:
| M | src/main.rs | | | 220 | ++++++++++++++++--------------------------------------------------------------- |
1 file changed, 44 insertions(+), 176 deletions(-)
diff --git a/src/main.rs b/src/main.rs
@@ -1078,39 +1078,21 @@ impl LeChatPHPClient {
messages: &Arc<Mutex<Vec<Message>>>,
) -> std::result::Result<(), ExitSignal> {
match key_event {
- KeyEvent {
- code: KeyCode::Char('/'),
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('/'), modifiers: KeyModifiers::NONE, .. } => {
app.items.unselect();
app.input = "/".to_owned();
app.input_idx = app.input.width();
app.input_mode = InputMode::Editing;
}
- KeyEvent {
- code: KeyCode::Char('j'),
- modifiers: KeyModifiers::NONE, ..
- }
- | KeyEvent {
- code: KeyCode::Down,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('j'), modifiers: KeyModifiers::NONE, .. }
+ | KeyEvent { code: KeyCode::Down, modifiers: KeyModifiers::NONE, .. } => {
app.items.next();
}
- KeyEvent {
- code: KeyCode::Char('k'),
- modifiers: KeyModifiers::NONE, ..
- }
- | KeyEvent {
- code: KeyCode::Up,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('k'), modifiers: KeyModifiers::NONE, .. }
+ | KeyEvent { code: KeyCode::Up, modifiers: KeyModifiers::NONE, .. } => {
app.items.previous();
}
- KeyEvent {
- code: KeyCode::Enter,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Enter, modifiers: KeyModifiers::NONE, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(item) = app.items.items.get(idx) {
app.long_message = Some(item.clone());
@@ -1118,10 +1100,7 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Backspace,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Backspace, modifiers: KeyModifiers::NONE, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(item) = app.items.items.get(idx) {
let mut messages = messages.lock().unwrap();
@@ -1138,14 +1117,8 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('y'),
- modifiers: KeyModifiers::NONE, ..
- }
- | KeyEvent {
- code: KeyCode::Char('c'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('y'), modifiers: KeyModifiers::NONE, .. }
+ | KeyEvent { code: KeyCode::Char('c'), modifiers: KeyModifiers::CONTROL, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(item) = app.items.items.get(idx) {
if let Some(upload_link) = &item.upload_link {
@@ -1166,10 +1139,7 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('Y'),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char('Y'), modifiers: KeyModifiers::SHIFT, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(item) = app.items.items.get(idx) {
if let Some(upload_link) = &item.upload_link {
@@ -1189,75 +1159,45 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('d'),
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('d'), modifiers: KeyModifiers::NONE, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(item) = app.items.items.get(idx) {
eprintln!("{:?}", item.text.text());
}
}
}
- KeyEvent {
- code: KeyCode::Char('D'),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char('D'), modifiers: KeyModifiers::SHIFT, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(item) = app.items.items.get(idx) {
eprintln!("{:?} {:?}", item.text, item.upload_link);
}
}
}
- KeyEvent {
- code: KeyCode::Char('m'),
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('m'), modifiers: KeyModifiers::NONE, .. } => {
let mut is_muted = self.is_muted.lock().unwrap();
*is_muted = !*is_muted;
}
- KeyEvent {
- code: KeyCode::Char('M'),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char('M'), modifiers: KeyModifiers::SHIFT, .. } => {
self.show_sys = !self.show_sys;
}
- KeyEvent {
- code: KeyCode::Char('G'),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char('G'), modifiers: KeyModifiers::SHIFT, .. } => {
self.display_guest_view = !self.display_guest_view;
}
- KeyEvent {
- code: KeyCode::Char('H'),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char('H'), modifiers: KeyModifiers::SHIFT, .. } => {
self.display_hidden_msgs = !self.display_hidden_msgs;
}
- KeyEvent {
- code: KeyCode::Char('i'),
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('i'), modifiers: KeyModifiers::NONE, .. } => {
app.input_mode = InputMode::Editing;
app.items.unselect();
}
- KeyEvent {
- code: KeyCode::Char('Q'),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char('Q'), modifiers: KeyModifiers::SHIFT, .. } => {
self.logout().unwrap();
return Err(ExitSignal::Terminate);
}
- KeyEvent {
- code: KeyCode::Char('q'),
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('q'), modifiers: KeyModifiers::NONE, .. } => {
return Err(ExitSignal::Terminate);
}
- KeyEvent {
- code: KeyCode::Char('t'),
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('t'), modifiers: KeyModifiers::NONE, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(username) = get_username(
&self.base_client.username,
@@ -1271,10 +1211,7 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('p'),
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('p'), modifiers: KeyModifiers::NONE, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(username) = get_username(
&self.base_client.username,
@@ -1288,10 +1225,7 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('k'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('k'), modifiers: KeyModifiers::CONTROL, .. } => {
if let Some(idx) = app.items.state.selected() {
if let Some(username) = get_username(
&self.base_client.username,
@@ -1305,28 +1239,16 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('u'),
- modifiers: KeyModifiers::CONTROL, ..
- }
- | KeyEvent {
- code: KeyCode::PageUp,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('u'), modifiers: KeyModifiers::CONTROL, .. }
+ | KeyEvent { code: KeyCode::PageUp, modifiers: KeyModifiers::NONE, .. } => {
if let Some(idx) = app.items.state.selected() {
app.items.state.select(idx.checked_sub(10).or(Some(0)));
} else {
app.items.next();
}
}
- KeyEvent {
- code: KeyCode::Char('d'),
- modifiers: KeyModifiers::CONTROL, ..
- }
- | KeyEvent {
- code: KeyCode::PageDown,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Char('d'), modifiers: KeyModifiers::CONTROL, .. }
+ | KeyEvent { code: KeyCode::PageDown, modifiers: KeyModifiers::NONE, .. } => {
if let Some(idx) = app.items.state.selected() {
let wanted_idx = idx + 10;
let max_idx = app.items.items.len() - 1;
@@ -1336,16 +1258,10 @@ impl LeChatPHPClient {
app.items.next();
}
}
- KeyEvent {
- code: KeyCode::Esc,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Esc, modifiers: KeyModifiers::NONE, .. } => {
app.items.unselect();
}
- KeyEvent {
- code: KeyCode::Char('u'),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char('u'), modifiers: KeyModifiers::SHIFT, .. } => {
app.items.state.select(Some(0));
}
_ => {}
@@ -1360,10 +1276,7 @@ impl LeChatPHPClient {
users: &Arc<Mutex<Users>>,
) -> std::result::Result<(), ExitSignal> {
match key_event {
- KeyEvent {
- code: KeyCode::Enter,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Enter, modifiers: KeyModifiers::NONE, .. } => {
if FIND_RGX.is_match(&app.input) {
return Ok(());
}
@@ -1467,10 +1380,7 @@ impl LeChatPHPClient {
self.post_msg(PostType::Post(input, None)).unwrap();
}
}
- KeyEvent {
- code: KeyCode::Tab,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Tab, modifiers: KeyModifiers::NONE, .. } => {
let (p1, p2) = app.input.split_at(app.input_idx);
if p2 == "" || p2.chars().nth(0) == Some(' ') {
let mut parts: Vec<&str> = p1.split(" ").collect();
@@ -1504,41 +1414,26 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('c'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('c'), modifiers: KeyModifiers::CONTROL, .. } => {
app.clear_filter();
app.input = "".to_owned();
app.input_idx = 0;
app.input_mode = InputMode::Normal;
}
- KeyEvent {
- code: KeyCode::Char('a'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('a'), modifiers: KeyModifiers::CONTROL, .. } => {
app.input_idx = 0;
}
- KeyEvent {
- code: KeyCode::Char('e'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('e'), modifiers: KeyModifiers::CONTROL, .. } => {
app.input_idx = app.input.width();
}
- KeyEvent {
- code: KeyCode::Char('f'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('f'), modifiers: KeyModifiers::CONTROL, .. } => {
if let Some(idx) = app.input.chars().skip(app.input_idx).position(|c| c == ' ') {
app.input_idx = std::cmp::min(app.input_idx + idx + 1, app.input.width());
} else {
app.input_idx = app.input.width();
}
}
- KeyEvent {
- code: KeyCode::Char('b'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('b'), modifiers: KeyModifiers::CONTROL, .. } => {
if let Some(idx) = app.input_idx.checked_sub(2) {
let tmp = app
.input
@@ -1555,10 +1450,7 @@ impl LeChatPHPClient {
}
}
}
- KeyEvent {
- code: KeyCode::Char('v'),
- modifiers: KeyModifiers::CONTROL, ..
- } => {
+ KeyEvent { code: KeyCode::Char('v'), modifiers: KeyModifiers::CONTROL, .. } => {
let mut ctx: ClipboardContext = ClipboardProvider::new().unwrap();
if let Ok(clipboard) = ctx.get_contents() {
let byte_position = byte_pos(&app.input, app.input_idx).unwrap();
@@ -1566,67 +1458,43 @@ impl LeChatPHPClient {
app.input_idx += clipboard.width();
}
}
- KeyEvent {
- code: KeyCode::Left,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Left, modifiers: KeyModifiers::NONE, .. } => {
if app.input_idx > 0 {
app.input_idx -= 1;
}
}
- KeyEvent {
- code: KeyCode::Right,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Right, modifiers: KeyModifiers::NONE, .. } => {
if app.input_idx < app.input.width() {
app.input_idx += 1;
}
}
- KeyEvent {
- code: KeyCode::Down,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Down, modifiers: KeyModifiers::NONE, .. } => {
app.input_mode = InputMode::Normal;
app.items.next();
}
- KeyEvent {
- code: KeyCode::Char(c),
- modifiers: KeyModifiers::NONE, ..
- }
- | KeyEvent {
- code: KeyCode::Char(c),
- modifiers: KeyModifiers::SHIFT, ..
- } => {
+ KeyEvent { code: KeyCode::Char(c), modifiers: KeyModifiers::NONE, .. }
+ | KeyEvent { code: KeyCode::Char(c), modifiers: KeyModifiers::SHIFT, .. } => {
let byte_position = byte_pos(&app.input, app.input_idx).unwrap();
app.input.insert(byte_position, c);
app.input_idx += 1;
app.update_filter();
}
- KeyEvent {
- code: KeyCode::Backspace,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Backspace, modifiers: KeyModifiers::NONE, .. } => {
if app.input_idx > 0 {
app.input_idx -= 1;
app.input = remove_at(&app.input, app.input_idx);
app.update_filter();
}
}
- KeyEvent {
- code: KeyCode::Delete,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Delete, modifiers: KeyModifiers::NONE, .. } => {
if app.input_idx > 0 && app.input_idx == app.input.width() {
app.input_idx -= 1;
}
app.input = remove_at(&app.input, app.input_idx);
app.update_filter();
}
- KeyEvent {
- code: KeyCode::Esc,
- modifiers: KeyModifiers::NONE, ..
- } => {
+ KeyEvent { code: KeyCode::Esc, modifiers: KeyModifiers::NONE, .. } => {
app.input_mode = InputMode::Normal;
}
_ => {}