Esempio n. 1
0
class Interface:
    def __init__(self, TOKEN, SHARD, sqlName='market', reset=False):
        self.info = Info(TOKEN, SHARD)
        self.database = Database(sqlName, reset)

    def insertMarketInfo(self):
        ret = self.info.marketInfo()
        for _ in range(len(ret)):
            try:
                ret[_]['resource'] = ret[_]['_id']
                del ret[_]['_id']
            except:
                pass
            self.database.insertMarketInfo(**ret[_])
        self.database.commit()

    def insertResourceOrder(self, resource):
        ret = self.info.resourceOrder(resource)
        activeIDList = [elem['_id'] for elem in ret]
        self.database.deleteFinishedDeal(resource, activeIDList)
        for _ in range(len(ret)):
            try:
                ret[_]['orderType'] = ret[_]['type']
                del ret[_]['type']
            except:
                pass
            self.database.insertDealInfo(resource=resource, **ret[_])
        self.database.commit()

    def insertAllResourceOrder(self):
        resources = self.database.getAllResourceType()
        for resource in resources:
            self.insertResourceOrder(resource)

    def insertCreditRecord(self, command=''):
        """
            Accepted Params:: 'all','recent','' and number or string-number.
            default: ""
        """
        if command == "recent" or command == "":
            command = "0"
        elif type(command) == int:
            command = str(command)
        elif not command == "all":
            raise ValueError(
                "Unexpected Value from (command,{})".format(command))
        ret = self.info.getRecentBalance(command)
        if type(ret[1]) == bool:
            ret = ret[0]
        for _ in range(len(ret)):
            if ret[_]["shard"] != self.info.SHARD or ret[_][
                    "type"] == 'market.fee':
                continue
            ret[_]["orderType"] = ret[_]["type"]
            ret[_]["resource"] = ret[_]["market"]["resourceType"]
            ret[_]["room"] = ret[_]["market"]["roomName"]
            ret[_]["targetRoom"] = ret[_]["market"]["targetRoomName"]
            ret[_]["npc"] = ret[_]["market"]["npc"]
            ret[_]["amount"] = ret[_]["market"]["amount"]
            del ret[_]['user']
            del ret[_]["type"]
            del ret[_]["market"]
            del ret[_]["shard"]
            print(ret[_])
            self.database.insertRecordInfo(**ret[_])
        self.database.commit()

    def clearInactiveOrder(self):
        ret = self.info.myOrder()
        for _ in range(len(ret)):
            if ret[_]['active'] == False:
                self.info.cancelOrder(ret[_]['_id'])