diff --git a/hydrabot/commands.js b/hydrabot/commands.js index 9b16381ee..b369bc131 100644 --- a/hydrabot/commands.js +++ b/hydrabot/commands.js @@ -250,16 +250,30 @@ Commands[ "avatar" ] = { } } -Commands["setusername"] = { - oplevel : 3, - fn : function( bot, params, message ){ +Commands[ "setusername" ] = { + oplevel: 3, + fn: function( bot, params, message ) { var name = getKey( params, "name", "Boris Johnson" ); - bot.setUsername(name, function(err){ - if(err) - bot.reply(message, err); - }) + bot.setUsername( name, function( err ) { + if ( err ) + bot.reply( message, err ); + } ) + + } +} + +Commands[ "cat" ] = { + oplevel: 0, + fn: function( bot, params, message ) { + + var http = require( "http" ); + var request = require( 'request' ); + + bot.sendFile( message, request("http://thewallpaperhost.com/wp-content/uploads/2014/12/cool-hd-wallpaper.jpg"), "cat.jpg", function( err ) { + bot.reply( message, err ); + } ); } } @@ -283,12 +297,12 @@ Commands[ "icon" ] = { } } -Commands["avataritup"] = { - oplevel : 2, - fn : function( bot, params, message ){ +Commands[ "avataritup" ] = { + oplevel: 2, + fn: function( bot, params, message ) { - console.log(message.channel); - bot.sendMessage( message, message.channel.server.members.getValues("avatar").join("\n") ); + console.log( message.channel ); + bot.sendMessage( message, message.channel.server.members.getValues( "avatar" ).join( "\n" ) ); } } @@ -488,9 +502,9 @@ function getUser( message, params, bot ) { if ( !message.isPM() ) { var wantedUser = getKey( params, "user", false ) || getKey( params, "u", false ); if ( wantedUser ) { - if(bot){ - console.log(bot.getUsers().length()); - return bot.getUsers().filter("username", wantedUser, true); + if ( bot ) { + console.log( bot.getUsers().length() ); + return bot.getUsers().filter( "username", wantedUser, true ); } usr = message.channel.server.members.filter( Discord.isUserID( wantedUser ) ? "id" : "username", wantedUser, true ); } diff --git a/index.js b/index.js index dcd31eea3..6483dee2d 100644 --- a/index.js +++ b/index.js @@ -468,15 +468,15 @@ exports.Client.prototype.connectWebsocket = function( cb ) { } else if ( dat.t === "PRESENCE_UPDATE" ) { var data = dat.d; - var getUser = self.getUser(data.user.id); + var getUser = self.getUser( data.user.id ); if ( getUser ) { //user already exists var usr = new User( data.user ); if ( usr.equalsStrict( getUser ) ) { //no changes, actually a presence. } else { - if(self.updateUserReferences( data.user.id, getUser, new User( data.user ) )){ - self.triggerEvent("userupdate", [getUser, usr]); + if ( self.updateUserReferences( data.user.id, getUser, new User( data.user ) ) ) { + self.triggerEvent( "userupdate", [ getUser, usr ] ); } } } @@ -535,8 +535,8 @@ exports.Client.prototype.connectWebsocket = function( cb ) { } else if ( dat.t === "USER_UPDATE" ) { if ( dat.d.id === self.user.id ) { - var newUsr = new User(dat.d); - self.triggerEvent("userupdate", [self.user, newUsr]); + var newUsr = new User( dat.d ); + self.triggerEvent( "userupdate", [ self.user, newUsr ] ); self.user = newUsr; } @@ -745,7 +745,14 @@ exports.Client.prototype.startPM = function( user, callback ) { * delete itself after being sent. * @method sendMessage */ -exports.Client.prototype.sendMessage = function( destination, toSend, callback, options ) { + +exports.Client.prototype.sendFile = function( destination, toSend, fileName, callback, options ) { + + this.sendMessage( destination, toSend, callback, options, fileName ); + +} + +exports.Client.prototype.sendMessage = function( destination, toSend, callback, options, fileName ) { options = options || {}; callback = callback || function() {}; @@ -753,8 +760,10 @@ exports.Client.prototype.sendMessage = function( destination, toSend, callback, var channel_id, message, mentions, self = this; channel_id = resolveChannel( destination, self ); - message = resolveMessage( toSend ); - mentions = resolveMentions( message, options.mention ); + if ( !fileName ) { + message = resolveMessage( toSend ); + mentions = resolveMentions( message, options.mention ); + } if ( channel_id ) { send(); @@ -764,6 +773,15 @@ exports.Client.prototype.sendMessage = function( destination, toSend, callback, function send() { + if(fileName){ + Internal.XHR.sendFile( self.token, channel_id, toSend, fileName, function(err){ + + callback(err); + + } ); + return; + } + Internal.XHR.sendMessage( self.token, channel_id, { content: message, mentions: mentions diff --git a/lib/internal.js b/lib/internal.js index ce9581a7f..42d0dc689 100644 --- a/lib/internal.js +++ b/lib/internal.js @@ -124,6 +124,22 @@ Internal.XHR.sendMessage = function( token, channelID, messageParameters, callba } +Internal.XHR.sendFile = function( token, channelID, file, fileName, callback ) { + request + .post( Endpoints.CHANNELS + "/" + channelID + "/messages" ) + .set( "authorization", token ) + .attach("file", file, fileName) + .end( function( err, res ) { + + if ( err ) { + callback( err ); + } else { + callback( null, res.body ); + } + + } ); +} + Internal.XHR.deleteMessage = function( token, channelID, messageID, callback ) { request .del( Endpoints.CHANNELS + "/" + channelID + "/messages/" + messageID ) @@ -133,19 +149,19 @@ Internal.XHR.deleteMessage = function( token, channelID, messageID, callback ) { } ); } -Internal.XHR.updateMessage = function( token, channelID, messageID, messageParameters, callback ){ +Internal.XHR.updateMessage = function( token, channelID, messageID, messageParameters, callback ) { - request - .patch(Endpoints.CHANNELS + "/" + channelID + "/messages/" + messageID) - .set( "authorization", token ) - .send( messageParameters ) - .end(function(err, res){ - if ( err ) { - callback( err ); - } else { - callback( null, res.body ); - } - }); + request + .patch( Endpoints.CHANNELS + "/" + channelID + "/messages/" + messageID ) + .set( "authorization", token ) + .send( messageParameters ) + .end( function( err, res ) { + if ( err ) { + callback( err ); + } else { + callback( null, res.body ); + } + } ); } Internal.XHR.getChannelLogs = function( token, channelID, amount, callback ) { @@ -225,36 +241,36 @@ Internal.XHR.getServer = function( token, serverID, callback ) { } -Internal.XHR.acceptInvite = function(token, inviteID, callback){ +Internal.XHR.acceptInvite = function( token, inviteID, callback ) { request .post( Endpoints.API + "/invite/" + inviteID ) .set( "authorization", token ) - .end(function(err, res){ - if(err){ - callback(err); - }else{ - callback(null, res.body) + .end( function( err, res ) { + if ( err ) { + callback( err ); + } else { + callback( null, res.body ) } - }); + } ); } -Internal.XHR.setUsername = function(token, avatar, email, newPassword, password, username, callback){ +Internal.XHR.setUsername = function( token, avatar, email, newPassword, password, username, callback ) { request - .patch(Endpoints.API + "/users/@me") + .patch( Endpoints.API + "/users/@me" ) .set( "authorization", token ) - .send({ - avatar : avatar, - email : email, - new_password : newPassword, - password : password, - username : username - }) - .end(function(err){ - callback(err); - }); + .send( { + avatar: avatar, + email: email, + new_password: newPassword, + password: password, + username: username + } ) + .end( function( err ) { + callback( err ); + } ); }