1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /* global Strophe, APP, MD5 */
- var Settings = require("../../settings/Settings");
-
- var users = {};
-
- var Avatar = {
-
- /**
- * Sets the user's avatar in the settings menu(if local user), contact list
- * and thumbnail
- * @param jid jid of the user
- * @param id email or userID to be used as a hash
- */
- setUserAvatar: function (jid, id) {
- if (id) {
- if (users[jid] === id) {
- return;
- }
- users[jid] = id;
- }
- var thumbUrl = this.getThumbUrl(jid);
- var contactListUrl = this.getContactListUrl(jid);
- var resourceJid = Strophe.getResourceFromJid(jid);
-
- APP.UI.userAvatarChanged(resourceJid, thumbUrl, contactListUrl);
- },
- /**
- * Returns image URL for the avatar to be displayed on large video area
- * where current active speaker is presented.
- * @param jid full MUC jid of the user for whom we want to obtain avatar URL
- */
- getActiveSpeakerUrl: function (jid) {
- return this.getGravatarUrl(jid, 100);
- },
- /**
- * Returns image URL for the avatar to be displayed on small video thumbnail
- * @param jid full MUC jid of the user for whom we want to obtain avatar URL
- */
- getThumbUrl: function (jid) {
- return this.getGravatarUrl(jid, 100);
- },
- /**
- * Returns the URL for the avatar to be displayed as contactlist item
- * @param jid full MUC jid of the user for whom we want to obtain avatar URL
- */
- getContactListUrl: function (jid) {
- return this.getGravatarUrl(jid, 30);
- },
- getGravatarUrl: function (jid, size) {
- if (!jid) {
- console.error("Get gravatar - jid is undefined");
- return null;
- }
- var id = users[jid];
- if (!id) {
- console.warn(
- "No avatar stored yet for " + jid + " - using JID as ID");
- id = jid;
- }
- return 'https://www.gravatar.com/avatar/' +
- MD5.hexdigest(id.trim().toLowerCase()) +
- "?d=wavatar&size=" + (size || "30");
- }
-
- };
-
-
- module.exports = Avatar;
|