From 5ef61aad02165f0c80a9258c0fdec017f23453fa Mon Sep 17 00:00:00 2001 From: Dominika Date: Thu, 16 Dec 2021 02:15:59 +0100 Subject: [PATCH] + shitty download buffering --- main.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 907b892..01a4713 100755 --- a/main.py +++ b/main.py @@ -13,6 +13,9 @@ assets = {} headers = {"Authorization":"token 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"} repo = "owosoftware" offset_temp = 0 # TODO +buffer_len = 0 # TODO +global buffer; +buffer = b"" def getReleases(): if not releases: @@ -174,16 +177,20 @@ class Passthrough(Operations): return random.randrange(1,100) def read(self, path, length, offset, fh): + global buffer + global buffer_len print("-- read: offset ", offset, " len ", length, " path ", path) - l = length + offset_temp - _h = headers - _h["Range"] = "bytes=" + str(offset_temp) + "-" + str(l-1) - _h["Accept"] = "application/octet-stream" - a = requests.get("https://api.github.com/repos/DomiOwO/" + repo + "/releases/assets/" + str(assets[path.split("/")[-2]][path.split("/")[-1]]["id"]), headers=headers); + if offset + length > buffer_len: + print("buffer exhausted: ", buffer_len) + _h = headers + _h["Range"] = "bytes=" + str(buffer_len) + "-" + str(buffer_len + 10485760) # 5MB + _h["Accept"] = "application/octet-stream" + a = requests.get("https://api.github.com/repos/DomiOwO/" + repo + "/releases/assets/" + str(assets[path.split("/")[-2]][path.split("/")[-1]]["id"]), headers=headers); + buffer += a.content + buffer_len = buffer_len + 10485760 #os.lseek(fh, offset, os.SEEK_SET) #return os.read(fh, length) - offset_ = offset_temp + offset - return a.content + return buffer[offset:offset+length] def write(self, path, buf, offset, fh): print("-- write: offset ", offset, " buf ", buf, " path ", path)