Implement HTTP timeout configurations and enhance API documentation
- Added optional HTTP server timeout configurations (`HNHMAP_READ_TIMEOUT`, `HNHMAP_WRITE_TIMEOUT`, `HNHMAP_IDLE_TIMEOUT`) to `.env.example` and updated the server initialization in `main.go` to utilize these settings. - Enhanced API documentation for the `rebuildZooms` endpoint to clarify its background processing and polling mechanism for status updates. - Updated `configuration.md` to include new timeout environment variables for better configuration guidance. - Improved error handling in the client for large request bodies, ensuring appropriate responses for oversized payloads.
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
import md5 from 'md5'
|
||||
|
||||
const gravatarCache = new Map<string, string>()
|
||||
|
||||
/**
|
||||
* Returns Gravatar avatar URL for the given email, or empty string if no email.
|
||||
* Gravatar expects: trim, lowercase, then MD5 hex. Use empty string to show a placeholder (e.g. initial letter) in the UI.
|
||||
* Results are memoized by (email, size) to avoid recomputing MD5 on every render.
|
||||
*
|
||||
* @param email - User email (optional)
|
||||
* @param size - Avatar size in pixels (default 64; navbar 32, drawer 40, profile 64–80)
|
||||
@@ -10,7 +13,12 @@ import md5 from 'md5'
|
||||
export function useGravatarUrl(email: string | undefined, size?: number): string {
|
||||
const normalized = email?.trim().toLowerCase()
|
||||
if (!normalized) return ''
|
||||
const hash = md5(normalized)
|
||||
const s = size ?? 64
|
||||
return `https://www.gravatar.com/avatar/${hash}?s=${s}&d=identicon`
|
||||
const key = `${normalized}\n${s}`
|
||||
const cached = gravatarCache.get(key)
|
||||
if (cached !== undefined) return cached
|
||||
const hash = md5(normalized)
|
||||
const url = `https://www.gravatar.com/avatar/${hash}?s=${s}&d=identicon`
|
||||
gravatarCache.set(key, url)
|
||||
return url
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user