initial import for Open Source 🎉
This commit is contained in:
parent
1898c361f3
commit
9c0dd3b722
2048 changed files with 218743 additions and 0 deletions
50
static/js/services/avatar/avatar.service.impl.ts
Normal file
50
static/js/services/avatar/avatar.service.impl.ts
Normal file
|
@ -0,0 +1,50 @@
|
|||
import { AvatarService } from './avatar.service';
|
||||
import { Injectable, Inject } from 'ng-metadata/core';
|
||||
|
||||
|
||||
@Injectable(AvatarService.name)
|
||||
export class AvatarServiceImpl implements AvatarService {
|
||||
|
||||
private cache: {[cacheKey: string]: string} = {};
|
||||
|
||||
constructor(@Inject('Config') private Config: any,
|
||||
@Inject('md5') private md5: any) {
|
||||
|
||||
}
|
||||
|
||||
public getAvatar(hash: string, size: number = 16, notFound: string = '404'): string {
|
||||
var avatarURL: string;
|
||||
switch (this.Config['AVATAR_KIND']) {
|
||||
case 'local':
|
||||
avatarURL = `/avatar/${hash}?size=${size}`;
|
||||
break;
|
||||
|
||||
case 'gravatar':
|
||||
avatarURL = `//www.gravatar.com/avatar/${hash}?d=${notFound}&size=${size}`;
|
||||
break;
|
||||
}
|
||||
|
||||
return avatarURL;
|
||||
}
|
||||
|
||||
public computeHash(email: string = '', name: string = ''): string {
|
||||
const cacheKey: string = email + ':' + name;
|
||||
|
||||
if (this.cache[cacheKey]) {
|
||||
return this.cache[cacheKey];
|
||||
}
|
||||
|
||||
var hash: string = this.md5.createHash(email.toString().toLowerCase());
|
||||
switch (this.Config['AVATAR_KIND']) {
|
||||
case 'local':
|
||||
if (name) {
|
||||
hash = name[0] + hash;
|
||||
} else if (email) {
|
||||
hash = email[0] + hash;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return this.cache[cacheKey] = hash;
|
||||
}
|
||||
}
|
Reference in a new issue