You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738
  1. var Settings = require("../../settings/Settings");
  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 jid jid of the user
  8. * @param id email or userID to be used as a hash
  9. */
  10. setUserAvatar: function (jid, id) {
  11. if (id) {
  12. if (users[jid] === id) {
  13. return;
  14. }
  15. users[jid] = id;
  16. }
  17. var thumbUrl = this.getGravatarUrl(users[jid] || jid, 100);
  18. var contactListUrl = this.getGravatarUrl(users[jid] || jid);
  19. var resourceJid = Strophe.getResourceFromJid(jid);
  20. APP.UI.userAvatarChanged(resourceJid, thumbUrl, contactListUrl);
  21. },
  22. getGravatarUrl: function (id, size) {
  23. if(id === APP.xmpp.myJid() || !id) {
  24. id = Settings.getSettings().uid;
  25. }
  26. return 'https://www.gravatar.com/avatar/' +
  27. MD5.hexdigest(id.trim().toLowerCase()) +
  28. "?d=wavatar&size=" + (size || "30");
  29. }
  30. };
  31. module.exports = Avatar;