Merge pull request #222 from dmitmel/master

[pull] master from dmitmel:master
This commit is contained in:
pull[bot] 2021-03-19 02:42:33 +00:00 committed by GitHub
commit 626811a49f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 15 deletions

View file

@ -3,9 +3,9 @@
import sys
import os
from configparser import ConfigParser
import requests
import json
import urllib.parse
import urllib.request
sys.path.insert(1, os.path.join(os.path.dirname(__file__), "..", "script-resources"))
@ -48,9 +48,8 @@ def emote_downloader_and_iterator():
with open(registry_dump_file, "r") as f:
emote_registry_data = json.load(f)
except FileNotFoundError:
response = requests.get(registry_dump_url, timeout=10)
response.raise_for_status()
emote_registry_data = response.json()
with urllib.request.urlopen(registry_dump_url, timeout=10) as response:
emote_registry_data = json.load(response)
assert emote_registry_data["version"] == 1

View file

@ -6,10 +6,13 @@
import sys
import os
import requests
import urllib.request
import urllib.error
import colorama
import time
import argparse
import json
import typing
DISCORD_EPOCH = 1420070400000 # milliseconds
@ -52,19 +55,23 @@ if not (image_size is None or (image_size > 0 and image_size & (image_size - 1))
parser.error("image_size must be greater than zero and a power of two")
# no timeout here, sadly, due to this genius: <https://github.com/psf/requests/issues/3099#issuecomment-215522806>
response = requests.get(
"https://discordapp.com/api/users/{}".format(user_snowflake),
headers={"Authorization": "Bot {}".format(bot_token)},
timeout=3,
)
try:
response.raise_for_status()
except requests.HTTPError as err:
print(response.json(), file=sys.stderr)
opener = urllib.request.build_opener()
# Don't send the User-Agent header, Discord blocks the default one
opener.addheaders = []
with opener.open(
urllib.request.Request(
"http://discord.com/api/users/{}".format(user_snowflake),
headers={"Authorization": "Bot {}".format(bot_token)},
),
timeout=10,
) as response:
raw_data = json.load(response)
except urllib.error.HTTPError as err:
print(err, file=sys.stderr)
print(err.read(), file=sys.stderr)
raise err
raw_data = response.json()
data = {}
data["ID"] = raw_data["id"]