| 
														
															@@ -9,7 +9,7 @@ It is recommend to use this way 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	cacheDir := "./cache" 
														 | 
														
														 | 
														
															 	cacheDir := "./cache" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	defaultImg := "./default.jpg" 
														 | 
														
														 | 
														
															 	defaultImg := "./default.jpg" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	http.Handle("/avatar/", avatar.HttpHandler(cacheDir, defaultImg)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	http.Handle("/avatar/", avatar.CacheServer(cacheDir, defaultImg)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 */ 
														 | 
														
														 | 
														
															 */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 package avatar 
														 | 
														
														 | 
														
															 package avatar 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -135,12 +135,12 @@ func (this *Avatar) UpdateTimeout(timeout time.Duration) error { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return err 
														 | 
														
														 | 
														
															 	return err 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-type avatarHandler struct { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+type service struct { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	cacheDir string 
														 | 
														
														 | 
														
															 	cacheDir string 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	altImage string 
														 | 
														
														 | 
														
															 	altImage string 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-func (this *avatarHandler) mustInt(r *http.Request, defaultValue int, keys ...string) int { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+func (this *service) mustInt(r *http.Request, defaultValue int, keys ...string) int { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	var v int 
														 | 
														
														 | 
														
															 	var v int 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	for _, k := range keys { 
														 | 
														
														 | 
														
															 	for _, k := range keys { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		if _, err := fmt.Sscanf(r.FormValue(k), "%d", &v); err == nil { 
														 | 
														
														 | 
														
															 		if _, err := fmt.Sscanf(r.FormValue(k), "%d", &v); err == nil { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -150,7 +150,7 @@ func (this *avatarHandler) mustInt(r *http.Request, defaultValue int, keys ...st 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return defaultValue 
														 | 
														
														 | 
														
															 	return defaultValue 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-func (this *avatarHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+func (this *service) ServeHTTP(w http.ResponseWriter, r *http.Request) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	urlPath := r.URL.Path 
														 | 
														
														 | 
														
															 	urlPath := r.URL.Path 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	hash := urlPath[strings.LastIndex(urlPath, "/")+1:] 
														 | 
														
														 | 
														
															 	hash := urlPath[strings.LastIndex(urlPath, "/")+1:] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	size := this.mustInt(r, 80, "s", "size") // default size = 80*80 
														 | 
														
														 | 
														
															 	size := this.mustInt(r, 80, "s", "size") // default size = 80*80 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -183,9 +183,9 @@ func (this *avatarHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// http.Handle("/avatar/", avatar.HttpHandler("./cache")) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-func HttpHandler(cacheDir string, defaultImgPath string) http.Handler { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	return &avatarHandler{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// http.Handle("/avatar/", avatar.CacheServer("./cache")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+func CacheServer(cacheDir string, defaultImgPath string) http.Handler { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	return &service{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		cacheDir: cacheDir, 
														 | 
														
														 | 
														
															 		cacheDir: cacheDir, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		altImage: defaultImgPath, 
														 | 
														
														 | 
														
															 		altImage: defaultImgPath, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 |