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