Exemple #1
0
 def generateAIList(self):
     aiList = AIList(self.configDir)
     aiList.removeAll()
     for login in self.accounts.keys():
         account = self.accounts[login]
         if not account.isAI:
             continue
         aiList.add(login, account.passwd, account.aiType)
     aiList.save()
     log.message('AI list regenerated')
Exemple #2
0
def runAIPool(options):
    import copy
    import sys
    import os
    import time
    import tempfile
    import traceback
    import multiprocessing
    import re
    import copy

    from ai_parser import AIList

    games = []
    if options.game:
        games.append(options.game)
    else:
        # support for games autodetect is not implemented
        raise NotImplementedError

    aiPool = multiprocessing.Pool(processes=options.procs)

    results = []
    for gameName in games:
        aiList = AIList(options.configDir)
        for record in aiList.getAll():
            optAI = copy.copy(options)
            optAI.configDir = os.path.join(options.configDir, 'ai_data',
                                           gameName)
            optAI.login = record.login
            optAI.password = record.password
            optAI.ai = record.aiType
            optAI.game = gameName
            optAI.test = False
            results.append(aiPool.apply_async(runAIClient, [optAI]))
    aiPool.close()
    for result in results:
        try:
            result.get()
        except Exception as exc:
            # having pass or continue here prevents exception from being printed
            # What the actual hell?
            True
    aiPool.join()
    sys.exit()