def __init__(self, url, username, password, blog_id=0): self.url = url self.username = username self.password = password self.blog_id = blog_id try: # self.server = xmlrpc_client.ServerProxy(url, allow_none=True) if os.environ.get('SERVER_SOFTWARE', '').lower().startswith('goog'): self.server = xmlrpc_client.ServerProxy( url, allow_none=True, transport=GAEXMLRPCTransport()) else: self.server = xmlrpc_client.ServerProxy(url, allow_none=True) self.supported_methods = self.server.mt.supportedMethods() except xmlrpc_client.ProtocolError: e = sys.exc_info()[1] raise ServerConnectionError(repr(e))
def __init__(self, url, username, password, blog_id=0, transport=None): self.url = url self.username = username self.password = password self.blog_id = blog_id try: self.server = xmlrpc_client.ServerProxy(url, transport=ProxyTransport(), allow_none=True) self.supported_methods = self.server.mt.supportedMethods() except xmlrpc_client.ProtocolError: e = sys.exc_info()[1] raise ServerConnectionError(repr(e))
def setup(self, transport, verbose, safe_transport): try: self.server = xmlrpc_client.ServerProxy(self.url, allow_none=True, transport=transport, verbose=verbose) self.supported_methods = self.server.mt.supportedMethods() except xmlrpc_client.ProtocolError: e = sys.exc_info()[1] if e.errcode in [301, 302]: try: self.url = e.headers['location'] except KeyError: self.url = e.headers['Location'] protocol, _ = urllib.parse.splittype(self.url) if protocol == 'https': transport = safe_transport self.setup(transport, verbose, None) else: raise ServerConnectionError(repr(e))