示例#1
0
    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))
示例#2
0
    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))
示例#3
0
    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))