def getcompatibleitemfromqueue(botrunnername, sessionid): archiveoldrequests() botrunner = botrunnerhelper.getBotRunner( botrunnername ) botrunnersession = botrunnerhelper.getBotRunnerSession( botrunnername, sessionid ) # now we've archived the old requests, we just pick a request # in the future, we'll pick a compatible request. In the future ;-) # also, we need to handle options. In the future ;-) matchrequests = Session.query(MatchRequest).filter(MatchRequest.matchrequestinprogress == None).filter(MatchRequest.matchresult == None).all() for matchrequest in matchrequests: mapok = False modok = False ai0ok = False ai1ok = False for map in botrunner.supportedmaps: if map.map_name == matchrequest.map.map_name: mapok = True for mod in botrunner.supportedmods: if mod.mod_name == matchrequest.mod.mod_name: modok = True for ai in botrunner.supportedais: if ai.ai_base.ai_base_name == matchrequest.ai0.ai_base.ai_base_name and ai.ai_version == matchrequest.ai0.ai_version: ai0ok = True if ai.ai_base.ai_base_name == matchrequest.ai1.ai_base.ai_base_name and ai.ai_version == matchrequest.ai1.ai_version: ai1ok = True if mapok and modok and ai0ok and ai1ok: # mark request in progress: matchrequest.matchrequestinprogress = MatchRequestInProgress(botrunner, botrunnersession, datetime.datetime.now()) return matchrequest # didn't find any compatible match return None
def getcompatibleitemfromqueue(botrunnername, sessionid): archiveoldrequests() botrunner = botrunnerhelper.getBotRunner(botrunnername) botrunnersession = botrunnerhelper.getBotRunnerSession(botrunnername, sessionid) # Also, remove any requests that this engine was supposedly processing # for which there are no results matchrequests = ( sqlalchemysetup.session.query(MatchRequest) .filter(MatchRequest.matchresult == None) .filter(MatchRequest.matchrequestinprogress != None) ) for matchrequest in matchrequests: if matchrequest.matchrequestinprogress.botrunner is botrunner: if matchrequest.matchrequestinprogress.botrunnersession is botrunnersession: sqlalchemysetup.session.delete(matchrequest.matchrequestinprogress) sqlalchemysetup.session.commit() # now we've archived the old requests, we just pick a request # in the future, we'll pick a compatible request. In the future ;-) # also, we need to handle options. In the future ;-) matchrequests = ( sqlalchemysetup.session.query(MatchRequest) .filter(MatchRequest.matchrequestinprogress == None) .filter(MatchRequest.matchresult == None) .all() ) for matchrequest in matchrequests: mapok = False modok = False ai0ok = False ai1ok = False for map in botrunner.supportedmaps: if map.map_name == matchrequest.map.map_name: mapok = True for mod in botrunner.supportedmods: if mod.mod_name == matchrequest.mod.mod_name: modok = True for ai in botrunner.supportedais: if ai.ai_name == matchrequest.ai0.ai_name and ai.ai_version == matchrequest.ai0.ai_version: ai0ok = True if ai.ai_name == matchrequest.ai1.ai_name and ai.ai_version == matchrequest.ai1.ai_version: ai1ok = True if mapok and modok and ai0ok and ai1ok: # mark request in progress: matchrequest.matchrequestinprogress = MatchRequestInProgress( botrunner, botrunnersession, dates.dateTimeToDateString(datetime.datetime.now()) ) return matchrequest # didn't find any compatible match return None
def getcompatibleitemfromqueue(botrunnername, sessionid): archiveoldrequests() botrunner = botrunnerhelper.getBotRunner(botrunnername) botrunnersession = botrunnerhelper.getBotRunnerSession( botrunnername, sessionid) # Also, remove any requests that this engine was supposedly processing # for which there are no results matchrequests = sqlalchemysetup.session.query(MatchRequest).filter( MatchRequest.matchresult == None).filter( MatchRequest.matchrequestinprogress != None) for matchrequest in matchrequests: if matchrequest.matchrequestinprogress.botrunner is botrunner: if matchrequest.matchrequestinprogress.botrunnersession is botrunnersession: sqlalchemysetup.session.delete( matchrequest.matchrequestinprogress) sqlalchemysetup.session.commit() # now we've archived the old requests, we just pick a request # in the future, we'll pick a compatible request. In the future ;-) # also, we need to handle options. In the future ;-) matchrequests = sqlalchemysetup.session.query(MatchRequest).filter( MatchRequest.matchrequestinprogress == None).filter( MatchRequest.matchresult == None).all() for matchrequest in matchrequests: mapok = False for map in botrunner.supportedmaps: if map.map.map_name == matchrequest.map.map_name: mapok = True modok = False for mod in botrunner.supportedmods: if mod.mod.mod_name == matchrequest.mod.mod_name: modok = True if mapok and modok: # mark request in progress: matchrequest.matchrequestinprogress = MatchRequestInProgress( botrunner, botrunnersession, dates.dateTimeToDateString(datetime.datetime.now())) return matchrequest # didn't find any compatible match return None