forked from lavender/watch-party
		
	Limit nickname length to 50 unicode codepoints
This commit is contained in:
		
							parent
							
								
									152d51f4fc
								
							
						
					
					
						commit
						244145696c
					
				
					 4 changed files with 10 additions and 0 deletions
				
			
		|  | @ -26,6 +26,7 @@ | |||
|           type="text" | ||||
|           id="join-session-nickname" | ||||
|           placeholder="Nickname" | ||||
|           maxlength="50" | ||||
|           required | ||||
|         /> | ||||
|          | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ use warp as warb; // i think it's funny | |||
| mod events; | ||||
| mod viewer_connection; | ||||
| mod watch_session; | ||||
| mod utils; | ||||
| 
 | ||||
| use serde::Deserialize; | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										6
									
								
								src/utils.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/utils.rs
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| pub fn truncate_str(s: &str, max_chars: usize) -> &str { | ||||
|     match s.char_indices().nth(max_chars) { | ||||
|         None => s, | ||||
|         Some((idx, _)) => &s[..idx], | ||||
|     } | ||||
| } | ||||
|  | @ -16,6 +16,7 @@ use warp::ws::{Message, WebSocket}; | |||
| 
 | ||||
| use crate::{ | ||||
|     events::{WatchEvent, WatchEventData}, | ||||
|     utils::truncate_str, | ||||
|     watch_session::{get_session, handle_watch_event_data}, | ||||
| }; | ||||
| 
 | ||||
|  | @ -53,6 +54,7 @@ pub async fn ws_subscribe(session_uuid: Uuid, nickname: String, colour: String, | |||
|     if !colour.len() == 6 || !colour.chars().all(|x| x.is_ascii_hexdigit()) { | ||||
|         colour = String::from("7ed0ff"); | ||||
|     } | ||||
|     let nickname = truncate_str(&nickname, 50).to_string(); | ||||
| 
 | ||||
|     CONNECTED_VIEWERS.write().await.insert( | ||||
|         viewer_id, | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue