Exemplo n.º 1
0
    def GetUserStats(self, msg):

        if msg.user in self.users:
            tab = self.users[msg.user]
            tab.speed.set_text(_("Speed: %s") % Humanize(msg.avgspeed))
            tab.filesshared.set_text(_("Files: %s") % Humanize(msg.files))
            tab.dirsshared.set_text(_("Directories: %s") % Humanize(msg.dirs))
Exemplo n.º 2
0
    def SetDirectory(self, directory):

        self.selected_folder = directory
        self.FileStore.clear()
        self.files.clear()

        found_dir = False

        for d, f in self.shares:
            if d == directory:
                found_dir = True
                files = f
                break

        if not found_dir:
            return

        for file in files:
            # Filename, HSize, Bitrate, HLength, Size, Length, RawFilename
            rl = 0
            try:
                size = int(file[2])
            except ValueError:
                size = 0

            f = [file[1], Humanize(size)]

            if file[3] == "":
                f += ["", ""]
            else:
                # file[4] is for file types such as 'mp3'
                attrs = file[4]
                if attrs != [] and type(attrs) is list:

                    if len(attrs) >= 3:

                        br = str(attrs[0])
                        if attrs[2]:
                            br = br + " (vbr)"

                        try:
                            rl = int(attrs[1])
                        except ValueError:
                            rl = 0

                        l = "%i:%02i" % (rl / 60, rl % 60)  # noqa: E741
                        f += [br, l]
                    else:
                        f += ["", ""]
                else:
                    f += ["", ""]

            f += [int(size), rl, file[1]]

            try:
                self.files[f[0]] = self.FileStore.append(f)
            except Exception as error:  # noqa: F841
                displayTraceback()
Exemplo n.º 3
0
    def GetUserStats(self, msg):

        iter = self.GetIter(msg.user)
        if iter is None:
            return

        hspeed = HumanSpeed(msg.avgspeed)
        hfiles = Humanize(msg.files)
        self.usersmodel.set(iter, 3, hspeed, 4, hfiles, 11, msg.avgspeed, 12,
                            msg.files)

        if msg.country is not None and msg.country != "":

            flag = "flag_" + msg.country
            self.SetUserFlag(msg.user, flag)
Exemplo n.º 4
0
    def GetUserStats(self, msg):

        iter = self.GetIter(msg.user)
        if iter is None:
            return

        hspeed = HumanSpeed(msg.avgspeed)
        hfiles = Humanize(msg.files)
        self.usersmodel.set(iter, 3, hspeed, 4, hfiles, 11, msg.avgspeed, 12, msg.files)

        if msg.country is not None:

            flag = "flag_" + msg.country
            self.usersmodel.set(iter, 1, self.frame.GetFlagImage(flag), 14, flag)

            for i in self.userlist:
                if i[0] == msg.user:
                    i[4] = flag
                    break
Exemplo n.º 5
0
    def GetUserStats(self, msg):

        user = msg.user
        iter = self.GetIter(user)

        if iter is None:
            return

        country = msg.country
        hspeed = HumanSpeed(msg.avgspeed)
        hfiles = Humanize(msg.files)

        self.usersmodel.set(
            iter,
            3, hspeed,
            4, hfiles,
            11, msg.avgspeed,
            12, msg.files
        )

        if country is not None and country != "":

            country = "flag_" + country
            self.SetUserFlag(user, country)
Exemplo n.º 6
0
    def AddUserResults(self, msg, user, country):

        if user in self.users:
            return

        self.users.add(user)

        counter = len(self.all_data) + 1

        inqueue = msg.inqueue
        ulspeed = msg.ulspeed
        h_speed = HumanSpeed(ulspeed)

        if msg.freeulslots:
            imdl = "Y"
            inqueue = 0
        else:
            imdl = "N"

        h_queue = Humanize(inqueue)

        append = False
        maxstoredresults = self.Searches.maxstoredresults

        for result in msg.list:

            if counter > maxstoredresults:
                break

            fullpath = result[1]
            fullpath_lower = fullpath.lower()

            if any(word in fullpath_lower for word in self.searchterm_words_ignore):
                """ Filter out results with filtered words (e.g. nicotine -music) """
                log.add(_("Filtered out excluded search result " + fullpath + " from user " + user), 2)
                continue

            if not any(word in fullpath_lower for word in self.searchterm_words_include):
                """ Some users may send us wrong results, filter out such ones """
                log.add(_("Filtered out inexact or incorrect search result " + fullpath + " from user " + user), 2)
                continue

            fullpath_split = reversed(fullpath.split('\\'))
            name = next(fullpath_split)
            directory = '\\'.join(fullpath_split)

            size = result[2]
            h_size = HumanSize(size)
            h_bitrate, bitrate, h_length = GetResultBitrateLength(size, result[4])

            self.append([counter, user, self.get_flag(user, country), imdl, h_speed, h_queue, directory, name, h_size, h_bitrate, h_length, bitrate, fullpath, country, size, ulspeed, inqueue])
            append = True
            counter += 1

        if append:
            # If this search wasn't initiated by us (e.g. wishlist), and the results aren't spoofed, show tab
            if not self.showtab:
                self.Searches.ShowTab(self, self.id, self.text, self.mode)
                self.showtab = True

            # Update counter
            self.Counter.set_text("Results: %d/%d" % (self.numvisibleresults, len(self.all_data)))

            # Update tab notification
            self.frame.Searches.request_changed(self.Main)
            if self.frame.MainNotebook.get_current_page() != self.frame.MainNotebook.page_num(self.frame.searchvbox):
                self.frame.SearchTabLabel.get_child().set_image(self.frame.images["online"])