3
0
mirror of https://github.com/reality/dbot.git synced 2024-12-24 03:33:07 +01:00

fix ~setaliasparents, implement mobile aliases [#573]

This commit is contained in:
reality 2013-08-28 20:22:56 +00:00
parent c5a3d75d29
commit 2f2c702c8f
3 changed files with 34 additions and 5 deletions

View File

@ -74,14 +74,21 @@ var report = function(dbot) {
dbot.api.users.resolveChannel(server, cName, function(channel) {
if(channel) {
var perOps = channel.op;
if(this.config.notifyVoice) pOps = _.union(perOps, channel.voice);
if(this.config.notifyVoice) perOps = _.union(perOps, channel.voice);
async.eachSeries(ops, function(nick, next) {
dbot.api.users.resolveUser(server, nick, function(user) {
perOps = _.without(perOps, user.id); next();
console.log(user.mobile);
console.log(user.currentNick);
console.log(_.include(user.mobile, user.currentNick));
if(!_.include(user.mobile, user.currentNick)) {
perOps = _.without(perOps, user.id);
}
next();
});
}, function() {
offlineUsers = perOps;
console.log(offlineUsers);
_.each(offlineUsers, function(id) {
if(!this.pending[id]) this.pending[id] = [];
this.pending[id].push({
@ -105,7 +112,7 @@ var report = function(dbot) {
};
this.listener = function(event) {
if(_.has(this.pending, event.rUser.id) && this.pNotify[event.rUser.id] === true) {
if(_.has(this.pending, event.rUser.id) && this.pNotify[event.rUser.id] === true && !_.include(event.rUser.mobile, event.rUser.currentNick)) {
dbot.say(event.server, event.user, dbot.t('missed_notifies', {
'user': event.rUser.primaryNick,
'link': dbot.api.web.getUrl('notify/' + event.server + '/missing')

View File

@ -35,6 +35,22 @@ var commands = function(dbot) {
});
},
'~setmobilealias': function(event) {
if(_.include(event.rUser.aliases, event.params[1])) {
if(!_.has(event.rUser, 'mobile')) event.rUser.mobile = [];
if(!_.include(event.rUser.mobile, event.params[1])) {
event.rUser.mobile.push(event.params[1]);
this.db.save('users', event.rUser.id, event.rUser, function(err) {
event.reply(dbot.t('added_mobile_alias', { 'alias': event.params[1] }));
});
} else {
event.reply(dbot.t('already_mobile', { 'alias': event.params[1] }));
}
} else {
event.reply(dbot.t('unknown_alias', { 'alias': event.params[1] }));
}
},
'~addalias': function(event) {
var nick = event.input[1],
alias = event.input[2];
@ -66,6 +82,7 @@ var commands = function(dbot) {
this.api.resolveUser(event.server, alias, function(user) {
if(user) {
user.aliases = _.without(user.aliases, alias);
user.mobile = _.without(user.mobile, alias);
this.db.save('users', user.id, user, function(err) {
event.reply(dbot.t('alias_removed', {
'primary': user.primaryNick,
@ -86,7 +103,6 @@ var commands = function(dbot) {
user.primaryNick = newPrimary;
user.aliases = _.without(user.aliases, newPrimary);
user.aliases.push(newAlias);
this.internalAPI.updateChannelPrimaryUser(event.server, newAlias, newPrimary);
this.db.save('users', user.id, user, function(err) {
if(!err) {
@ -101,7 +117,7 @@ var commands = function(dbot) {
}
});
} else {
event.reply(dbot.t('unknown_alias', { 'alias': newPrimarj }));
event.reply(dbot.t('unknown_alias', { 'alias': newPrimary }));
}
}.bind(this));
},

View File

@ -8,6 +8,12 @@
"fr": "{alias} est un alias de {user}",
"it": "{alias} è un alias di {user}"
},
"added_mobile_alias": {
"en": "{alias} added as a mobile alias."
},
"already_mobile": {
"en": "{alias} is already a mobile alias."
},
"primary": {
"en": "{user} (currently {currentNick}) is a primary user with {count} aliases, ",
"na'vi": "{user} ({currentNick}) lu txin ulte {count}a stxo lu poru, ",