@@ -6,77 +6,77 @@ const stripIndent = require('strip-indent');
66const NASA = new Discord . Client ( ) ;
77
88NASA . on ( 'ready' , ( ) => {
9- console . log ( 'Logged into Discord as ' + NASA . user . username ) ;
10- console . log ( 'You are in ' + NASA . guilds . size + ` guild${ NASA . guilds . size == 1 ? '' : 's' } !` ) ;
11- NASA . prefix = new RegExp ( '^<@!?' + NASA . user . id + '>' ) ;
9+ console . log ( 'Logged into Discord as ' + NASA . user . username ) ;
10+ console . log ( 'You are in ' + NASA . guilds . size + ` guild${ NASA . guilds . size == 1 ? '' : 's' } !` ) ;
11+ NASA . prefix = new RegExp ( '^<@!?' + NASA . user . id + '>' ) ;
1212} ) ;
1313
1414const commands = {
15- 'help' : ( message ) => sendHelp ( message ) ,
16- 'apod' : ( message , argument , dm ) => {
17- let date ;
18- switch ( argument ) {
19- case 'random' :
20- const firstAPODDate = new Date ( 96 , 6 , 16 ) ;
21- const currentDate = new Date ( ) ;
22- date = new Date ( Math . floor ( firstAPODDate . getTime ( ) + Math . random ( ) * ( currentDate . getTime ( ) - firstAPODDate . getTime ( ) ) ) ) ;
23- break ;
24- case 'today' :
25- date = new Date ( ) ;
26- break ;
27- case 'yesterday' :
28- date = ( ( d ) => new Date ( d . setDate ( d . getDate ( ) - 1 ) ) ) ( new Date ( ) ) ;
29- break ;
30- default :
31- date = argument == undefined ? new Date ( ) : new Date ( argument ) ;
32- if ( date == 'Invalid Date' ) {
33- return message . channel . send ( 'That date was invalid, try something like `Janary 30, 1995`, or `1995-1-30`' ) ;
34- }
35- break ;
36- }
37- getAPODImage ( date ) . then ( ( data ) => {
38- if ( ! dm ) {
39- message . channel . startTyping ( ) ;
40- message . channel . send ( '' , new Discord . Attachment ( data . url , 'APOD.jpg' ) ) . then ( ( ) => message . channel . stopTyping ( ) ) ;
41- }
42- if ( dm ) {
43- message . author . send ( '' , new Discord . Attachment ( data . url , 'APOD.jpg' ) ) ;
44- }
45- } ) ;
46- } ,
15+ 'help' : ( message ) => sendHelp ( message ) ,
16+ 'apod' : ( message , argument , dm ) => {
17+ let date ;
18+ switch ( argument ) {
19+ case 'random' :
20+ const firstAPODDate = new Date ( 96 , 6 , 16 ) ;
21+ const currentDate = new Date ( ) ;
22+ date = new Date ( Math . floor ( firstAPODDate . getTime ( ) + Math . random ( ) * ( currentDate . getTime ( ) - firstAPODDate . getTime ( ) ) ) ) ;
23+ break ;
24+ case 'today' :
25+ date = new Date ( ) ;
26+ break ;
27+ case 'yesterday' :
28+ date = ( ( d ) => new Date ( d . setDate ( d . getDate ( ) - 1 ) ) ) ( new Date ( ) ) ;
29+ break ;
30+ default :
31+ date = argument == undefined ? new Date ( ) : new Date ( argument ) ;
32+ if ( date == 'Invalid Date' ) {
33+ return message . channel . send ( 'That date was invalid, try something like `Janary 30, 1995`, or `1995-1-30`' ) ;
34+ }
35+ break ;
36+ }
37+ getAPODImage ( date ) . then ( ( data ) => {
38+ if ( ! dm ) {
39+ message . channel . startTyping ( ) ;
40+ message . channel . send ( '' , new Discord . Attachment ( data . url , 'APOD.jpg' ) ) . then ( ( ) => message . channel . stopTyping ( ) ) ;
41+ }
42+ if ( dm ) {
43+ message . author . send ( '' , new Discord . Attachment ( data . url , 'APOD.jpg' ) ) ;
44+ }
45+ } ) ;
46+ } ,
4747} ;
4848
4949NASA . on ( 'message' , ( message ) => {
50- if ( ! NASA . prefix . test ( message . content ) ) return ;
50+ if ( ! NASA . prefix . test ( message . content ) ) return ;
5151
52- // [0]: Command, [1] Argument
53- message . content = message . content . replace ( / [ ] { 2 , } / , ' ' ) ;
54- const dm = message . content . includes ( '-dm' ) ;
55- const split = message . content . split ( ' ' ) ;
56- if ( dm ) split . splice ( split . length - 1 , 1 ) ;
57- const command = split [ 1 ] ;
58- let argument ;
59- if ( split . length == 3 ) argument = split [ 2 ] ;
60- if ( split . length > 3 ) argument = `${ split [ 2 ] } ${ parseInt ( split [ 3 ] . replace ( / [ a - z ] / gi, '' ) ) - 1 } ${ split [ 4 ] } ` ;
52+ // [0]: Command, [1] Argument
53+ message . content = message . content . replace ( / [ ] { 2 , } / , ' ' ) ;
54+ const dm = message . content . includes ( '-dm' ) ;
55+ const split = message . content . split ( ' ' ) ;
56+ if ( dm ) split . splice ( split . length - 1 , 1 ) ;
57+ const command = split [ 1 ] ;
58+ let argument ;
59+ if ( split . length == 3 ) argument = split [ 2 ] ;
60+ if ( split . length > 3 ) argument = `${ split [ 2 ] } ${ parseInt ( split [ 3 ] . replace ( / [ a - z ] / gi, '' ) ) - 1 } ${ split [ 4 ] } ` ;
6161
62- if ( ! command ) return ;
63- switch ( command . toLowerCase ( ) ) {
64- case 'hi' :
65- case 'hey' :
66- case 'hello' :
67- message . reply ( 'Hi!' ) ;
68- return ;
69- default :
70- if ( command . toLowerCase ( ) in commands ) {
71- commands [ command . toLowerCase ( ) ] ( message , argument , dm ) ;
72- return ;
73- }
74- }
62+ if ( ! command ) return ;
63+ switch ( command . toLowerCase ( ) ) {
64+ case 'hi' :
65+ case 'hey' :
66+ case 'hello' :
67+ message . reply ( 'Hi!' ) ;
68+ return ;
69+ default :
70+ if ( command . toLowerCase ( ) in commands ) {
71+ commands [ command . toLowerCase ( ) ] ( message , argument , dm ) ;
72+ return ;
73+ }
74+ }
7575} ) ;
7676
7777function sendHelp ( message ) {
78- if ( message . channel . channel . type != 'dm' ) message . channel . send ( 'Sending you a DM...' ) . then ( ( message ) => message . delete ( 3000 ) ) ;
79- message . author . send ( stripIndent ( `
78+ if ( message . channel . channel . type != 'dm' ) message . channel . send ( 'Sending you a DM...' ) . then ( ( message ) => message . delete ( 3000 ) ) ;
79+ message . author . send ( stripIndent ( `
8080 Here's some information on how I can be used.
8181
8282 apod: Display an Astronomy Picture of the Day image.
@@ -91,25 +91,25 @@ function sendHelp(message) {
9191}
9292
9393function getAPODImage ( date ) {
94- return new Promise ( ( resolve , reject ) => {
95- date = formatDate ( date ) ;
96- superagent . get ( `https://api.nasa.gov/planetary/apod?concept_tags=false&api_key=${ config . nasa . apiKey } &date=${ date } ` )
97- . end ( ( err , res ) => {
98- if ( err ) return reject ( err ) ;
99- return resolve ( res . body ) ;
100- } ) ;
101- } ) ;
94+ return new Promise ( ( resolve , reject ) => {
95+ date = formatDate ( date ) ;
96+ superagent . get ( `https://api.nasa.gov/planetary/apod?concept_tags=false&api_key=${ config . nasa . apiKey } &date=${ date } ` )
97+ . end ( ( err , res ) => {
98+ if ( err ) return reject ( err ) ;
99+ return resolve ( res . body ) ;
100+ } ) ;
101+ } ) ;
102102}
103103
104104
105105function formatDate ( date ) {
106- let d = new Date ( date ) ;
107- let month = '' + ( d . getMonth ( ) + 1 ) ;
108- let day = '' + d . getDate ( ) ;
109- let year = d . getFullYear ( ) ;
110- if ( month . length < 2 ) month = '0' + month ;
111- if ( day . length < 2 ) day = '0' + day ;
112- return [ year , month , day ] . join ( '-' ) ;
106+ let d = new Date ( date ) ;
107+ let month = '' + ( d . getMonth ( ) + 1 ) ;
108+ let day = '' + d . getDate ( ) ;
109+ let year = d . getFullYear ( ) ;
110+ if ( month . length < 2 ) month = '0' + month ;
111+ if ( day . length < 2 ) day = '0' + day ;
112+ return [ year , month , day ] . join ( '-' ) ;
113113}
114114
115115NASA . login ( config . discord . token ) ;
0 commit comments