1.读入json。

This commit is contained in:
facat 2019-06-17 22:45:50 +08:00
parent f04248df85
commit 4ea70981d1
4 changed files with 59 additions and 13 deletions

1
.gitignore vendored
View File

@ -5,4 +5,5 @@ bin/
include/
lib/
.idea
config.json

37
config.py Normal file
View File

@ -0,0 +1,37 @@
import argparse
import json
import sys
g_args = None
def read_json():
global g_args
json_path = g_args.config
if json_path is None:
print("specify json path")
sys.exit()
with open(json_path, "r", encoding="utf-8") as json_f:
js = json.load(json_f)
return js
def get_config():
global g_args
return g_args
def init_config():
global g_args
if g_args is not None:
return g_args
parser = argparse.ArgumentParser(description="Help")
parser.add_argument("-config", type=str)
_args = parser.parse_args()
g_args = _args
return _args
if __name__ == "__main__":
args = init_config()
print(args.config)

View File

@ -1,19 +1,31 @@
import requests
import datetime
import model
import config
def get_servers():
js = config.read_json()
_servers = js["servers"]
servers_dic = {}
for s in _servers:
servers_dic[s] = {}
servers_dic[s]["name"] = s
servers_dic[s]["url"] = _servers[s]["url"]
return servers_dic
# file_size if byte
# longest_time seconds
def download_file(
servers, chunk_size=4 * 1024, file_size=100 * 1024 * 1024, longest_time=60
):
for server in servers:
def download_file(chunk_size=4 * 1024, file_size=100 * 1024 * 1024, longest_time=60):
servers = get_servers()
for server_name in servers:
server = servers[server_name]
url = server["url"]
server_name = server["name"]
chunk_read = 0
s_time = datetime.datetime.now()
duration = longest_time
try:
with requests.get(url, stream=True, timeout=longest_time) as r:
for chunk in r.iter_content(chunk_size):

10
main.py
View File

@ -2,14 +2,10 @@
import datetime
import downloader
import config
if __name__ == "__main__":
config.init_config()
print(datetime.datetime.now())
servers = [
{"url": "http://67.209.190.15/1000M.bin", "name": "bwg"},
{"url": "http://185.255.130.87:10010/1000M.bin", "name": "hosteons"},
{"url": "http://192.168.1.130:10010/1000MB.bin", "name": "local"},
]
downloader.download_file(servers)
downloader.download_file()
print("Finished.")