47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
import json
|
|
import threading
|
|
|
|
import maya.utils
|
|
|
|
from .python_compatibility import PY2
|
|
|
|
# HTTP library might not be available in batch mode
|
|
available = True
|
|
|
|
try:
|
|
# different ways to import urlopen
|
|
if PY2:
|
|
from urllib import urlencode
|
|
|
|
# noinspection PyUnresolvedReferences
|
|
from urllib2 import HTTPError, Request, urlopen
|
|
else:
|
|
from urllib.error import HTTPError
|
|
from urllib.parse import urlencode
|
|
from urllib.request import Request, urlopen
|
|
|
|
_ = urlencode
|
|
_ = urlopen
|
|
_ = Request
|
|
_ = HTTPError
|
|
except:
|
|
available = False
|
|
|
|
|
|
def encode_url(base_url, args):
|
|
return base_url + "?" + urlencode(args)
|
|
|
|
|
|
def get_async(url, success_callback, failure_callback):
|
|
def runnerFunc():
|
|
defer_func = maya.utils.executeDeferred
|
|
try:
|
|
result = urlopen(url).read()
|
|
defer_func(success_callback, json.loads(result))
|
|
except Exception as err:
|
|
defer_func(failure_callback, str(err))
|
|
|
|
t = threading.Thread(target=runnerFunc)
|
|
t.start()
|
|
return t
|