forked from GitHub/dbot
merge with master, command uses nickserv auth in db [#421]
This commit is contained in:
commit
9625f1d316
@ -5,22 +5,24 @@ var api = function(dbot) {
|
||||
/**
|
||||
* Does the user have the correct access level to use the command?
|
||||
*/
|
||||
'hasAccess': function(user, command) {
|
||||
var access = true;
|
||||
'hasAccess': function(server, user, command, callback) {
|
||||
var accessNeeded = dbot.commands[command].access;
|
||||
|
||||
if(accessNeeded == 'admin') {
|
||||
if(!_.include(dbot.config.admins, user)) {
|
||||
access = false;
|
||||
}
|
||||
} else if(accessNeeded == 'moderator') {
|
||||
if(!_.include(dbot.config.moderators, user) &&
|
||||
!_.include(dbot.config.admins, user)) {
|
||||
access = false;
|
||||
if(accessNeeded == 'admin' || accessNeeded == 'moderator') {
|
||||
if(!_.include(dbot.config[accessNeeded + 's'], user)) { // lol
|
||||
callback(false);
|
||||
} else {
|
||||
if(_.has(dbot.modules, 'nickserv') && this.config.useNickserv == true) {
|
||||
dbot.api.nickserv.auth(server, user, function(result) {
|
||||
callback(result);
|
||||
});
|
||||
} else {
|
||||
callback(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
callback(true);
|
||||
}
|
||||
|
||||
return access;
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -5,9 +5,8 @@
|
||||
* ignoring that command.
|
||||
*/
|
||||
var _ = require('underscore')._;
|
||||
|
||||
var command = function(dbot) {
|
||||
this.dbot = dbot;
|
||||
|
||||
/**
|
||||
* Run the appropriate command given the input.
|
||||
*/
|
||||
@ -21,40 +20,42 @@ var command = function(dbot) {
|
||||
}
|
||||
}
|
||||
|
||||
dbot.api.ignore.isUserIgnoring(event.server, event.user, commandName, function(isIgnoring) {
|
||||
dbot.api.ignore.isUserBanned(event.server, event.user, commandName, function(isBanned) {
|
||||
if(isBanned) {
|
||||
event.reply(dbot.t('command_ban', {'user': event.user}));
|
||||
} else if(!isIgnoring &&
|
||||
this.api.hasAccess(event.user, commandName) &&
|
||||
dbot.commands[commandName].disabled !== true) {
|
||||
if(this.api.applyRegex(commandName, event)) {
|
||||
try {
|
||||
var command = dbot.commands[commandName];
|
||||
var results = command.apply(dbot.modules[command.module], [event]);
|
||||
if(_.has(command, 'hooks') && results !== false) {
|
||||
_.each(command['hooks'], function(hook) {
|
||||
hook.apply(hook.module, _.values(results));
|
||||
}, this);
|
||||
this.api.hasAccess(event.server, event.user, commandName, function(hasAccess) {
|
||||
dbot.api.ignore.isUserIgnoring(event.server, event.user, commandName, function(isIgnoring) {
|
||||
dbot.api.ignore.isUserBanned(event.server, event.user, commandName, function(isBanned) {
|
||||
if(isBanned) {
|
||||
event.reply(dbot.t('command_ban', {'user': event.user}));
|
||||
} else if(!isIgnoring &&
|
||||
hasAccess &&
|
||||
dbot.commands[commandName].disabled !== true) {
|
||||
if(this.api.applyRegex(commandName, event)) {
|
||||
try {
|
||||
var command = dbot.commands[commandName];
|
||||
var results = command.apply(dbot.modules[command.module], [event]);
|
||||
if(_.has(command, 'hooks') && results !== false) {
|
||||
_.each(command['hooks'], function(hook) {
|
||||
hook.apply(hook.module, _.values(results));
|
||||
}, this);
|
||||
}
|
||||
} catch(err) {
|
||||
if(dbot.config.debugMode == true) {
|
||||
event.reply('- Error in ' + commandName + ':');
|
||||
event.reply('- Message: ' + err);
|
||||
event.reply('- Top of stack: ' + err.stack.split('\n')[1].trim());
|
||||
}
|
||||
}
|
||||
} catch(err) {
|
||||
if(dbot.config.debugMode == true) {
|
||||
event.reply('- Error in ' + commandName + ':');
|
||||
event.reply('- Message: ' + err);
|
||||
event.reply('- Top of stack: ' + err.stack.split('\n')[1].trim());
|
||||
}
|
||||
}
|
||||
dbot.save();
|
||||
} else {
|
||||
if(commandName !== '~') {
|
||||
if(_.has(dbot.usage, commandName)) {
|
||||
event.reply('Usage: ' + dbot.usage[commandName]);
|
||||
} else {
|
||||
event.reply(dbot.t('syntax_error'));
|
||||
dbot.save();
|
||||
} else {
|
||||
if(commandName !== '~') {
|
||||
if(_.has(dbot.usage, commandName)) {
|
||||
event.reply('Usage: ' + dbot.usage[commandName]);
|
||||
} else {
|
||||
event.reply(dbot.t('syntax_error'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}.bind(this));
|
||||
}.bind(this));
|
||||
}.bind(this));
|
||||
}.bind(this);
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
"ignorable": false,
|
||||
"help": "http://github.com/reality/depressionbot/blob/master/modules/command/README.md",
|
||||
"dependencies": [ "ignore", "users" ]
|
||||
"dependencies": [ "ignore", "users" ],
|
||||
"useNickserv": false
|
||||
}
|
||||
|
@ -97,6 +97,18 @@ p#revnum {
|
||||
padding:10px;
|
||||
margin-bottom:0px;
|
||||
}
|
||||
p#branch {
|
||||
border-right:1px solid #ccc;
|
||||
border-left:1px solid #ccc;
|
||||
border-bottom:1px solid #ccc;
|
||||
margin:auto;
|
||||
display:inline-block;
|
||||
padding:10px;
|
||||
margin-top:0px;
|
||||
border-bottom-left-radius:5px;
|
||||
border-bottom-right-radius:5px;
|
||||
|
||||
}
|
||||
h2 {
|
||||
border-bottom: 1px solid #ccc;
|
||||
border-top:1px solid #ccc;
|
||||
|
15
public/project.js
Normal file
15
public/project.js
Normal file
@ -0,0 +1,15 @@
|
||||
$(document).ready(function() {
|
||||
$.get("https://api.github.com/repos/#{repo}/pulls", function(data) {
|
||||
if ($.parseJSON(data).length) { $("#pullreq").show();}
|
||||
});
|
||||
});
|
||||
$(document).keypress(function(e) {
|
||||
WebFontConfig={google:{families:["Ubuntu::latin"]}};(function(){var e=document.createElement("script");e.src=("https:"==document.location.protocol?"https":"http")+"://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js";e.type="text/javascript";e.async="true";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})()
|
||||
$('body').css({
|
||||
"background-image":"url('http://i.imgur.com/Yh8V2Oa.jpg')",
|
||||
"font-family": "Ubuntu, \"Source Sans Pro\",sans-serif"
|
||||
});
|
||||
$('a').css("color","#DD4814");
|
||||
$('#title').css("color","white");
|
||||
$('#main').css("border-color","#420432");
|
||||
});
|
@ -223,3 +223,18 @@ div.imgwrap > img {
|
||||
.thumbnail:hover > div.imgwrap > span.nicks {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
#footer {
|
||||
margin-top:5px;
|
||||
margin-right:10px;
|
||||
margin-left:10px;
|
||||
}
|
||||
#footer a {
|
||||
float:right;
|
||||
padding-left:2px;
|
||||
padding-right:2px;
|
||||
background-color:#f5f5f5;
|
||||
border-radius:3px;
|
||||
}
|
||||
|
||||
|
12
run.js
12
run.js
@ -222,10 +222,14 @@ DBot.prototype.reloadModules = function() {
|
||||
|
||||
process.nextTick(function() {
|
||||
_.each(moduleNames, function(name) {
|
||||
var moduleDir = './modules/' + name + '/';
|
||||
var rawModule = require(moduleDir + name);
|
||||
var module = rawModule.fetch(this);
|
||||
this.rawModules.push(rawModule);
|
||||
try {
|
||||
var moduleDir = './modules/' + name + '/';
|
||||
var rawModule = require(moduleDir + name);
|
||||
var module = rawModule.fetch(this);
|
||||
this.rawModules.push(rawModule);
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
||||
module.name = name;
|
||||
module.db = this.ddb.databanks[name];
|
||||
|
@ -14,6 +14,9 @@ html(lang='en')
|
||||
a(href='/') #{name} web interface
|
||||
div.container#main
|
||||
block content
|
||||
div#footer
|
||||
a#project(href='/project') About
|
||||
|
||||
script(type="text/javascript", src="/bootstrap/js/bootstrap.min.js")
|
||||
script(type="text/javascript", src="/d3/d3.v3.min.js")
|
||||
script(type="text/javascript", src="/script.js")
|
||||
|
@ -7,14 +7,7 @@ html(lang='#{curr839}')
|
||||
link(rel="stylesheet", type="text/css", href="/bootstrap/css/bootstrap.min.css")
|
||||
link(rel='stylesheet', type='text/css', href='/styles.css')
|
||||
link(rel="stylesheet", href="/project.css")
|
||||
title #{pagetitle}
|
||||
script
|
||||
$(document).ready(function() {
|
||||
$.get("https://api.github.com/repos/#{repo}/pulls", function(data) {
|
||||
if ($.parseJSON(data).length) { $("#pullreq").show();}
|
||||
});
|
||||
});
|
||||
|
||||
script(src="../project.js")
|
||||
body
|
||||
div.container
|
||||
div#page
|
||||
@ -30,6 +23,8 @@ html(lang='#{curr839}')
|
||||
#{revnum}
|
||||
pre#gitdiff
|
||||
#{diff}
|
||||
p#branch
|
||||
#{branch}
|
||||
h3 #{milestonehead}
|
||||
table#milestones.center
|
||||
tr
|
||||
@ -50,7 +45,7 @@ html(lang='#{curr839}')
|
||||
print #{Math.round(wdth)+"%"}
|
||||
td #{milestone.open_issues}
|
||||
td #{milestone.closed_issues}
|
||||
a(#href="https://github.com/"+repo+"/")
|
||||
a(href="https://github.com/"+repo+"/")
|
||||
#{propaganda}
|
||||
h3 #{languagetranshead}
|
||||
table#translations
|
||||
|
Loading…
Reference in New Issue
Block a user