Skip to content

Commit

Permalink
🐛 fix Gravatar cache
Browse files Browse the repository at this point in the history
  • Loading branch information
XiYang6666 committed May 13, 2024
1 parent 68a3994 commit 4a2e2ba
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 4 deletions.
6 changes: 5 additions & 1 deletion server/api/getAvatar.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { getGravatarUrl } from "../getGravatarUrl";

const config = useRuntimeConfig();
let lastGetTime: number;

export default defineEventHandler(async (event) => {
return sendRedirect(event, getGravatarUrl(config.ownerEmail).toString());
if (!(lastGetTime && lastGetTime + config.avatarCacheTime >= Date.now())) {
lastGetTime = Date.now();
}
return sendRedirect(event, getGravatarUrl(config.ownerEmail, 256, lastGetTime).toString());
});
2 changes: 1 addition & 1 deletion server/api/getIcon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export default defineEventHandler(async (event) => {
}
const avatarUrl = getGravatarUrl(config.ownerEmail);

const imageBlob: Blob = await $fetch(avatarUrl);
const imageBlob: Blob = await $fetch(avatarUrl.toString());

const radius = 64;
const sharpImage = sharp(Buffer.from(await imageBlob.arrayBuffer()));
Expand Down
4 changes: 2 additions & 2 deletions server/getGravatarUrl.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { createHash } from "crypto";

export function getGravatarUrl(email: string, size: number = 256) {
export function getGravatarUrl(email: string, size: number = 256, time?: number) {
const runtimeConfig = useRuntimeConfig();

const trimmedEmail = email.trim().toLowerCase();
const hash = createHash("sha256").update(trimmedEmail).digest("hex");
return new URL(`/avatar/${hash}?s=${size}&d=identicon}`, runtimeConfig.gravatarUrl);
return new URL(`/avatar/${hash}?s=${size}&d=identicon}${time ? `&t=${time}` : ""}`, runtimeConfig.gravatarUrl);
}

0 comments on commit 4a2e2ba

Please sign in to comment.