@ -164,10 +164,10 @@ fn get_icon_url(domain: &str) -> Result<String, Error> { 
			
		
	
		
		
			
				
					     let   resp   =   client . get ( & ssldomain ) . send ( ) . or_else ( | _ |   client . get ( & httpdomain ) . send ( ) ) ;      let   resp   =   client . get ( & ssldomain ) . send ( ) . or_else ( | _ |   client . get ( & httpdomain ) . send ( ) ) ;  
			
		
	
		
		
			
				
					     if   let   Ok ( content )   =   resp   {      if   let   Ok ( content )   =   resp   {  
			
		
	
		
		
			
				
					         // Extract the URL from the respose in case redirects occured (like @ gitlab.com)
          // Extract the URL from the respose in case redirects occured (like @ gitlab.com)
  
			
		
	
		
		
			
				
					
					         let   url   =   content . url ( ) . origin ( ) . ascii_serialization ( ) ;          let   url   =   content . url ( ) . clone ( ) ;  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					         // Add the default favicon.ico to the list with the domain the content responded from.
          // Add the default favicon.ico to the list with the domain the content responded from.
  
			
		
	
		
		
			
				
					
					         iconlist . push ( IconList   {   priority : 35 ,   href : format ! ( "{}/favicon.ico" ,   url )   } ) ;          iconlist . push ( IconList   {   priority : 35 ,   href : url . join ( "/favicon.ico" ) . unwrap ( ) . into_string ( )   } ) ;  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					         let   soup   =   Soup ::from_reader ( content ) ? ;          let   soup   =   Soup ::from_reader ( content ) ? ;  
			
		
	
		
		
			
				
					         // Search for and filter
          // Search for and filter
  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -179,9 +179,9 @@ fn get_icon_url(domain: &str) -> Result<String, Error> { 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					         // Loop through all the found icons and determine it's priority
          // Loop through all the found icons and determine it's priority
  
			
		
	
		
		
			
				
					         for   favicon   in   favicons   {          for   favicon   in   favicons   {  
			
		
	
		
		
			
				
					
					             let   favicon_ sizes  =   favicon . get ( "sizes" ) . unwrap_or_default ( ) ;              let   sizes   =   favicon . get ( "sizes" ) . unwrap_or_default ( ) ;  
			
				
				
			
		
	
		
		
			
				
					
					             let   href   =   fix_href ( & favicon . get ( "href" ) . unwrap_or_default ( ) ,   & url ) ;              let   href   =   url . join ( & favicon . get ( "href" ) . unwrap_or_default ( ) ) . unwrap ( ) . into_string ( ) ;  
			
				
				
			
		
	
		
		
			
				
					
					             let   priority   =   get_icon_priority ( & href ,   & favicon_ sizes) ;              let   priority   =   get_icon_priority ( & href ,   & sizes ) ;  
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					             iconlist . push ( IconList   {   priority ,   href   } )              iconlist . push ( IconList   {   priority ,   href   } )  
			
		
	
		
		
			
				
					         }          }  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -245,39 +245,6 @@ fn get_icon_priority(href: &str, sizes: &str) -> u8 { 
			
		
	
		
		
			
				
					     }      }  
			
		
	
		
		
			
				
					} }  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					/// Returns a String which will have the given href fixed by adding the correct URL if it does not have this already.
  
			
		
	
		
		
			
				
					///
  
			
		
	
		
		
			
				
					/// # Arguments
  
			
		
	
		
		
			
				
					/// * `href` - A string which holds the href value or relative path.
  
			
		
	
		
		
			
				
					/// * `url`  - A string which holds the URL including http(s) which will preseed the href when needed.
  
			
		
	
		
		
			
				
					///
  
			
		
	
		
		
			
				
					/// # Example
  
			
		
	
		
		
			
				
					/// ```
  
			
		
	
		
		
			
				
					/// fixed_href1 = fix_href("/path/to/a/favicon.png", "https://eample.com");
  
			
		
	
		
		
			
				
					/// fixed_href2 = fix_href("//example.com/path/to/a/second/favicon.jpg", "https://eample.com");
  
			
		
	
		
		
			
				
					/// ```
  
			
		
	
		
		
			
				
					fn  fix_href ( href : & str ,   url : & str )   -> String  {  
			
		
	
		
		
			
				
					     // When the href is starting with //, so without a scheme is valid and would use the browsers scheme.
  
			
		
	
		
		
			
				
					     // We need to detect this and add the scheme here.
  
			
		
	
		
		
			
				
					     if   href . starts_with ( "//" )   {  
			
		
	
		
		
			
				
					         if   url . starts_with ( "https" )   {  
			
		
	
		
		
			
				
					             format ! ( "https:{}" ,   href )  
			
		
	
		
		
			
				
					         }   else   {  
			
		
	
		
		
			
				
					             format ! ( "http:{}" ,   href )  
			
		
	
		
		
			
				
					         }  
			
		
	
		
		
			
				
					     // If the href_output just starts with a single / it does not have the host here at all.
  
			
		
	
		
		
			
				
					     }   else   if   ! href . starts_with ( "http" )   {  
			
		
	
		
		
			
				
					         if   href . starts_with ( '/' )   {  
			
		
	
		
		
			
				
					             format ! ( "{}{}" ,   url ,   href )  
			
		
	
		
		
			
				
					         }   else   {  
			
		
	
		
		
			
				
					             format ! ( "{}/{}" ,   url ,   href )  
			
		
	
		
		
			
				
					         }  
			
		
	
		
		
			
				
					     // All seems oke, just return the given href
  
			
		
	
		
		
			
				
					     }   else   {  
			
		
	
		
		
			
				
					         href . to_string ( )  
			
		
	
		
		
			
				
					     }  
			
		
	
		
		
			
				
					}  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					fn  download_icon ( domain : & str )   -> Result < Vec < u8 > ,   Error >   { fn  download_icon ( domain : & str )   -> Result < Vec < u8 > ,   Error >   {  
			
		
	
		
		
			
				
					     let   url   =   get_icon_url ( & domain ) ? ;      let   url   =   get_icon_url ( & domain ) ? ;