1
- /*global Buffer: false, clearInterval: false, clearTimeout: false, console: false, global: false, module: false, process: false, querystring: false, require: false, setInterval: false, setTimeout: false, util: false, __filename: false, __dirname: false */
1
+ /*global Buffer: false, clearInterval: false, clearTimeout: false, console: false, global: false, exports: false, module: false, process: false, querystring: false, require: false, setInterval: false, setTimeout: false, util: false, __filename: false, __dirname: false */
2
2
3
- var irc = require ( 'irc' ) ;
4
- var timers = require ( 'timers' ) ;
3
+ var irc = require ( 'irc' ) ,
4
+ timers = require ( 'timers' ) ;
5
5
6
6
function Bot ( settings ) {
7
7
this . settings = settings ;
8
- console . log ( 'Connecting to IRC server ' + settings . irc . host + ' with nick ' +
9
- settings . irc . nick ) ;
8
+ console . log ( 'Connecting to IRC server ' + settings . irc . host + ' with nick ' + settings . irc . nick ) ;
10
9
11
10
12
11
this . irc = new irc . Client ( settings . irc . host , settings . irc . nick , {
13
12
channels : settings . irc . channels ,
14
- password : settings . irc . password ,
13
+ password : settings . irc . password
15
14
} ) ;
16
15
17
16
this . modules = [ ] ;
@@ -47,21 +46,22 @@ function Bot(settings) {
47
46
48
47
exports . Bot = Bot ;
49
48
50
- Bot . prototype . onQueueInterval = function ( module ) {
51
- if ( this . queue [ module ] . length > 0 ) {
52
- var item = this . queue [ module ] [ 0 ] ;
49
+ Bot . prototype . onQueueInterval = function ( mod ) {
50
+ if ( this . queue [ mod ] . length > 0 ) {
51
+ var item = this . queue [ mod ] [ 0 ] ;
53
52
this . irc . say ( item . to , item . message ) ;
54
- this . queue [ module ] = this . queue [ module ] . slice ( 1 ) ;
53
+ this . queue [ mod ] = this . queue [ mod ] . slice ( 1 ) ;
55
54
}
56
55
} ;
57
56
58
- Bot . prototype . onDigest = function ( module ) {
59
- var self = this ;
60
- var interval = setInterval ( function ( ) {
61
- if ( self . queue [ module ] . length > 0 ) {
62
- var item = self . queue [ module ] [ 0 ] ;
57
+ Bot . prototype . onDigest = function ( mod ) {
58
+ var self = this ,
59
+ item ,
60
+ interval = setInterval ( function ( ) {
61
+ if ( self . queue [ mod ] . length > 0 ) {
62
+ item = self . queue [ mod ] [ 0 ] ;
63
63
self . irc . say ( item . to , item . message ) ;
64
- self . queue [ module ] = self . queue [ module ] . slice ( 1 ) ;
64
+ self . queue [ mod ] = self . queue [ mod ] . slice ( 1 ) ;
65
65
}
66
66
else {
67
67
clearInterval ( interval ) ;
@@ -71,81 +71,91 @@ Bot.prototype.onDigest = function (module) {
71
71
72
72
Bot . prototype . onError = function ( msg ) {
73
73
console . error ( 'Error: %s: %s' , msg . command , msg . args . join ( ' ' ) ) ;
74
- }
74
+ } ;
75
75
76
76
Bot . prototype . onMessage = function ( from , to , msg ) {
77
- if ( route = this . findRoute ( msg ) ) {
78
- var obj = this ;
79
- route . fun . apply ( route . module , [ from , msg , args , function ( out ) {
77
+ var route = this . findRoute ( msg ) ,
78
+ obj = this ;
79
+ if ( route ) {
80
+ route . fun . apply ( route . module , [ from , msg , msg . args , function ( out ) {
80
81
obj . queue [ route . moduleName ] . push ( { to : to , message : out } ) ;
81
82
} ] ) ;
82
83
}
83
- }
84
+ } ;
84
85
85
86
Bot . prototype . onPM = function ( from , msg ) {
86
- if ( route = this . findRoute ( msg ) ) {
87
- var obj = this ;
88
- route . fun . apply ( route . module , [ from , msg , args , function ( out ) {
87
+ var route = this . findRoute ( msg ) ,
88
+ obj = this ;
89
+ if ( route ) {
90
+ route . fun . apply ( route . module , [ from , msg , msg . args , function ( out ) {
89
91
obj . queue [ route . moduleName ] . push ( { to : from , message : out } ) ;
90
92
} ] ) ;
91
93
}
92
- }
94
+ } ;
93
95
94
- Bot . prototype . loadModules = function ( ) {
95
- var self = this ;
96
+ Bot . prototype . loadModules = function ( ) {
97
+ var self = this ,
98
+ mod ,
99
+ settings ,
100
+ i ,
101
+ module_ ,
102
+ m ,
103
+ interval ;
96
104
97
- for ( module in this . settings . modules ) {
98
- var settings = this . settings . modules [ module ] ;
99
- m = require ( './modules/' + module ) . Module ;
100
- this . modules [ module ] = new m ( settings ) ;
105
+ for ( mod in this . settings . modules ) { if ( this . settings . modules . hasOwnProperty ( mod ) ) {
106
+ settings = this . settings . modules [ mod ] ;
107
+ m = require ( './modules/' + mod ) . Module ;
108
+ this . modules [ mod ] = new m ( settings ) ;
101
109
102
- this . queue [ module ] = [ ] ;
110
+ this . queue [ mod ] = [ ] ;
103
111
104
112
if ( settings . __digest ) {
105
113
setInterval (
106
- function ( module ) { self . onDigest ( module ) ; } ,
114
+ function ( mod ) { self . onDigest ( mod ) ; } ,
107
115
settings . __digest ,
108
- module
116
+ mod
109
117
) ;
110
118
}
111
119
else {
112
120
setInterval (
113
- function ( module ) { self . onQueueInterval ( module ) } ,
121
+ function ( mod ) { self . onQueueInterval ( mod ) ; } ,
114
122
settings . __interval || this . settings . interval ,
115
- module
123
+ mod
116
124
) ;
117
125
}
118
126
119
- for ( var i in this . modules [ module ] . intervals ) {
120
- interval = this . modules [ module ] . intervals [ i ] ;
127
+ for ( i in this . modules [ mod ] . intervals ) { if ( this . modules [ mod ] . intervals . hasOwnProperty ( i ) ) {
128
+ interval = this . modules [ mod ] . intervals [ i ] ;
121
129
122
- var module_ = module ;
123
- this . intervals [ module ] = timers . setInterval ( interval [ 0 ] , interval [ 1 ] ,
130
+ module_ = mod ;
131
+ this . intervals [ mod ] = timers . setInterval ( interval [ 0 ] , interval [ 1 ] ,
124
132
function ( output ) {
125
133
self . settings . irc . channels . forEach ( function ( channel ) {
126
134
self . queue [ module_ ] . push ( { to : channel , message : output } ) ;
127
135
} ) ;
128
136
} ) ;
129
- }
130
- }
131
- }
137
+ } }
138
+ } }
139
+ } ;
132
140
133
141
Bot . prototype . findRoute = function ( msg ) {
134
- if ( msg [ 0 ] == "!" ) {
142
+ var route , mod , key , i , args ;
143
+ if ( msg [ 0 ] === "!" ) {
135
144
msg = msg . substr ( 1 ) ;
136
- for ( key in this . modules ) {
137
- module = this . modules [ key ] ;
138
- for ( i in module . routes ) {
139
- route = module . routes [ i ] ;
140
- if ( args = route [ 0 ] . exec ( msg ) ) {
145
+ for ( key in this . modules ) { if ( this . modules . hasOwnProperty ( key ) ) {
146
+ mod = this . modules [ key ] ;
147
+ for ( i in mod . routes ) { if ( mod . routes . hasOwnProperty ( i ) ) {
148
+ route = mod . routes [ i ] ;
149
+ args = route [ 0 ] . exec ( msg ) ;
150
+ if ( args ) {
141
151
return {
142
152
fun : route [ 1 ] ,
143
- module : module ,
153
+ mod : mod ,
144
154
moduleName : key
145
155
} ;
146
156
}
147
- }
148
- }
157
+ } }
158
+ } }
149
159
}
150
- }
160
+ } ;
151
161
0 commit comments