nodeclub/models/user.js
alsotang 2d552d67f0 Revert "使用 ruby-china 的 gravatar 反向代理".
ruby-china 的代理服务不稳定

This reverts commit 9a9490f4c1f48b70649a5c442b60e16b2dd357f3.
2014-09-21 22:08:19 +08:00

60 lines
1.8 KiB
JavaScript

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var utility = require('utility');
var mcache = require('memory-cache');
var UserSchema = new Schema({
name: { type: String},
loginname: { type: String},
pass: { type: String },
email: { type: String},
url: { type: String },
profile_image_url: {type: String},
location: { type: String },
signature: { type: String },
profile: { type: String },
weibo: { type: String },
avatar: { type: String },
githubId: { type: String},
githubUsername: {type: String},
is_block: {type: Boolean, default: false},
score: { type: Number, default: 0 },
topic_count: { type: Number, default: 0 },
reply_count: { type: Number, default: 0 },
follower_count: { type: Number, default: 0 },
following_count: { type: Number, default: 0 },
collect_tag_count: { type: Number, default: 0 },
collect_topic_count: { type: Number, default: 0 },
create_at: { type: Date, default: Date.now },
update_at: { type: Date, default: Date.now },
is_star: { type: Boolean },
level: { type: String },
active: { type: Boolean, default: true },
receive_reply_mail: {type: Boolean, default: false },
receive_at_mail: { type: Boolean, default: false },
from_wp: { type: Boolean },
retrieve_time: {type: Number},
retrieve_key: {type: String}
});
UserSchema.virtual('avatar_url').get(function () {
var url = this.avatar || ('http://www.gravatar.com/avatar/' + utility.md5(this.email.toLowerCase()) + '?size=48');
return url;
});
UserSchema.virtual('isAdvanced').get(function () {
// 积分高于 700 则认为是高级用户
return this.score > 700;
});
UserSchema.index({name: 1});
UserSchema.index({loginname: 1}, {unique: true});
UserSchema.index({email: 1}, {unique: true});
UserSchema.index({score: -1});
UserSchema.index({githubId: 1});
mongoose.model('User', UserSchema);