refactor: only cache avatar with http url protocol

This commit is contained in:
JoaquinOlivero
2024-09-04 17:58:40 +00:00
parent cbf3bbb17d
commit ae5542b6d3
15 changed files with 30 additions and 71 deletions

View File

@@ -190,7 +190,7 @@ class ImageProxy {
await promises.rm(directory, { recursive: true });
logger.info(`Cleared ${files[0]} image from cache 'avatar'`, {
logger.info(`Cleared ${files[0]} from cache 'avatar'`, {
label: 'Image Cache',
});
} catch (e) {

View File

@@ -344,13 +344,6 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
userType: UserType.EMBY,
});
if (
user.avatar.startsWith('https://gravatar.com/') &&
user.avatar.includes('default=mm&size=200')
) {
user.avatar = 'https://gravatar.com/avatar/?default=mm&size=200';
}
break;
case MediaServerType.JELLYFIN:
settings.main.mediaServerType = MediaServerType.JELLYFIN;
@@ -370,13 +363,6 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
userType: UserType.JELLYFIN,
});
if (
user.avatar.startsWith('https://gravatar.com/') &&
user.avatar.includes('default=mm&size=200')
) {
user.avatar = 'https://gravatar.com/avatar/?default=mm&size=200';
}
break;
default:
throw new Error('select_server_type');
@@ -431,18 +417,11 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
}
user.avatar = avatar;
} else {
let avatar = gravatarUrl(user.email || account.User.Name, {
const avatar = gravatarUrl(user.email || account.User.Name, {
default: 'mm',
size: 200,
});
if (
avatar.startsWith('https://gravatar.com/') &&
avatar.includes('default=mm&size=200')
) {
avatar = 'https://gravatar.com/avatar/?default=mm&size=200';
}
if (avatar !== user.avatar) {
const avatarProxy = new ImageProxy('avatar', '');
avatarProxy.clearCachedImage(user.avatar);
@@ -499,12 +478,6 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
: UserType.EMBY,
});
if (
user.avatar.startsWith('https://gravatar.com/') &&
user.avatar.includes('default=mm&size=200')
) {
user.avatar = 'https://gravatar.com/avatar/?default=mm&size=200';
}
//initialize Jellyfin/Emby users with local login
const passedExplicitPassword = body.password && body.password.length > 0;
if (passedExplicitPassword) {

View File

@@ -7,16 +7,9 @@ const router = Router();
const avatarImageProxy = new ImageProxy('avatar', '');
// Proxy avatar images
router.get('/*', async (req, res) => {
let imagePath = req.url.startsWith('/') ? req.url.slice(1) : req.url;
const imagePath = req.url.startsWith('/') ? req.url.slice(1) : req.url;
try {
if (
imagePath.startsWith('https://gravatar.com/') &&
imagePath.includes('default=mm&size=200')
) {
imagePath = 'https://gravatar.com/avatar/?default=mm&size=200';
}
const imageData = await avatarImageProxy.getImage(imagePath);
res.writeHead(200, {

View File

@@ -122,14 +122,7 @@ router.post(
}
const passedExplicitPassword = body.password && body.password.length > 0;
let avatar = gravatarUrl(email, { default: 'mm', size: 200 });
if (
avatar.startsWith('https://gravatar.com/') &&
avatar.includes('default=mm&size=200')
) {
avatar = 'https://gravatar.com/avatar/?default=mm&size=200';
}
const avatar = gravatarUrl(email, { default: 'mm', size: 200 });
if (
!passedExplicitPassword &&
@@ -564,13 +557,6 @@ router.post(
: UserType.EMBY,
});
if (
newUser.avatar.startsWith('https://gravatar.com/') &&
newUser.avatar.includes('default=mm&size=200')
) {
newUser.avatar = 'https://gravatar.com/avatar/?default=mm&size=200';
}
await userRepository.save(newUser);
createdUsers.push(newUser);
}