Ticket #166: privatechat.py.diff

File privatechat.py.diff, 3.1 kB (added by gallows, 20 months ago)
  • privatechat.py

     
    111111                self.chats = chats 
    112112                self.frame = chats.frame 
    113113                self.logfile = None 
     114                self.reopened = False 
     115                self.temp_logsdir = os.path.join(os.path.dirname(self.frame.np.config.filename), "logs") 
     116                self.temp_logfile = None 
    114117                self.autoreplied = 0 
    115118                self.offlinemessage = 0 
    116119                self.status = -1 
     
    178181 
    179182                self.UpdateColours() 
    180183                 
    181                 # Read log file 
    182                 log = os.path.join(self.frame.np.config.sections["logging"]["logsdir"], fixpath(self.user.replace(os.sep, "-")) + ".log") 
    183                 try: 
    184                         f = open(log, "r") 
    185                         d = f.read() 
    186                         f.close() 
    187                         s = d.split("\n") 
    188                         for l in s[-8:-1]: 
    189                                 AppendLine(self.ChatScroll, l + "\n", self.tag_hilite, "", username=self.user, usertag=self.tag_hilite) 
     184                previous_log = os.path.join(self.temp_logsdir, self.user.replace(os.sep, "-") + ".log") 
     185 
     186                if os.path.exists(previous_log): 
     187                        self.reopened = True 
     188 
     189                        try: 
     190                                f = open(previous_log, 'r') 
     191                                d = f.read() 
     192                                f.close() 
     193                                s = d.split('\n') 
     194                                for l in s: 
     195                                        AppendLine(self.ChatScroll, l + '\n', self.tag_hilite, "", self.user, self.tag_hilite) 
     196 
     197 
     198                        except IOError, e: 
     199                                pass 
     200 
     201                else: 
     202                        # Read log file 
     203                        log = os.path.join(self.frame.np.config.sections["logging"]["logsdir"], self.user.replace(os.sep, "-") + ".log") 
     204                        try: 
     205                                f = open(log, "r") 
     206                                d = f.read() 
     207                                f.close() 
     208                                s = d.split("\n") 
     209                                for l in s[-8:-1]: 
     210                                        AppendLine(self.ChatScroll, l + "\n", self.tag_hilite, "", username=self.user, usertag=self.tag_hilite) 
    190211                                 
    191                 except IOError, e: 
    192                         pass 
     212                        except IOError, e: 
     213                                pass 
    193214 
    194                  
    195215        def destroy(self): 
    196216                if self.frame.translux: 
    197217                        self.frame.translux.unsubscribe(self.tlux_chat) 
     
    250270                AppendLine(self.ChatScroll, line, tag, "%c", username=self.user, usertag=self.tag_my_username) 
    251271                if self.Log.get_active(): 
    252272                        self.logfile = WriteLog(self.logfile, self.frame.np.config.sections["logging"]["logsdir"], self.user, line) 
     273 
     274                self.temp_logfile = WriteLog(self.temp_logfile, self.temp_logsdir, self.user, line) 
    253275                 
    254276                autoreply = self.frame.np.config.sections["server"]["autoreply"] 
    255277                if self.frame.away and not self.autoreplied and autoreply: 
     
    279301                AppendLine(self.ChatScroll, message, tag, "%c", username=my_username, usertag=usertag) 
    280302                if self.Log.get_active(): 
    281303                        self.logfile = WriteLog(self.logfile, self.frame.np.config.sections["logging"]["logsdir"], self.user, message) 
     304                self.temp_logfile = WriteLog(self.temp_logfile, self.temp_logsdir, self.user, message) 
    282305                 
    283306                if self.PeerPrivateMessages.get_active(): 
    284307                        # not in the soulseek protocol 
     
    540563                self.chats.RemoveTab(self) 
    541564                self.destroy() 
    542565 
     566                if self.reopened: 
     567                        if self.temp_logfile is not None: 
     568                                self.temp_logfile.close() 
     569                        try: 
     570                                os.remove(os.path.join(self.temp_logsdir, self.user.replace(os.sep, "-") + ".log")) 
     571                        except: 
     572                                pass 
     573 
    543574        def OnKeyPress(self, widget, event): 
    544575                if event.keyval == gtk.gdk.keyval_from_name("Prior"): 
    545576                        scrolled = self.ChatScroll.get_parent()