def send_message(self, text, bytestring=False): if not self.chats.connected: return user_text = self.frame.np.pluginhandler.outgoing_private_chat_event( self.user, text) if user_text is None: return (u, text) = user_text my_username = config.sections["server"]["login"] if text[:4] == "/me ": line = "* %s %s" % (my_username, text[4:]) usertag = tag = self.tag_me else: if text == self.chats.CTCP_VERSION: line = "CTCP VERSION" else: line = text tag = self.tag_local usertag = self.tag_my_username line = "[%s] %s" % (my_username, line) timestamp_format = config.sections["logging"]["private_timestamp"] append_line(self.ChatScroll, line, tag, timestamp_format=timestamp_format, username=my_username, usertag=usertag) if self.Log.get_active(): timestamp_format = config.sections["logging"]["log_timestamp"] log.write_log(config.sections["logging"]["privatelogsdir"], self.user, line, timestamp_format) if bytestring: payload = text else: payload = auto_replace(text) if self.PeerPrivateMessages.get_active(): # not in the soulseek protocol self.frame.np.send_message_to_peer( self.user, slskmessages.PMessageUser(None, my_username, payload)) else: self.frame.np.queue.append( slskmessages.MessageUser(self.user, payload)) self.frame.np.pluginhandler.outgoing_private_chat_notification( self.user, text)
def FolderContentsRequest(self, msg): username = None checkuser = None reason = "" for i in self.np.peerconns: if i.conn is msg.conn.conn: username = i.username checkuser, reason = self.np.CheckUser(username, None) break if not username: return if not checkuser: self.queue.put( slskmessages.MessageUser(username, "[Automatic Message] " + reason)) return if checkuser == 1: shares = self.config.sections["transfers"]["sharedfiles"] elif checkuser == 2: shares = self.config.sections["transfers"]["bsharedfiles"] else: self.queue.put( slskmessages.TransferResponse(msg.conn.conn, 0, reason=reason, req=0)) shares = {} if checkuser: if msg.dir in shares: self.queue.put( slskmessages.FolderContentsResponse( msg.conn.conn, msg.dir, shares[msg.dir])) elif msg.dir.rstrip('\\') in shares: self.queue.put( slskmessages.FolderContentsResponse( msg.conn.conn, msg.dir, shares[msg.dir.rstrip('\\')])) else: if checkuser == 2: shares = self.config.sections["transfers"]["sharedfiles"] if msg.dir in shares: self.queue.put( slskmessages.FolderContentsResponse( msg.conn.conn, msg.dir, shares[msg.dir])) elif msg.dir.rstrip("\\") in shares: self.queue.put( slskmessages.FolderContentsResponse( msg.conn.conn, msg.dir, shares[msg.dir.rstrip("\\")])) self.logMessage("%s %s" % (msg.__class__, vars(msg)), 4)
def SendMessage(self, text, bytestring=False): user_text = self.frame.pluginhandler.OutgoingPrivateChatEvent( self.user, text) if user_text is None: return (u, text) = user_text my_username = self.frame.np.config.sections["server"]["login"] if text[:4] == "/me ": line = "* %s %s" % (my_username, text[4:]) usertag = tag = self.tag_me else: if text == CTCP_VERSION: line = "CTCP VERSION" else: line = text tag = self.tag_local usertag = self.tag_my_username line = "[%s] %s" % (my_username, line) timestamp_format = self.frame.np.config.sections["logging"][ "private_timestamp"] AppendLine(self.ChatScroll, line, tag, timestamp_format=timestamp_format, username=my_username, usertag=usertag) if self.Log.get_active(): timestamp_format = self.frame.np.config.sections["logging"][ "log_timestamp"] write_log( self.frame.np.config.sections["logging"]["privatelogsdir"], self.user, line, timestamp_format) if bytestring: payload = text else: payload = self.frame.AutoReplace(text) if self.PeerPrivateMessages.get_active(): # not in the soulseek protocol self.frame.np.ProcessRequestToPeer( self.user, slskmessages.PMessageUser(None, my_username, payload)) else: self.frame.np.queue.put( slskmessages.MessageUser(self.user, payload))
def threadAlias(self, alias): text = expand_alias(self.frame.np.config.aliases, alias) if not text: log.add(_('Alias "%s" returned nothing') % alias) return if text[:2] == "//": text = text[1:] self.frame.np.queue.put(slskmessages.MessageUser(self.user, self.frame.AutoReplace(text)))
def send_automatic_message(self, user, message): """ Sends a private message with the prefix 'Automatic Message' to a user. No message is sent if less than five seconds have passed since the last one. """ send_time = time.time() if user in self.automatic_message_times and ( send_time - self.automatic_message_times[user]) < 5: return self.queue.append( slskmessages.MessageUser(user, "[Automatic Message] " + message)) self.automatic_message_times[user] = send_time
def send_message(self, user, message): user_text = self.core.pluginhandler.outgoing_private_chat_event(user, message) if user_text is None: return user, message = user_text if message == self.CTCP_VERSION: ui_message = "CTCP VERSION" else: message = ui_message = self.auto_replace(message) self.queue.append(slskmessages.MessageUser(user, message)) self.core.pluginhandler.outgoing_private_chat_notification(user, message) if self.ui_callback: self.ui_callback.send_message(user, ui_message)
def send_message(self, user, message, bytestring=False): if not self.core.active_server_conn: return user_text = self.core.pluginhandler.outgoing_private_chat_event( user, message) if user_text is None: return _, message = user_text if bytestring: payload = message else: payload = self.auto_replace(message) self.queue.append(slskmessages.MessageUser(user, payload)) self.core.pluginhandler.outgoing_private_chat_notification( user, message) if self.ui_callback: self.ui_callback.send_message(user, payload)
def msguserdirect(self,user,line): curtime = time.time() #self.log('lasttimesent: %0.3f -> curtime: %0.3f -> diff: %0.3f' % (self.msgdirect_lasttimesent, curtime, curtime-self.msgdirect_lasttimesent)) if (curtime-self.msgdirect_lasttimesent) >= 1: self.msgdirect_lasttimesent = curtime self.parent.frame.np.queue.put(slskmessages.MessageUser(user, line.encode("utf-8",'replace'))) #hmm..?