| 
					
				 | 
			
			
				@@ -80,6 +80,19 @@ pub fn parse_str<T: FromStr>(target: &str, key: &str) -> Option<T> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/// get the last part of the url, if not found, return empty string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+pub fn get_last_part_and_decode(url: &str) -> Option<String> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let path = url.split('?').next().unwrap_or(""); // Splits URL and takes the path part 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let segments: Vec<&str> = path.split('/').collect(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let last_segment = segments.last()?; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Some( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        percent_encoding::percent_decode_str(last_segment) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .decode_utf8_lossy() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .to_string(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /// open file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /// use vscode by default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 pub fn open_file(app: tauri::AppHandle, path: PathBuf) -> Result<()> { 
			 |