123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /* global Strophe, APP, MD5, config, interfaceConfig */
- var users = {};
-
- var Avatar = {
-
- /**
- * Sets the user's avatar in the settings menu(if local user), contact list
- * and thumbnail
- * @param id id of the user
- * @param email email or nickname to be used as a hash
- */
- setUserAvatar: function (id, email) {
- if (email) {
- if (users[id] === email) {
- return;
- }
- users[id] = email;
- }
- var thumbUrl = this.getThumbUrl(id);
- var contactListUrl = this.getContactListUrl(id);
- },
- /**
- * Returns image URL for the avatar to be displayed on large video area
- * where current dominant speaker is presented.
- * @param id id of the user for whom we want to obtain avatar URL
- */
- getDominantSpeakerUrl: function (id) {
- return this.getGravatarUrl(id, 100);
- },
- /**
- * Returns image URL for the avatar to be displayed on small video thumbnail
- * @param id id of the user for whom we want to obtain avatar URL
- */
- getThumbUrl: function (id) {
- return this.getGravatarUrl(id, 100);
- },
- /**
- * Returns the URL for the avatar to be displayed as contactlist item
- * @param id id of the user for whom we want to obtain avatar URL
- */
- getContactListUrl: function (id) {
- return this.getGravatarUrl(id, 30);
- },
- getGravatarUrl: function (id, size) {
- if (!id) {
- console.error("Get gravatar - id is undefined");
- return null;
- }
-
- // Default to using gravatar.
- var urlPref = 'https://www.gravatar.com/avatar/';
- var urlSuf = "?d=wavatar&size=" + (size || "30");
-
- // If we have a real email we will use it for the gravatar and we'll
- // use the pre-configured URL if any. Otherwise, it's a random avatar.
- var email = users[id];
- if (email && email.indexOf('@')) {
- id = email;
-
- if (interfaceConfig.RANDOM_AVATAR_URL_PREFIX) {
- urlPref = interfaceConfig.RANDOM_AVATAR_URL_PREFIX;
- urlSuf = interfaceConfig.RANDOM_AVATAR_URL_SUFFIX;
- }
- }
-
- if (!config.disableThirdPartyRequests) {
- return urlPref +
- MD5.hexdigest(id.trim().toLowerCase()) +
- urlSuf;
- } else {
- return 'images/avatar2.png';
- }
- }
-
- };
-
-
- module.exports = Avatar;
|