dbot/modules/profile/pages.js

68 lines
2.4 KiB
JavaScript
Raw Normal View History

var pages = function(dbot) {
var _ = require('underscore')._;
var connections = dbot.instance.connections;
return {
'/profile/:connection/:user': function(req, res) {
var connection = req.params.connection;
var user = dbot.cleanNick(req.params.user);
var primary = dbot.api.users.resolveUser(connection, user, true);
//var profile = dbot.api.profile.getProfile(primary);
var profile = dbot.db.profiles[connection][primary.toLowerCase()].profile;
var stats = dbot.api.stats.getUserChansStats(connection, primary.toLowerCase(), [
"lines", "words", "lincent", "wpl", "in_mentions"]
);
res.render('profile', {
'name': dbot.config.name,
'connection': connection,
'primary': primary,
'profile': profile,
'stats': stats.channels,
});
2013-01-24 02:02:50 +01:00
},
2013-01-24 20:39:28 +01:00
'/profile/:connection': function(req, res) {
2013-01-24 02:02:50 +01:00
var connection = req.params.connection;
var profiles = dbot.db.profiles[connection];
2013-01-25 01:40:42 +01:00
// TODO: Clean up
_.each(profiles, function(profile) {
2013-01-25 01:41:35 +01:00
if(_.has(dbot.db.quoteArrs, profile.profile.primary) && !profile.profile.avatar) {
2013-01-25 01:40:42 +01:00
var category = dbot.db.quoteArrs[profile.profile.primary];
var avatar = _.find(category, function(quote) {
return quote.match(/(\.jpg|\.png|\.jpeg)$/i);
});
if(avatar) profile.profile.avatar = avatar;
}
});
2013-01-25 01:30:09 +01:00
var nicks = [];
for (var p in profiles) {
if (profiles.hasOwnProperty(p) && profiles[p].profile.avatar) {
nicks.push(p);
}
}
nicks.sort(function(a, b) {
var x = profiles[a].profile.primary.toLowerCase();
var y = profiles[b].profile.primary.toLowerCase();
if(x > y) return 1;
if(x < y) return -1;
return 0;
});
2013-01-25 01:46:25 +01:00
2013-01-24 02:02:50 +01:00
res.render('profile_grid', {
'name': dbot.config.name,
'connection': connection,
2013-01-25 01:30:09 +01:00
'nicks': nicks,
2013-01-24 02:02:50 +01:00
'profiles': profiles,
});
}
}
};
exports.fetch = function(dbot) {
return pages(dbot);
};