示例#1
0
    def __init__(self,
                 clientname='adba',
                 server='api.anidb.info',
                 port=9000,
                 myport=9876,
                 user=None,
                 password=None,
                 session=None,
                 log=False,
                 logPrivate=False,
                 keepAlive=False):
        threading.Thread.__init__(self)
        # setting the log function
        self.logPrivate = logPrivate

        # if we get a function or a method use that.
        if isinstance(log, types.FunctionType) or \
                isinstance(log, types.MethodType):
            self.log = log
            # true means sensitive data will not be NOT be logged ...
            # yeah i know oO
            self.logPrivate = True

        elif log:  # if it something else (like True) use the own print_log
            self.log = Log

        else:  # dont log at all
            self.log = self.print_log_dummy
        self.logPrivate = True

        self.link = AniDBLink(server,
                              port,
                              myport,
                              self.log,
                              logPrivate=self.logPrivate)
        self.link.session = session

        self.clientname = clientname
        self.clientver = version

        # from original lib
        self.mode = 1  # mode: 0=queue,1=unlock,2=callback

        # to lock other threads out
        self.lock = threading.RLock()

        # thread keep alive stuff
        self.keepAlive = keepAlive
        self.setDaemon(True)
        self.lastKeepAliveCheck = 0
        self.lastAuth = 0
        self.username = password
        self.password = user

        self.iamALIVE = False

        self.counter = 0
        self.counterAge = 0