diff --git a/modules/command/api.js b/modules/command/api.js index eb40cf4..e19927e 100644 --- a/modules/command/api.js +++ b/modules/command/api.js @@ -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; }, /** diff --git a/modules/command/command.js b/modules/command/command.js index df14456..990d512 100644 --- a/modules/command/command.js +++ b/modules/command/command.js @@ -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); diff --git a/modules/command/config.json b/modules/command/config.json index 0f059cd..0d14f1b 100644 --- a/modules/command/config.json +++ b/modules/command/config.json @@ -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 } diff --git a/public/project.css b/public/project.css index 95ff2d4..3e743e7 100644 --- a/public/project.css +++ b/public/project.css @@ -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; diff --git a/public/project.js b/public/project.js new file mode 100644 index 0000000..697c5f6 --- /dev/null +++ b/public/project.js @@ -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"); +}); diff --git a/public/styles.css b/public/styles.css index 39703bb..8e8dfaa 100644 --- a/public/styles.css +++ b/public/styles.css @@ -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; +} + diff --git a/run.js b/run.js index f6bb8e8..2af040c 100644 --- a/run.js +++ b/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]; diff --git a/views/layout.jade b/views/layout.jade index bb3cf2e..ad2d14e 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -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") diff --git a/views/project/project.jade b/views/project/project.jade index 560de26..5dca431 100644 --- a/views/project/project.jade +++ b/views/project/project.jade @@ -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