diff options
| -rw-r--r-- | src/discord_image_bridge/utils.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/discord_image_bridge/utils.py b/src/discord_image_bridge/utils.py index 23a4fb0..49b92a3 100644 --- a/src/discord_image_bridge/utils.py +++ b/src/discord_image_bridge/utils.py @@ -11,6 +11,12 @@ from . import fsmanager download_locks={} +def safe_mkdir(dirname): + try: + return os.mkdir(dirname) + except FileExistsError: + pass + def download_and_cache(url, filename): cherrypy.log("Downloading attachment %s"%filename) try: @@ -25,13 +31,12 @@ def download_and_cache(url, filename): try: tmpname=fsmanager.hash2fname(hash,temp=True) dirname=os.path.dirname(tmpname) - try: - os.mkdir(dirname) - except FileExistsError: - pass + safe_mkdir(dirname) with fsmanager.DataFile(open(tmpname,'wb')) as fd: fd.write(resp.content) fname=fsmanager.hash2fname(hash) + dirname=os.path.dirname(fname) + safe_mkdir(dirname) os.rename(tmpname, fname) return hash, fname |
