From cfa3880a09eeac1028b39e63fefe6270e73bcf40 Mon Sep 17 00:00:00 2001 From: Luke Robles Date: Sun, 4 Feb 2018 22:14:11 +0000 Subject: [PATCH] Creating core utils for boiler plate code --- .gitignore | 1 + app/avatar.py | 9 ++++----- app/core_utils.py | 15 +++++++++++++++ app/dragon-bot.py | 7 ++----- 4 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 app/core_utils.py diff --git a/.gitignore b/.gitignore index e43b0f98..dde3895f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +*.pyc diff --git a/app/avatar.py b/app/avatar.py index d61d0023..2d4a9037 100644 --- a/app/avatar.py +++ b/app/avatar.py @@ -1,5 +1,6 @@ import requests +import core_utils import get_from_reddit def change_avatar(): @@ -9,10 +10,8 @@ def change_avatar(): extension = image.split('.')[-1] local_smug = "/tmp/smug.{}".format(extension) - # save an image locally if extension.lower() in ['png', 'jpg']: - with open(local_smug, 'wb') as f: - f.write(requests.get(image).content) - return open(local_smug, 'rb').read() + # save an image locally + return open(core_utils.download_image(image, local_smug), 'rb').read() else: - image = None \ No newline at end of file + image = None diff --git a/app/core_utils.py b/app/core_utils.py new file mode 100644 index 00000000..2c9d248c --- /dev/null +++ b/app/core_utils.py @@ -0,0 +1,15 @@ +import requests + +def download_image(url, path=None): + + request = requests.get(url) + suffix_list = ['jpeg', 'jpg', 'png', 'tif', 'svg',] + extension = request.headers['content-type'].split('/')[1] + + if not path: + path = "/tmp/image.{}".format(extension) + + if extension in suffix_list: + open(path, 'wb').write(requests.get(url).content) + return path + return 'Invalid image format' diff --git a/app/dragon-bot.py b/app/dragon-bot.py index 4478b062..541be0ce 100644 --- a/app/dragon-bot.py +++ b/app/dragon-bot.py @@ -9,6 +9,7 @@ import os import requests import avatar +import core_utils import decide import define_word import discord @@ -132,10 +133,6 @@ async def on_message(message): ) return try: - # Download the emoji with requests - with open(emoji_staging, 'wb') as f: - f.write(requests.get(url).content) - # Attempt to upload the emoji await client.send_message( message.channel, @@ -143,7 +140,7 @@ async def on_message(message): await client.create_custom_emoji( server=message.server, name=emoji_name, - image=open(emoji_staging, "rb").read() + image=open(core_utils.download_image(url, emoji_staging), "rb").read() ) ) )