Skip to content

Commit

Permalink
bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
ZeroRin committed Aug 23, 2023
1 parent 64440f4 commit 4c12560
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 5 deletions.
9 changes: 6 additions & 3 deletions gf_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def __len__(self):
return len(self.__keys)


def download(url, path, max_retry=3, timeout_sec=5):
def download(url, path, max_retry=10, timeout_sec=5):
socket.setdefaulttimeout(timeout_sec)
fname = os.path.split(path)[-1]
logger.info(f"Start downloading {fname}")
Expand All @@ -103,11 +103,14 @@ def download(url, path, max_retry=3, timeout_sec=5):
if not os.path.exists(path):
request.urlretrieve(url, path + ".tmp")
os.rename(path + ".tmp", path)
except (URLError, timeout, ConnectionResetError):
except Exception as e:
if i + 1 < max_retry:
logger.warning(f"Failed to download {fname} for {i+1}/10 tries")
logger.warning(
f"Failed to download {fname} for {i+1}/{max_retry} tries"
)
continue
else:
logger.exception(repr(e))
raise
else:
logger.info(f"Successfully downloaded {fname}")
Expand Down
35 changes: 33 additions & 2 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import json
import locale
import logging
import os
import shutil
import socket
import tkinter as tk
import tkinter.ttk as ttk
from functools import partial, wraps
Expand All @@ -12,17 +14,46 @@
from tkinter.messagebox import showerror, showinfo
from tkinter.simpledialog import Dialog
from typing import *
from urllib import request
from urllib.error import HTTPError

import pulp as lp
import urllib3
from gf_utils2.gamedata import GameData

from commander_new.commander import Commander
from gf_utils import download
from gunframe import GunFrame
from load_user_info import load_perfect_info, load_user_info
from prepare_choices import prepare_choices

logger = logging.getLogger(__name__)
https = urllib3.PoolManager()


def download(url, path, max_retry=10, timeout_sec=5):
socket.setdefaulttimeout(timeout_sec)
fname = os.path.split(path)[-1]
logger.info(f"Start downloading {fname}")
for i in range(max_retry):
try:
if not os.path.exists(path):
https.urlopen()
request.urlretrieve(url, path + ".tmp")
os.rename(path + ".tmp", path)
except Exception as e:
if i + 1 < max_retry:
logger.warning(
f"Failed to download {fname} for {i+1}/{max_retry} tries"
)
continue
else:
logger.exception(repr(e))
raise
else:
logger.info(f"Successfully downloaded {fname}")
break
return path


def menu_from_dict(
master: tk.Widget, options: dict, var_key: tk.Variable, var_value: tk.Variable
Expand Down Expand Up @@ -275,7 +306,7 @@ def download_data(self, region="ch", re_download=False):
try:
download(url, str(tmp_dir / f"{table}.txt"))
if (data_dir / f"table/{table}.txt").exists():
os.remove(data_dir / f"{table}.json")
os.remove(data_dir / f"table/{table}.txt")
(tmp_dir / f"{table}.txt").rename(
data_dir / f"table/{table}.txt"
)
Expand Down

0 comments on commit 4c12560

Please sign in to comment.