Browse Source
			
			
			Merge pull request #1545 from RealOrangeOne/icon-client-cache
			
				Client caching
			
			
				pull/1552/head
			
			
		 
		
			
				
					
						
						Daniel García
					
					5 years ago
					
						
							committed by
							
								
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 4AEE18F83AFDEB23
						
					
				
			
		
		
		
	
		
			
				 2 changed files with 
11 additions and 
7 deletions
			 
			
		 
		
			
				- 
					
					
					 
					src/api/icons.rs
				
 
			
				- 
					
					
					 
					src/util.rs
				
 
			
		
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -51,7 +51,7 @@ fn icon(domain: String) -> Option<Cached<Content<Vec<u8>>>> { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return None; | 
					 | 
					 | 
					        return None; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    get_icon(&domain).map(|icon| Cached::long(Content(ContentType::new("image", "x-icon"), icon))) | 
					 | 
					 | 
					    get_icon(&domain).map(|icon| Cached::ttl(Content(ContentType::new("image", "x-icon"), icon), CONFIG.icon_cache_ttl())) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// Returns if the domain provided is valid or not.
 | 
					 | 
					 | 
					/// Returns if the domain provided is valid or not.
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -92,17 +92,21 @@ impl Fairing for CORS { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					pub struct Cached<R>(R, &'static str); | 
					 | 
					 | 
					pub struct Cached<R>(R, String); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					impl<R> Cached<R> { | 
					 | 
					 | 
					impl<R> Cached<R> { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    pub const fn long(r: R) -> Cached<R> { | 
					 | 
					 | 
					    pub fn long(r: R) -> Cached<R> { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        // 7 days
 | 
					 | 
					 | 
					        // 7 days
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        Self(r, "public, max-age=604800") | 
					 | 
					 | 
					        Self::ttl(r, 604800) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    pub const fn short(r: R) -> Cached<R> { | 
					 | 
					 | 
					    pub fn short(r: R) -> Cached<R> { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        // 10 minutes
 | 
					 | 
					 | 
					        // 10 minutes
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        Self(r, "public, max-age=600") | 
					 | 
					 | 
					        Self(r, String::from("public, max-age=600")) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    pub fn ttl(r: R, ttl: u64) -> Cached<R> { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        Self(r, format!("public, immutable, max-age={}", ttl)) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |