mirror of
git://git.acid.vegas/scroll.git
synced 2024-11-24 17:16:39 +00:00
Added timeouts and headers to urllib.requests
This commit is contained in:
parent
bd048ae332
commit
a8724b0d19
17
scroll.py
17
scroll.py
@ -61,6 +61,13 @@ def debug(data):
|
|||||||
def error(data, reason=None):
|
def error(data, reason=None):
|
||||||
print('{0} | [!] - {1} ({2})'.format(time.strftime('%I:%M:%S'), data, str(reason))) if reason else print('{0} | [!] - {1}'.format(time.strftime('%I:%M:%S'), data))
|
print('{0} | [!] - {1} ({2})'.format(time.strftime('%I:%M:%S'), data, str(reason))) if reason else print('{0} | [!] - {1}'.format(time.strftime('%I:%M:%S'), data))
|
||||||
|
|
||||||
|
def get_url(url, git=False):
|
||||||
|
data = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'}
|
||||||
|
if git:
|
||||||
|
data['Accept'] = 'application/vnd.github.v3+json'
|
||||||
|
req = urllib.request.Request(url, headers=data)
|
||||||
|
return urllib.request.urlopen(req, timeout=10)
|
||||||
|
|
||||||
def is_admin(ident):
|
def is_admin(ident):
|
||||||
return re.compile(admin.replace('*','.*')).search(ident)
|
return re.compile(admin.replace('*','.*')).search(ident)
|
||||||
|
|
||||||
@ -125,8 +132,8 @@ class Bot():
|
|||||||
cache = self.db
|
cache = self.db
|
||||||
self.db = {'root':list()}
|
self.db = {'root':list()}
|
||||||
try:
|
try:
|
||||||
sha = [item['sha'] for item in json.loads(urllib.request.urlopen('https://api.github.com/repos/ircart/ircart/contents').read().decode('utf-8')) if item['path'] == 'ircart'][0]
|
sha = [item['sha'] for item in json.loads(get_url('https://api.github.com/repos/ircart/ircart/contents', True).read().decode('utf-8')) if item['path'] == 'ircart'][0]
|
||||||
files = json.loads(urllib.request.urlopen(f'https://api.github.com/repos/ircart/ircart/git/trees/{sha}?recursive=true').read().decode('utf-8'))['tree']
|
files = json.loads(get_url(f'https://api.github.com/repos/ircart/ircart/git/trees/{sha}?recursive=true', True).read().decode('utf-8'))['tree']
|
||||||
for file in files:
|
for file in files:
|
||||||
if file['type'] != 'tree':
|
if file['type'] != 'tree':
|
||||||
file['path'] = file['path'][:-4]
|
file['path'] = file['path'][:-4]
|
||||||
@ -147,9 +154,9 @@ class Bot():
|
|||||||
async def play(self, chan, name, paste=None):
|
async def play(self, chan, name, paste=None):
|
||||||
try:
|
try:
|
||||||
if paste:
|
if paste:
|
||||||
ascii = urllib.request.urlopen(name, timeout=10)
|
ascii = get_url(name)
|
||||||
else:
|
else:
|
||||||
ascii = urllib.request.urlopen(f'https://raw.githubusercontent.com/ircart/ircart/master/ircart/{name}.txt', timeout=10)
|
ascii = get_url(f'https://raw.githubusercontent.com/ircart/ircart/master/ircart/{name}.txt')
|
||||||
if ascii.getcode() == 200:
|
if ascii.getcode() == 200:
|
||||||
ascii = ascii.readlines()
|
ascii = ascii.readlines()
|
||||||
if len(ascii) > int(self.settings['lines']) and chan != '#scroll':
|
if len(ascii) > int(self.settings['lines']) and chan != '#scroll':
|
||||||
@ -236,7 +243,7 @@ class Bot():
|
|||||||
url = args[2]
|
url = args[2]
|
||||||
if url.startswith('https://') or url.startswith('http://'):
|
if url.startswith('https://') or url.startswith('http://'):
|
||||||
try:
|
try:
|
||||||
content = urllib.request.urlopen(url).read()
|
content = get_url(url).read()
|
||||||
ascii = await img2irc.convert(content, int(self.settings['png_width']))
|
ascii = await img2irc.convert(content, int(self.settings['png_width']))
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
await self.irc_error(chan, 'failed to convert image', ex)
|
await self.irc_error(chan, 'failed to convert image', ex)
|
||||||
|
Loading…
Reference in New Issue
Block a user