Beispiel #1
0
    def add_empty_time(self):
        refresh_rate = cfg.refresh_rate() if cfg.refresh_rate() else 1.0
        time_diff = time.time() - self.speed_log_time
        nr_diffs = int(floor(time_diff / refresh_rate))

        if nr_diffs > 1:
            self.bps_list.extend(['0.0'] * nr_diffs)

        if len(self.bps_list) > self.bps_list_max:
            self.bps_list = self.bps_list[len(self.bps_list) - self.bps_list_max:]
Beispiel #2
0
    def add_empty_time(self):
        refresh_rate = cfg.refresh_rate() if cfg.refresh_rate() else 1.0
        time_diff = time.time() - self.speed_log_time
        nr_diffs = int(floor(time_diff / refresh_rate))

        if nr_diffs > 1:
            self.bps_list.extend(['0.0'] * nr_diffs)

        if len(self.bps_list) > self.bps_list_max:
            self.bps_list = self.bps_list[len(self.bps_list) -
                                          self.bps_list_max:]
Beispiel #3
0
 def get_bps_list(self):
     refresh_rate = int(cfg.refresh_rate()) if cfg.refresh_rate() else 1
     self.add_empty_time()
     # We record every second, but display at the user's refresh-rate
     return self.bps_list[::refresh_rate]
Beispiel #4
0
 def get_bps_list(self):
     refresh_rate = int(cfg.refresh_rate()) if cfg.refresh_rate() else 1
     self.add_empty_time()
     # We record every second, but display at the user's refresh-rate
     return self.bps_list[::refresh_rate]
Beispiel #5
0
    def update(self, server=None, amount=0, testtime=None):
        """ Update counters for "server" with "amount" bytes """
        if testtime:
            t = testtime
        else:
            t = time.time()
        if t > self.end_of_day:
            # current day passed. get new end of day
            self.day_total = {}
            self.end_of_day = tomorrow(t) - 1.0

            if t > self.end_of_week:
                self.week_total = {}
                self.end_of_week = next_week(t) - 1.0

            if t > self.end_of_month:
                self.month_total = {}
                self.end_of_month = next_month(t) - 1.0

        if server:
            if server not in self.day_total:
                self.day_total[server] = 0L
            self.day_total[server] += amount

            if server not in self.week_total:
                self.week_total[server] = 0L
            self.week_total[server] += amount

            if server not in self.month_total:
                self.month_total[server] = 0L
            self.month_total[server] += amount

            if server not in self.grand_total:
                self.grand_total[server] = 0L
            self.grand_total[server] += amount

            # Quota check
            if self.have_quota and self.quota_enabled:
                self.left -= amount
                if self.left <= 0.0:
                    from sabnzbd.downloader import Downloader
                    if Downloader.do and not Downloader.do.paused:
                        Downloader.do.pause()
                        logging.warning(T('Quota spent, pausing downloading'))

        # Speedometer
        try:
            self.bps = (self.bps * (self.last_update - self.start_time) +
                        amount) / (t - self.start_time)
        except:
            self.bps = 0.0

        self.last_update = t

        check_time = t - 5.0

        if self.start_time < check_time:
            self.start_time = check_time

        if self.bps < 0.01:
            self.reset()

        elif self.log_time < check_time:
            logging.debug("bps: %s", self.bps)
            self.log_time = t

        refresh_rate = cfg.refresh_rate() if cfg.refresh_rate() else 1.0
        if self.speed_log_time < (t - float(refresh_rate)):
            self.add_empty_time()
            self.bps_list.append("%i" % (self.bps / KIBI))
            self.speed_log_time = t
Beispiel #6
0
    def update(self, server=None, amount=0, testtime=None):
        """ Update counters for "server" with "amount" bytes """
        if testtime:
            t = testtime
        else:
            t = time.time()
        if t > self.end_of_day:
            # current day passed. get new end of day
            self.day_total = {}
            self.end_of_day = tomorrow(t) - 1.0

            if t > self.end_of_week:
                self.week_total = {}
                self.end_of_week = next_week(t) - 1.0

            if t > self.end_of_month:
                self.month_total = {}
                self.end_of_month = next_month(t) - 1.0

        if server:
            if server not in self.day_total:
                self.day_total[server] = 0L
            self.day_total[server] += amount

            if server not in self.week_total:
                self.week_total[server] = 0L
            self.week_total[server] += amount

            if server not in self.month_total:
                self.month_total[server] = 0L
            self.month_total[server] += amount

            if server not in self.grand_total:
                self.grand_total[server] = 0L
            self.grand_total[server] += amount

            # Quota check
            if self.have_quota and self.quota_enabled:
                self.left -= amount
                if self.left <= 0.0:
                    from sabnzbd.downloader import Downloader
                    if Downloader.do and not Downloader.do.paused:
                        Downloader.do.pause()
                        logging.warning(T('Quota spent, pausing downloading'))

        # Speedometer
        try:
            self.bps = (self.bps * (self.last_update - self.start_time) + amount) / (t - self.start_time)
        except:
            self.bps = 0.0

        self.last_update = t

        check_time = t - 5.0

        if self.start_time < check_time:
            self.start_time = check_time

        if self.bps < 0.01:
            self.reset()

        elif self.log_time < check_time:
            logging.debug("bps: %s", self.bps)
            self.log_time = t

        refresh_rate = cfg.refresh_rate() if cfg.refresh_rate() else 1.0
        if self.speed_log_time < (t - float(refresh_rate)):
            self.add_empty_time()
            self.bps_list.append("%i" % (self.bps / KIBI))
            self.speed_log_time = t