⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ratemeasure.py

📁 BitTorrentABC-Linux-V.2.4.3源码
💻 PY
字号:
# Written by Bram Cohen# see LICENSE.txt for license informationfrom time import timetrue = 1false = 0class RateMeasure:    def __init__(self, left):        self.start = None        self.last = None        self.rate = 0        self.remaining = None        self.left = left        self.broke = false        self.got_anything = false    def data_came_in(self, amount):        if not self.got_anything:            self.got_anything = true            self.start = time() - 2            self.last = self.start            self.left -= amount            return        self.update(time(), amount)    def data_rejected(self, amount):        self.left += amount    def get_time_left(self):        if not self.got_anything:            return None        t = time()        if t - self.last > 15:            self.update(t, 0)        return self.remaining    def get_size_left(self):        return self.left    def update(self, t, amount):        self.left -= amount        try:            self.rate = ((self.rate * (self.last - self.start)) + amount) / (t - self.start)            self.last = t            self.remaining = self.left / self.rate            if self.start < self.last - self.remaining:                self.start = self.last - self.remaining        except ZeroDivisionError:            self.remaining = None        if self.broke and self.last - self.start < 20:            self.start = self.last - 20        if self.last - self.start > 20:            self.broke = true

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -