From da63baeb8dbcf7999a2b5df9613d08264c78e1f2 Mon Sep 17 00:00:00 2001 From: facat Date: Sun, 16 Jun 2019 22:55:40 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E6=B2=A1=E6=9C=89=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E9=80=9F=E5=BA=A6=E7=9A=84bug=E3=80=82=202.=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E8=B6=85=E9=95=BF=E5=81=9C=E6=AD=A2=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- downloader.py | 19 ++++++++++++------- main.py | 7 +++++-- model.py | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/downloader.py b/downloader.py index 1507c01..dbe161b 100644 --- a/downloader.py +++ b/downloader.py @@ -3,25 +3,30 @@ import datetime import model # file_size if byte +# longest_time seconds -def download_file(servers, chunk_size=64 * 1024, file_size=1 * 1024 * 1024): +def download_file( + servers, chunk_size=4 * 1024, file_size=100 * 1024 * 1024, longest_time=60 +): for server in servers: url = server["url"] server_name = server["name"] chunk_read = 0 s_time = datetime.datetime.now() - e_time = None with requests.get(url, stream=True) as r: for chunk in r.iter_content(chunk_size): - if chunk_read >= file_size: - e_time = datetime.datetime.now() - break if chunk: chunk_read += len(chunk) - duration = (e_time - s_time).total_seconds() + e_time = datetime.datetime.now() + duration = (e_time - s_time).total_seconds() + if chunk_read >= file_size: + break + if duration >= longest_time: + print('Longer than {longest_time} seconds. Stopped.'.format(longest_time=longest_time)) + break speed = chunk_read / duration / 1024 / 1024 * 8 # mega bit model.add_record(server_name, speed) # print(now_timestamp{} MB download".format(chunk_read / 1024 / 1024)) # print("{} seconds".format(duration / 1)) - # return speed + return speed diff --git a/main.py b/main.py index 87f16fe..93ac97c 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,11 @@ +#!/usr/bin/python + + import downloader if __name__ == "__main__": servers = [{"url": "http://67.209.190.15/1000M.bin", "name": "bwg"}] - chunk_read = downloader.download_file(servers) - # print(chunk_read) + speed = downloader.download_file(servers) + print(speed) print("Finished.") diff --git a/model.py b/model.py index 404e4b3..3e4b81c 100644 --- a/model.py +++ b/model.py @@ -9,7 +9,7 @@ mysql_db = MySQLDatabase( def add_record(server, speed): now = datetime.datetime.now() now_timestamp = now.strftime("%Y-%m-%d %H:%M:%S") - print(now_timestamp) + # print(now_timestamp) mysql_db.execute_sql( 'insert into vps_download_speed(server,speed,datetime) values("{server}",{speed},"{datetime}")'.format( server=server, speed=speed, datetime=now_timestamp