class Associations(): keywordsList = None # 2D format [val,occ] avoidsList = None # 2D format [val,occ] listTool = None def __init__(self): self.keywordsList = [] self.avoidsList = [] self.listTool = ListTool() def setParams(self, keywords, avoids, fKeywords, fAvoids): self.keywordsList = self.listTool.addOnlyUniqueFromList(keywords, fKeywords) self.avoidsList = self.listTool.addOnlyUniqueFromList(avoids, fAvoids) def addKeyword(self, word, occurance, isForced): self.keywordsList.append(Keywords(word, occurance, isForced)) def addAvoids(self, word, occurance, isForced): self.avoidsList.append(Avoids(word, occurance, isForced))
class OwnThread(Thread): connections = [] listTool = None responseUrls = [] def __init__(self, connections): Thread.__init__(self) self.connections = connections self.listTool = ListTool() def run(self): for c in self.connections: c.startConnection() self.messengerLinks() self.messengerConfirm() for c in self.connections: c.waitForChild() def messengerLinks(self): numConns = len(self.connections) messages = 0 while (messages < numConns): for c in self.connections: if not c.hadMessage: c.hasMessage = c.pollMessage(1) for ind, c in enumerate(self.connections): if c.hasMessage: msg = c.getMessage() messages += 1 self.responseUrls = self.listTool.addOnlyUniqueFromList(msg, self.responseUrls) c.sendMessage(self.listTool.getNonUniques(msg, self.responseUrls)) def messengerConfirm(self): numConns = len(self.connections) messages = 0 for c in self.connections: c.hadMessage = False while (messages < numConns): for c in self.connections: if not c.hadMessage: c.hasMessage = c.pollMessage(1) for ind, c in enumerate(self.connections): if c.hasMessage: msg = c.getMessage() messages += 1 c.endResult = msg
def startSubProcesses(self): CM = ConnectionManager() lt = ListTool() sitesList = [] sitesList = lt.addOnlyUniqueFromList(self.__sites.goodSites, self.__sites.badSites) CM.initializeConnection( self.__associations.keywordsList, self.__associations.avoidsList, sitesList, self.__conf.siteToSearchList, self.__conf.pagesToSearch, self.__conf.searchParamsList) CM.startThread() CM.join() CM.parseResults() self.resultList = CM.getResults()