Exemple #1
0
    def on_save(self, widget):
        sharesdir = os.path.join(self.frame.data_dir, "usershares")

        try:
            if not os.path.exists(sharesdir):
                os.mkdir(sharesdir)
        except Exception as msg:
            log.add(
                _("Can't create directory '%(folder)s', reported error: %(error)s"
                  ), {
                      'folder': sharesdir,
                      'error': msg
                  })

        try:
            filepath = os.path.join(sharesdir, clean_file(self.user))

            with open(filepath, "w", encoding="utf-8") as sharesfile:
                import json
                json.dump(self.shares, sharesfile, ensure_ascii=False)

            log.add(
                _("Saved list of shared files for user '%(user)s' to %(dir)s"),
                {
                    'user': self.user,
                    'dir': sharesdir
                })

        except Exception as msg:
            log.add(
                _("Can't save shares, '%(user)s', reported error: %(error)s"),
                {
                    'user': self.user,
                    'error': msg
                })
Exemple #2
0
    def read_private_log(self):

        # Read log file
        config = self.frame.np.config.sections
        log = os.path.join(config["logging"]["privatelogsdir"],
                           clean_file(self.user.replace(os.sep, "-")) + ".log")

        try:
            numlines = int(config["logging"]["readprivatelines"])
        except Exception:
            numlines = 15

        try:
            with open(log, 'r', encoding='utf-8') as lines:
                # Only show as many log lines as specified in config
                lines = deque(lines, numlines)

                for line in lines:
                    append_line(self.ChatScroll,
                                line,
                                self.tag_hilite,
                                timestamp_format="",
                                username=self.user,
                                usertag=self.tag_hilite)
        except IOError:
            pass

        GLib.idle_add(scroll_bottom, self.ChatScroll.get_parent())
Exemple #3
0
    def write_log(self,
                  logsdir,
                  filename,
                  msg,
                  timestamp=None,
                  timestamp_format="%Y-%m-%d %H:%M:%S"):

        try:
            from pynicotine.utils import clean_file
            filename = clean_file(filename) + ".log"
            path = os.path.join(logsdir, filename)
            oldumask = os.umask(0o077)

            if not os.path.exists(logsdir):
                os.makedirs(logsdir)

            with open(path, 'ab', 0) as logfile:
                os.umask(oldumask)

                text = "%s %s\n" % (time.strftime(
                    timestamp_format, time.localtime(timestamp)), msg)
                logfile.write(text.encode('utf-8', 'replace'))

        except Exception as error:
            self.add(
                _("Couldn't write to log file \"%(filename)s\": %(error)s") % {
                    "filename": filename,
                    "error": error
                })
    def read_private_log(self):

        numlines = config.sections["logging"]["readprivatelines"]

        if not numlines:
            return

        filename = clean_file(self.user) + ".log"
        path = os.path.join(config.sections["logging"]["privatelogsdir"],
                            filename)

        try:
            self.append_log_lines(path, numlines)
        except OSError:
            pass
    def read_room_logs(self):

        numlines = config.sections["logging"]["readroomlines"]

        if not numlines:
            return

        filename = clean_file(self.room) + ".log"
        path = os.path.join(config.sections["logging"]["roomlogsdir"],
                            filename)

        try:
            self.append_log_lines(path, numlines)
        except OSError:
            pass
Exemple #6
0
    def on_save_picture(self, widget):

        if self.image is None or self.image_pixbuf is None:
            return

        filename = "%s %s.jpg" % (self.user,
                                  time.strftime("%Y-%m-%d %H:%M:%S"))
        pathname = os.path.join(
            self.frame.np.config.sections["transfers"]["downloaddir"],
            clean_file(filename))

        if not os.path.exists(pathname):
            self.image_pixbuf.savev(pathname, "jpeg", ["quality"], ["100"])
            log.add(_("Picture saved to %s"), pathname)
        else:
            log.add(_("Picture not saved, %s already exists."), pathname)
Exemple #7
0
    def on_save(self, widget):
        sharesdir = os.path.join(self.frame.data_dir, "usershares")

        try:
            if not os.path.exists(sharesdir):
                os.mkdir(sharesdir)
        except Exception as msg:
            log.add(_("Can't create directory '%(folder)s', reported error: %(error)s"), {'folder': sharesdir, 'error': msg})

        try:
            import pickle as mypickle
            import bz2
            sharesfile = bz2.BZ2File(os.path.join(sharesdir, clean_file(self.user)), 'w')
            mypickle.dump(self.shares, sharesfile, protocol=mypickle.HIGHEST_PROTOCOL)
            sharesfile.close()
            log.add(_("Saved list of shared files for user '%(user)s' to %(dir)s"), {'user': self.user, 'dir': sharesdir})

        except Exception as msg:
            log.add(_("Can't save shares, '%(user)s', reported error: %(error)s"), {'user': self.user, 'error': msg})
Exemple #8
0
    def delete_chat_log_response(self, dialog, response, data):

        if response == Gtk.ResponseType.OK:
            log_path = os.path.join(
                self.frame.np.config.sections["logging"]["privatelogsdir"],
                clean_file(self.user.replace(os.sep, "-")) + ".log"
            )

            try:
                if os.path.exists(log_path):
                    os.remove(log_path)

            except Exception as e:
                log.add(_("Failed to remove logged chat messages for user '%(user)s'. Error: %(error)s"), {
                    "user": self.user,
                    "error": e
                })

            self.on_clear_messages(dialog)

        dialog.destroy()
Exemple #9
0
    def read_private_log(self):

        # Read log file
        config = self.frame.np.config.sections
        log = os.path.join(config["logging"]["privatelogsdir"], clean_file(self.user.replace(os.sep, "-")) + ".log")

        try:
            numlines = int(config["logging"]["readprivatelines"])
        except Exception:
            numlines = 15

        try:
            try:
                self.append_log_lines(log, numlines, 'utf-8')

            except UnicodeDecodeError:
                self.append_log_lines(log, numlines, 'latin-1')

        except IOError:
            pass

        GLib.idle_add(scroll_bottom, self.ChatScroll.get_parent())
    def save_shares_list_to_disk(self, user, shares_list):

        sharesdir = os.path.join(self.config.data_dir, "usershares")

        try:
            if not os.path.exists(sharesdir):
                os.makedirs(sharesdir)

        except Exception as msg:
            log.add(
                _("Can't create directory '%(folder)s', reported error: %(error)s"
                  ), {
                      'folder': sharesdir,
                      'error': msg
                  })

        try:
            path = os.path.join(sharesdir, clean_file(user))

            with open(path, "w", encoding="utf-8") as file_handle:
                json.dump(shares_list, file_handle, ensure_ascii=False)

            log.add(
                _("Saved list of shared files for user '%(user)s' to %(dir)s"),
                {
                    'user': user,
                    'dir': sharesdir
                })

        except Exception as msg:
            log.add(
                _("Can't save shares, '%(user)s', reported error: %(error)s"),
                {
                    'user': user,
                    'error': msg
                })