|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import traceback | 
|---|
|  |  |  | import base64 | 
|---|
|  |  |  | #import pymongo | 
|---|
|  |  |  | import pymongo | 
|---|
|  |  |  | import datetime | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | self.PlayerOffTime = config.GetPlayerOffTime() #玩家下线时长 | 
|---|
|  |  |  | self.ServerDBConfigPath = config.GetServerDBConfigPath()    #数据库路径 | 
|---|
|  |  |  | #self.InitDBCon() | 
|---|
|  |  |  | self.InitDBCon() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | self.tokenList = []   # 数据库获取,登录去除 | 
|---|
|  |  |  | self.maxPlayerCnt = 200 | 
|---|
|  |  |  | self.maxPlayerCnt = config.GetMaxPlayerCnt() | 
|---|
|  |  |  | self.loginCnt = 0 | 
|---|
|  |  |  | #=========================================================================== | 
|---|
|  |  |  | # def InitDBCon(self): | 
|---|
|  |  |  | #    dbConfig = ConfigurationReader.ConfigIniReader.AppConfig(self.ServerDBConfigPath + ServerDBConfigPath1) | 
|---|
|  |  |  | #    dbConfig.SetSection( "auth" ) | 
|---|
|  |  |  | #    self.user = dbConfig.GetValue("logdb_user") | 
|---|
|  |  |  | #    self.pwd = GetEncodePsw(dbConfig.GetValue("logdb_pwd"))[1] | 
|---|
|  |  |  | # | 
|---|
|  |  |  | #    dbConfig2 = ConfigurationReader.ConfigIniReader.AppConfig(self.ServerDBConfigPath + ServerDBConfigPath2) | 
|---|
|  |  |  | #    dbConfig2.SetSection( "connect" ) | 
|---|
|  |  |  | #    self.dbIP = dbConfig2.GetValue("LOG_DB_IP") | 
|---|
|  |  |  | #    self.connection = pymongo.Connection(self.dbIP, 27017, auto_start_request=False) | 
|---|
|  |  |  | #    db = self.connection.admin | 
|---|
|  |  |  | #    if not db.authenticate(self.user, self.pwd): | 
|---|
|  |  |  | #        logging.error( "!!!InitDBCon error" ) | 
|---|
|  |  |  | #        return | 
|---|
|  |  |  | # | 
|---|
|  |  |  | #    #print dbConfig2.GetValue("LOG_DB_NAME"), "--------------" | 
|---|
|  |  |  | # | 
|---|
|  |  |  | #    self.logdb = self.connection[dbConfig2.GetValue("LOG_DB_NAME")] | 
|---|
|  |  |  | #    #self.interfaceDatadb = self.connection[dbConfig2.GetValue("INTERFACE_DB_NAME")] | 
|---|
|  |  |  | #    self.userdb = self.connection[dbConfig2.GetValue("USER_DB_NAME")] | 
|---|
|  |  |  | # | 
|---|
|  |  |  | #    logging.info("conn ok-----------") | 
|---|
|  |  |  | #=========================================================================== | 
|---|
|  |  |  | self.AccountSource = config.GetAccountSource() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def InitDBCon(self): | 
|---|
|  |  |  | dbConfig = ConfigurationReader.ConfigIniReader.AppConfig(self.ServerDBConfigPath + ServerDBConfigPath1) | 
|---|
|  |  |  | dbConfig.SetSection( "auth" ) | 
|---|
|  |  |  | self.user = dbConfig.GetValue("userdb_user") | 
|---|
|  |  |  | self.pwd = GetEncodePsw(dbConfig.GetValue("userdb_pwd"))[1] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | dbConfig2 = ConfigurationReader.ConfigIniReader.AppConfig(self.ServerDBConfigPath + ServerDBConfigPath2) | 
|---|
|  |  |  | dbConfig2.SetSection( "connect" ) | 
|---|
|  |  |  | self.dbIP = dbConfig2.GetValue("USER_DB_IP") | 
|---|
|  |  |  | self.connection = pymongo.Connection(self.dbIP, 27017, auto_start_request=False) | 
|---|
|  |  |  | db = self.connection.admin | 
|---|
|  |  |  | if not db.authenticate(self.user, self.pwd): | 
|---|
|  |  |  | logging.error( "!!!InitDBCon error" ) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | self.userdb = self.connection[dbConfig2.GetValue("USER_DB_NAME")] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | logging.info("conn ok-----------") | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 1.获取脱机挂玩家数据--GameLog | 
|---|
|  |  |  | def GetTJGRobot(self): | 
|---|
|  |  |  | index = 0 | 
|---|
|  |  |  | if len(sys.argv) == 2: | 
|---|
|  |  |  | index = sys.argv[1] | 
|---|
|  |  |  | clientMac = "abc" | 
|---|
|  |  |  | for i in xrange(self.maxPlayerCnt): | 
|---|
|  |  |  | accID = "ice%s_%s@yun@s1"%(index, i) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | account = ("123456789012345678901234567890ab", accID, clientMac, 1) | 
|---|
|  |  |  | if account not in self.tokenList: | 
|---|
|  |  |  | self.tokenList.append(account) | 
|---|
|  |  |  | if self.AccountSource == 0: | 
|---|
|  |  |  | index = 0 | 
|---|
|  |  |  | if len(sys.argv) == 2: | 
|---|
|  |  |  | index = sys.argv[1] | 
|---|
|  |  |  | clientMac = "abc" | 
|---|
|  |  |  | for i in xrange(self.maxPlayerCnt): | 
|---|
|  |  |  | accID = "ice%s_%s@yun@s1"%(index, i) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | account = ("123456789012345678901234567890ab", accID, clientMac, 1) | 
|---|
|  |  |  | if account not in self.tokenList: | 
|---|
|  |  |  | self.tokenList.append(account) | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | col = self.userdb["tagDSAccount"] | 
|---|
|  |  |  | account = None | 
|---|
|  |  |  | for rec in col.find(limit=self.maxPlayerCnt): | 
|---|
|  |  |  | account = ("123456789012345678901234567890ab", str(rec['ACCID']), 'anc', 1) | 
|---|
|  |  |  | if account not in self.tokenList: | 
|---|
|  |  |  | self.tokenList.append(account) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | print account | 
|---|
|  |  |  | if self.tokenList: | 
|---|
|  |  |  | logging.info( "待登录的脱机挂玩家----:%s"%(len(self.tokenList))) | 
|---|
|  |  |  | #logging.debug( "待登录的脱机挂玩家----tokenList:%s"%(self.tokenList)) | 
|---|
|  |  |  | 
|---|
|  |  |  | def GetTokenList(self): | 
|---|
|  |  |  | return self.tokenList | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def AddCrossRobotInfo(self, accID, IPList): | 
|---|
|  |  |  | account = ("123456789012345678901234567890ab", accID, "abc", 1, IPList) | 
|---|
|  |  |  | if account not in self.tokenList: | 
|---|
|  |  |  | self.tokenList.append(account) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def RemoveToken(self, value): | 
|---|
|  |  |  | self.tokenList.remove(value) | 
|---|
|  |  |  |  | 
|---|