Network/IRC/IrcWidget.py

changeset 2255
3e728bfc178c
parent 2253
7ba2af1ff785
child 2256
d07e2e6f3c56
equal deleted inserted replaced
2254:14f923d13971 2255:3e728bfc178c
75 self.__userPrefix = {} 75 self.__userPrefix = {}
76 76
77 self.__socket = None 77 self.__socket = None
78 78
79 self.__patterns = [ 79 self.__patterns = [
80 # :foo_!n=foo@foohost.bar.net PRIVMSG bar_ :some long message
81 (re.compile(r":([^!]+)!([^ ]+)\sPRIVMSG\s([^ ]+)\s:(.*)"), self.__query),
80 # :foo.bar.net COMMAND some message 82 # :foo.bar.net COMMAND some message
81 (re.compile(r""":([^ ]+)\s+([A-Z]+)\s+(.+)"""), self.__handleNamedMessage), 83 (re.compile(r""":([^ ]+)\s+([A-Z]+)\s+(.+)"""), self.__handleNamedMessage),
82 # :foo.bar.net 123 * :info 84 # :foo.bar.net 123 * :info
83 (re.compile(r""":([^ ]+)\s+(\d{3})\s+(.+)"""), self.__handleNumericMessage), 85 (re.compile(r""":([^ ]+)\s+(\d{3})\s+(.+)"""), self.__handleNumericMessage),
84 # PING :ping message 86 # PING :ping message
264 emptyIndex = self.channelsWidget.indexOf(self.__emptyLabel) 266 emptyIndex = self.channelsWidget.indexOf(self.__emptyLabel)
265 if emptyIndex > -1: 267 if emptyIndex > -1:
266 self.channelsWidget.removeTab(emptyIndex) 268 self.channelsWidget.removeTab(emptyIndex)
267 self.__leaveButton.setEnabled(True) 269 self.__leaveButton.setEnabled(True)
268 self.channelsWidget.setTabsClosable(True) 270 self.channelsWidget.setTabsClosable(True)
271
272 def __query(self, match):
273 """
274 Private method to handle a new private connection.
275
276 @param reference to the match object
277 @return flag indicating, if the message was handled (boolean)
278 """
279 # group(1) sender user name
280 # group(2) sender user@host
281 # group(3) target nick
282 # group(4) message
283 self.__openPrivate(match.group(1))
284 # the above call sets the new channel as the current widget
285 channel = self.channelsWidget.currentWidget()
286 channel.addMessage(match.group(1), match.group(4))
287 channel.setPrivateInfo("{0} - {1}".format(match.group(1), match.group(2)))
288
289 return True
269 290
270 @pyqtSlot(str) 291 @pyqtSlot(str)
271 def __openPrivate(self, name): 292 def __openPrivate(self, name):
272 """ 293 """
273 Private slot to open a private chat with the given user. 294 Private slot to open a private chat with the given user.

eric ide

mercurial