summaryrefslogtreecommitdiff
path: root/lib/models/user.js
diff options
context:
space:
mode:
authorWu Cheng-Han2017-02-03 21:48:36 +0800
committerWu Cheng-Han2017-02-03 21:48:36 +0800
commit8cfbfa43520a298637b6f4e3137e4dea9d09e34d (patch)
tree1d0e85a4e24f8ef8d128afb3733e92a58a92840e /lib/models/user.js
parentef0ac7768d5dbd6a99c4126a1ed8b091f004d3bf (diff)
Update to add biggerphoto on parsing user profile
Diffstat (limited to 'lib/models/user.js')
-rw-r--r--lib/models/user.js36
1 files changed, 26 insertions, 10 deletions
diff --git a/lib/models/user.js b/lib/models/user.js
index 7d27242c..aee42041 100644
--- a/lib/models/user.js
+++ b/lib/models/user.js
@@ -79,39 +79,54 @@ module.exports = function (sequelize, DataTypes) {
if (profile) {
profile = {
name: profile.displayName || profile.username,
- photo: User.parsePhotoByProfile(profile)
+ photo: User.parsePhotoByProfile(profile),
+ biggerphoto: User.parsePhotoByProfile(profile, true)
}
}
return profile;
},
- parsePhotoByProfile: function (profile) {
+ parsePhotoByProfile: function (profile, bigger) {
var photo = null;
switch (profile.provider) {
case "facebook":
- photo = 'https://graph.facebook.com/' + profile.id + '/picture?width=96';
+ photo = 'https://graph.facebook.com/' + profile.id + '/picture';
+ if (bigger) photo += '?width=400';
+ else photo += '?width=96';
break;
case "twitter":
- photo = 'https://twitter.com/' + profile.username + '/profile_image?size=bigger';
+ photo = 'https://twitter.com/' + profile.username + '/profile_image';
+ if (bigger) photo += '?size=original';
+ else photo += '?size=bigger';
break;
case "github":
- photo = 'https://avatars.githubusercontent.com/u/' + profile.id + '?s=96';
+ photo = 'https://avatars.githubusercontent.com/u/' + profile.id;
+ if (bigger) photo += '?s=400';
+ else photo += '?s=96';
break;
case "gitlab":
- photo = profile.avatarUrl.replace(/(\?s=)\d*$/i, '$196');
+ photo = profile.avatarUrl;
+ if (bigger) photo.replace(/(\?s=)\d*$/i, '$1400');
+ else photo.replace(/(\?s=)\d*$/i, '$196');
break;
case "dropbox":
//no image api provided, use gravatar
- photo = 'https://www.gravatar.com/avatar/' + md5(profile.emails[0].value) + '?s=96';
+ photo = 'https://www.gravatar.com/avatar/' + md5(profile.emails[0].value);
+ if (bigger) photo += '?s=400';
+ else photo += '?s=96';
break;
case "google":
- photo = profile.photos[0].value.replace(/(\?sz=)\d*$/i, '$196');
+ photo = profile.photos[0].value;
+ if (bigger) photo.replace(/(\?sz=)\d*$/i, '$1400');
+ else photo.replace(/(\?sz=)\d*$/i, '$196');
break;
case "ldap":
//no image api provided,
//use gravatar if email exists,
//otherwise generate a letter avatar
if (profile.emails[0]) {
- photo = 'https://www.gravatar.com/avatar/' + md5(profile.emails[0]) + '?s=96';
+ photo = 'https://www.gravatar.com/avatar/' + md5(profile.emails[0]);
+ if (bigger) photo += '?s=400';
+ else photo += '?s=96';
} else {
photo = letterAvatars(profile.username);
}
@@ -123,7 +138,8 @@ module.exports = function (sequelize, DataTypes) {
var photoUrl = 'https://www.gravatar.com/avatar/' + md5(email);
return {
name: email.substring(0, email.lastIndexOf("@")),
- photo: photoUrl += '?s=96'
+ photo: photoUrl += '?s=96',
+ biggerphoto: photoUrl += '?s=400'
};
}
}