Blob Blame History Raw
Index: /trunk/nicotine+/pynicotine/gtkgui/privatechat.py
===================================================================
--- /trunk/nicotine+/pynicotine/gtkgui/privatechat.py	(revision 1291)
+++ /trunk/nicotine+/pynicotine/gtkgui/privatechat.py	(revision 1457)
@@ -30,4 +30,7 @@
 from pynicotine.logfacility import log
 
+CTCP_VERSION = "\x01VERSION\x01"
+
+
 class PrivateChats(IconNotebook):
 	CMDS = set(["/alias ", "/unalias ", "/whois ", "/browse ", "/ip ", "/pm ", "/msg ", "/search ", "/usearch ", "/rsearch ",
@@ -87,5 +90,5 @@
 			tab.GetUserStatus(msg.status)
 
-	def SendMessage(self, user, text = None, direction = None):
+	def SendMessage(self, user, text = None, direction = None, bytestring = False):
 		if user not in self.users:
 			tab = PrivateChat(self, user)
@@ -98,5 +101,5 @@
 				self.set_current_page(self.page_num(self.users[user].Main))
 		if text is not None:
-			self.users[user].SendMessage(text)
+			self.users[user].SendMessage(text, bytestring=bytestring)
 	
 	def TabPopup(self, user):
@@ -189,10 +192,10 @@
 		# SEND CLIENT VERSION to user if the following string is sent
 		ctcpversion = 0
-		if text == "\x01VERSION\x01":
+		if text == CTCP_VERSION:
 			ctcpversion = 1
 			text = "CTCP VERSION"
 		self.users[msg.user].ShowMessage(text, status, msg.timestamp)	
 		if ctcpversion and self.frame.np.config.sections["server"]["ctcpmsgs"] == 0:
-			self.SendMessage(msg.user, "Nicotine-Plus %s" % version)
+			self.SendMessage(msg.user, u"Nicotine-Plus %s" % version)
 		self.frame.pluginhandler.IncomingPrivateChatNotification(msg.user, text)
 
@@ -480,9 +483,9 @@
 		autoreply = self.frame.np.config.sections["server"]["autoreply"]
 		if self.frame.away and not self.autoreplied and autoreply:
-			self.SendMessage("[Auto-Message] %s" % autoreply)
+			self.SendMessage(u"[Auto-Message] %s" % autoreply)
 			self.autoreplied = 1
 		self.frame.Notifications.new_tts(self.frame.np.config.sections["ui"]["speechprivate"] %{"user":self.frame.Notifications.tts_clean(self.user), "message": self.frame.Notifications.tts_clean(speech)} )
 
-	def SendMessage(self, text):
+	def SendMessage(self, text, bytestring=False):
 		user_text = self.frame.pluginhandler.OutgoingPrivateChatEvent(self.user, text)
 		if user_text == None:
@@ -496,5 +499,5 @@
 		else:
 			
-			if text == "\x01VERSION\x01":
+			if text == CTCP_VERSION:
 				line = "CTCP VERSION"
 			else:
@@ -508,10 +511,14 @@
 			self.logfile = WriteLog(self.logfile, self.frame.np.config.sections["logging"]["privatelogsdir"], self.user, line)
 		
+		if bytestring:
+			payload = text
+		else:
+			payload = ToBeEncoded(self.frame.AutoReplace(text), self.encoding)
+
 		if self.PeerPrivateMessages.get_active():
 			# not in the soulseek protocol
-			self.frame.np.ProcessRequestToPeer(self.user, slskmessages.PMessageUser(None, my_username, ToBeEncoded(self.frame.AutoReplace(text), self.encoding)))
-		else:
-			self.frame.np.queue.put(slskmessages.MessageUser(self.user, ToBeEncoded(self.frame.AutoReplace(text), self.encoding)))
-			
+			self.frame.np.ProcessRequestToPeer(self.user, slskmessages.PMessageUser(None, my_username, payload))
+		else:
+			self.frame.np.queue.put(slskmessages.MessageUser(self.user, payload))
 
 		
@@ -633,5 +640,5 @@
 		elif cmd == "/ctcpversion":
 			if args:
-				self.frame.privatechats.SendMessage(args, "\x01VERSION\x01", 1)
+				self.frame.privatechats.SendMessage(args, CTCP_VERSION, 1, bytestring=True)
 		elif cmd in ["/clear", "/cl"]:
 			self.ChatScroll.get_buffer().set_text("")
Index: /trunk/nicotine+/pynicotine/gtkgui/chatrooms.py
===================================================================
--- /trunk/nicotine+/pynicotine/gtkgui/chatrooms.py	(revision 1454)
+++ /trunk/nicotine+/pynicotine/gtkgui/chatrooms.py	(revision 1457)
@@ -1275,9 +1275,8 @@
 		elif cmd in ["/m", "/msg"]:
 			if byteargs:
-				s = byteargs.split(" ", 1)
-				user = s[0]
-				if len(s) == 2:
-					msg = s[1]
-				else:
+				user = byteargs.split(" ", 1)[0]
+				try:
+					msg = args.split(" ", 1)[1]
+				except IndexError:
 					msg = None
 				self.frame.privatechats.SendMessage(user, msg)
Index: /trunk/nicotine+/pynicotine/gtkgui/utils.py
===================================================================
--- /trunk/nicotine+/pynicotine/gtkgui/utils.py	(revision 1454)
+++ /trunk/nicotine+/pynicotine/gtkgui/utils.py	(revision 1457)
@@ -1021,5 +1021,5 @@
 			
 	def OnVersion(self, widget):
-		self.frame.privatechats.SendMessage(self.user, "\x01VERSION\x01")
+		self.frame.privatechats.SendMessage(self.user, "\x01VERSION\x01", bytestring=True)
 		
 	def OnCopyUser(self, widget):