@@ -51,7 +51,7 @@ def whois(self, nickname, server=None):
51
51
52
52
while (1 ):
53
53
tmpresponse = self .getmessage ()
54
- print tmpresponse ['responsetype' ]
54
+ print ( tmpresponse ['responsetype' ])
55
55
56
56
if tmpresponse ['responsetype' ] == "ERR_NOSUCHSERVER" :
57
57
returninfo ['errormessage' ] = tmpresponse ['responsetype' ]
@@ -64,39 +64,39 @@ def whois(self, nickname, server=None):
64
64
returninfo ['errormessage' ] = tmpresponse ['responsetype' ]
65
65
return returninfo
66
66
else :
67
- print "ERROR IN whois() --> (ERR_NOSUCHNICK)" # it shouldn't get here
67
+ print ( "ERROR IN whois() --> (ERR_NOSUCHNICK)" ) # it shouldn't get here
68
68
return 1
69
69
70
70
elif tmpresponse ['responsetype' ] == "RPL_WHOISUSER" :
71
- tmpstring = string . split ( tmpresponse ['text' ])
71
+ tmpstring = tmpresponse ['text' ]. split ( )
72
72
returninfo ['nickname' ] = tmpstring [1 ]
73
73
returninfo ['username' ] = tmpstring [2 ]
74
74
returninfo ['hostname' ] = tmpstring [3 ]
75
- returninfo ['realname' ] = string .join (tmpstring [5 :])[1 :]
75
+ returninfo ['realname' ] = '' .join (tmpstring [5 :])[1 :]
76
76
del tmpstring
77
77
78
78
elif tmpresponse ['responsetype' ] == "RPL_WHOISSERVER" :
79
- tmpstring = string . split ( tmpresponse ['text' ])
79
+ tmpstring = tmpresponse ['text' ]. split ( )
80
80
returninfo ['server' ] = tmpstring [2 ]
81
- returninfo ['serverinfo' ] = string .join (tmpstring [3 :])[1 :]
81
+ returninfo ['serverinfo' ] = '' .join (tmpstring [3 :])[1 :]
82
82
del tmpstring
83
83
84
84
elif tmpresponse ['responsetype' ] == "RPL_WHOISOPERATOR" :
85
85
returninfo ['isoperator' ] = 1
86
86
87
87
elif tmpresponse ['responsetype' ] == "RPL_WHOISIDLE" :
88
- tmpstring = string . split ( tmpresponse ['text' ])
88
+ tmpstring = tmpresponse ['text' ]. split ( )
89
89
returninfo ['idle' ] = int (tmpstring [2 ])
90
90
del tmpstring
91
91
92
92
elif tmpresponse ['responsetype' ] == "RPL_AWAY" :
93
- tmpstring = string . split ( tmpresponse ['text' ])
93
+ tmpstring = tmpresponse ['text' ]. split ( )
94
94
returninfo ['away' ] = 1
95
- returninfo ['awaymessage' ] = string .join (tmpstring [2 :])[1 :]
95
+ returninfo ['awaymessage' ] = '' .join (tmpstring [2 :])[1 :]
96
96
97
97
elif tmpresponse ['responsetype' ] == "RPL_WHOISCHANNELS" :
98
- tmpstring = string . split ( tmpresponse ['text' ])
99
- tmpstring [2 ] = string . replace ( tmpstring [2 ], ':' , '' )
98
+ tmpstring = tmpresponse ['text' ]. split ( )
99
+ tmpstring [2 ] = tmpstring [2 ]. replace ( ':' , '' )
100
100
returninfo ['channels' ] = tmpstring [2 :]
101
101
102
102
elif tmpresponse ['responsetype' ] == "RPL_ENDOFWHOIS" :
@@ -116,7 +116,7 @@ def debug(self, msg):
116
116
if self .setDebug == 0 :
117
117
pass
118
118
else :
119
- print msg
119
+ print ( msg )
120
120
121
121
def list (self , channels = None , server = None ):
122
122
"Returns a list of channels in (channel_name, users, topic) form"
@@ -131,8 +131,8 @@ def list(self, channels=None, server=None):
131
131
while 1 :
132
132
x = self .getmessage ()
133
133
if (x ['event' ] == "RESPONSE" and x ['responsetype' ] == "RPL_LIST" ):
134
- d = string . split ( x ['text' ])
135
- chan = [d [1 ], d [2 ], string .join (d [3 :], " " )[1 :]]
134
+ d = x ['text' ]. split ( )
135
+ chan = [d [1 ], d [2 ], ( " " .join (d [3 :]) )[1 :]]
136
136
list .append (chan )
137
137
elif (x ['event' ] == "RESPONSE" and x ['responsetype' ] == "RPL_LISTEND" ):
138
138
return list
@@ -152,7 +152,7 @@ def names(self, channels=None):
152
152
while 1 :
153
153
x = self .getmessage ()
154
154
if x ['event' ] == "RESPONSE" and x ['responsetype' ] == "RPL_NAMREPLY" :
155
- tmptxt = string . split ( x ['text' ])
155
+ tmptxt = x ['text' ]. split ( )
156
156
chan = tmptxt [2 ]
157
157
for i in range ((len (tmptxt ) - 3 )):
158
158
if i == 0 :
@@ -174,8 +174,8 @@ def __init__(self,host,port):
174
174
175
175
def send (self ,data ): # reimplementation of socket.send function with error handling
176
176
try :
177
- self .sockfd .send (data )
178
- except socket .error , e :
177
+ self .sockfd .send (data . encode ( 'utf-8' ) )
178
+ except socket .error as e :
179
179
if e :
180
180
self .debug ( "Socket error: %s" % e )
181
181
return "ERR_COULDNOTSEND"
@@ -415,19 +415,20 @@ def getresponsetype(self, number): # returns (responseno, responsestr)
415
415
elif number == 384 : return ("RPL_MYPORTIS" )
416
416
elif number == 476 : return ("ERR_BADCHANMASK" )
417
417
# not official
418
- elif number == 001 : return ("RPL_WELCOME" )
418
+ elif number == 1 : return ("RPL_WELCOME" )
419
419
420
420
def getmessage (self ):
421
- buffer = ''
421
+ buffer = b ''
422
422
self .sockfd .settimeout (3.0 )
423
423
try :
424
424
while (1 ):
425
425
x = self .sockfd .recv (1 )
426
- if x != '\n ' :
426
+ if x != b '\n ' :
427
427
buffer = buffer + x
428
428
else :
429
+ buffer = buffer .decode ('utf-8' )
429
430
self .debug ("BUFFER IS: " + buffer )
430
- msg = string .split (buffer , ':' )
431
+ msg = buffer .split (':' )
431
432
message = ({"seqnumber" :'notvalid' , "responsetype" :0 ,"channel" :0 ,"nickname" :0 ,"username" :0 ,"hostname" :0 ,"event" :0 ,"recpt" :0 , "text" :0 })
432
433
if buffer [:4 ] == "PING" :
433
434
self .debug ("PING!" )
@@ -452,26 +453,26 @@ def getmessage(self):
452
453
self .messages .append (message )
453
454
return message
454
455
else :
455
- tmpmsg = string . split ( msg [1 ])
456
+ tmpmsg = msg [1 ]. split ( )
456
457
if "!" in (tmpmsg [0 ]):
457
- message ['nickname' ] = tmpmsg [0 ][:string . find ( tmpmsg [0 ], "!" )]
458
- message ['username' ] = tmpmsg [0 ][string . find ( tmpmsg [0 ], "!" )+ 1 :string . find ( tmpmsg [0 ], "@" )] # ugly line ;)
458
+ message ['nickname' ] = tmpmsg [0 ][:tmpmsg [0 ]. find ( "!" )]
459
+ message ['username' ] = tmpmsg [0 ][tmpmsg [0 ]. find ( "!" )+ 1 :tmpmsg [0 ]. find ( "@" )] # ugly line ;)
459
460
else :
460
461
message ['nickname' ] = tmpmsg [0 ]
461
462
message ['username' ] = tmpmsg [0 ]
462
- message ['hostname' ] = tmpmsg [0 ][string . find ( tmpmsg [0 ], "@" )+ 1 :]
463
+ message ['hostname' ] = tmpmsg [0 ][tmpmsg [0 ]. find ( "@" )+ 1 :]
463
464
try :
464
465
message ['event' ] = "RESPONSE"
465
466
message ['responsetype' ] = self .getresponsetype (int (tmpmsg [1 ]))
466
- message ['text' ] = buffer [(string .find (buffer , tmpmsg [1 ]))+ 4 :]
467
+ message ['text' ] = buffer [(buffer .find (tmpmsg [1 ]))+ 4 :]
467
468
message ['seqnumber' ] = self .getseqnumber ()
468
469
self .messages .append (message )
469
470
return message
470
471
except (TypeError , ValueError ):
471
472
message ['event' ] = tmpmsg [1 ]
472
473
if (message ['event' ] == "PRIVMSG" ):
473
474
message ['recpt' ] = tmpmsg [2 ]
474
- message ['text' ] = string .join (msg [2 :], ':' )
475
+ message ['text' ] = ':' .join (msg [2 :])
475
476
elif (message ['event' ] == "JOIN" ):
476
477
try :
477
478
message ['channel' ] = msg [2 ]
@@ -483,17 +484,17 @@ def getmessage(self):
483
484
message ['text' ] = msg [2 ]
484
485
elif (message ['event' ] == "MODE" ):
485
486
try :
486
- message ['text' ] = string .join (msg [2 :], ':' )
487
+ message ['text' ] = ':' .join (msg [2 :])
487
488
except IndexError :
488
489
message ['text' ] = tmpmsg [3 ]
489
490
message ['recpt' ] = tmpmsg [2 ]
490
491
elif (message ['event' ] == "NOTICE" ):
491
- message ['text' ] = buffer [string .find (buffer , "NOTICE" )+ 7 :]
492
+ message ['text' ] = buffer [buffer .find ("NOTICE" )+ 7 :]
492
493
elif (message ['event' ] == "KILL" ):
493
- message ['text' ] = buffer [(string .find (buffer , "(" ))+ 1 :- 1 ]
494
+ message ['text' ] = buffer [(buffer .find ("(" ))+ 1 :- 1 ]
494
495
self .debug (message ['text' ])
495
496
elif (message ['event' ] == "NICK" ):
496
- message ['text' ] = buffer [(string .find (buffer , "NICK" ))+ 5 :]
497
+ message ['text' ] = buffer [(buffer .find ("NICK" ))+ 5 :]
497
498
else :
498
499
message ['event' ] = "UNKNOWN"
499
500
message ['text' ] = "DO SOMETHING HERE!"
@@ -502,5 +503,5 @@ def getmessage(self):
502
503
self .messages .append (message )
503
504
return message
504
505
except :
505
- print_exc
506
+ print_exc ()
506
507
0 commit comments