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. |