diff --git a/slackclient/_client.py b/slackclient/_client.py index 00b0225cd..4a0efd8f2 100644 --- a/slackclient/_client.py +++ b/slackclient/_client.py @@ -22,10 +22,11 @@ class SlackClient(object): `here `_ Note: Be `careful with your token `_ ''' - def __init__(self, token): + + def __init__(self, token, proxies=None): self.token = token - self.server = Server(self.token, False) + self.server = Server(self.token, False, proxies) def append_user_agent(self, name, version): self.server.append_user_agent(name, version) diff --git a/slackclient/_server.py b/slackclient/_server.py index cc413a481..2a485d81a 100644 --- a/slackclient/_server.py +++ b/slackclient/_server.py @@ -1,11 +1,13 @@ -from slackclient._slackrequest import SlackRequest -from slackclient._channel import Channel -from slackclient._user import User -from slackclient._util import SearchList, SearchDict +import json from ssl import SSLError +from requests.packages.urllib3.util.url import parse_url from websocket import create_connection -import json + +from slackclient._channel import Channel +from slackclient._slackrequest import SlackRequest +from slackclient._user import User +from slackclient._util import SearchList, SearchDict class Server(object): @@ -14,7 +16,8 @@ class Server(object): ''' - def __init__(self, token, connect=True): + + def __init__(self, token, connect=True, proxies=None): self.token = token self.username = None self.domain = None @@ -24,7 +27,8 @@ def __init__(self, token, connect=True): self.channels = SearchList() self.connected = False self.ws_url = None - self.api_requester = SlackRequest() + self.proxies = proxies + self.api_requester = SlackRequest(proxies) if connect: self.rtm_connect() diff --git a/slackclient/_slackrequest.py b/slackclient/_slackrequest.py index 30a5404bc..f61ddc42d 100644 --- a/slackclient/_slackrequest.py +++ b/slackclient/_slackrequest.py @@ -9,8 +9,7 @@ class SlackRequest(object): - def __init__(self): - + def __init__(self, proxies=None): # __name__ returns 'slackclient._slackrequest', we only want 'slackclient' client_name = __name__.split('.')[0] client_version = __version__ # Version is returned from version.py @@ -21,7 +20,7 @@ def __init__(self): "python": "Python/{v.major}.{v.minor}.{v.micro}".format(v=sys.version_info), "system": "{0}/{1}".format(platform.system(), platform.release()) } - + self.proxies = proxies self.custom_user_agent = None def get_user_agent(self): @@ -76,4 +75,4 @@ def do(self, token, request="?", post_data=None, domain="slack.com", timeout=Non post_data['token'] = token headers = {'user-agent': self.get_user_agent()} - return requests.post(url, headers=headers, data=post_data, files=files, timeout=timeout) + return requests.post(url, headers=headers, data=post_data, files=files, timeout=timeout, proxies=self.proxies)