您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

Avatar.js 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* global Strophe, APP, MD5, config, interfaceConfig */
  2. var users = {};
  3. var Avatar = {
  4. /**
  5. * Sets the user's avatar in the settings menu(if local user), contact list
  6. * and thumbnail
  7. * @param id id of the user
  8. * @param email email or nickname to be used as a hash
  9. */
  10. setUserAvatar: function (id, email) {
  11. if (email) {
  12. if (users[id] === email) {
  13. return;
  14. }
  15. users[id] = email;
  16. }
  17. var avatarUrl = this.getAvatarUrl(id);
  18. },
  19. /**
  20. * Returns the URL of the image for the avatar of a particular user,
  21. + identified by its jid
  22. * @param jid
  23. */
  24. getAvatarUrl: function (jid) {
  25. if (config.disableThirdPartyRequests) {
  26. return 'images/avatar2.png';
  27. } else {
  28. if (!jid) {
  29. console.error("Get avatar - jid is undefined");
  30. return null;
  31. }
  32. var id = users[jid];
  33. // If the ID looks like an email, we'll use gravatar.
  34. // Otherwise, it's a random avatar, and we'll use the configured
  35. // URL.
  36. var random = !id || id.indexOf('@') < 0;
  37. if (!id) {
  38. console.warn(
  39. "No avatar stored yet for " + jid + " - using JID as ID");
  40. id = jid;
  41. }
  42. id = MD5.hexdigest(id.trim().toLowerCase());
  43. // Default to using gravatar.
  44. var urlPref = 'https://www.gravatar.com/avatar/';
  45. var urlSuf = "?d=wavatar&size=100";
  46. if (random && interfaceConfig.RANDOM_AVATAR_URL_PREFIX) {
  47. urlPref = interfaceConfig.RANDOM_AVATAR_URL_PREFIX;
  48. urlSuf = interfaceConfig.RANDOM_AVATAR_URL_SUFFIX;
  49. }
  50. return urlPref + id + urlSuf;
  51. }
  52. }
  53. };
  54. module.exports = Avatar;