Пример #1
0
 def __processBands(self):
     tempBand = self.__bandQueue.pop() #get top element
     #if has no follow link, break function
     if(str(tempBand["band"]) in self.__bandProcessedList):
         return
     else:
         self.__bandProcessedList.append(str(tempBand["band"]))
     if tempBand["link"].strip() == "": 
         return
     parser = WikiParser(tempBand["link"])
     members = parser.getBandMembers()
     #print tempBand.keys()
     formerMembers = parser.getBandMembers("former")
     tabs = "\t" * tempBand["recursion"]
     if tempBand["recursion"] > self.recursionLimit:
         return        
     for member in members:
         #add member artists to artist stack
         member["recursion"] = tempBand["recursion"] + 1
         member["parent"] = "b." + tempBand["band"]
         self.__artistQueue.appendleft(member)
         #link band with artist
         self.bm.link( Artist(member["artist"]), Band(tempBand["band"])) 
     if(self.showFormerMembers):
         for member in formerMembers:
             #add member artists to artist stack
             recursionValue = tempBand["recursion"] + 1
             if recursionValue > self.recursionLimit:
                 continue                
             member["recursion"] = recursionValue
             member["parent"] = "b." + tempBand["band"]
             self.__artistQueue.appendleft(member)
             #link band with artist
             self.bm.link( Artist(member["artist"]), Band(tempBand["band"]),True) 
     #if artist accidentaly ends up in band, move to artist.
     if not members and not formerMembers:
         recursionValue = tempBand["recursion"] 
         if recursionValue < self.recursionLimit:
             artistEntry = dict()
             artistEntry["artist"] = tempBand["band"]
             artistEntry["link"] = tempBand["link"]
             artistEntry["recursion"] = recursionValue
             artistEntry["parent"] = tempBand["parent"]
             self.__artistQueue.appendleft(artistEntry)
             return
     if self.printDebug:
         print (tabs + "[b] - " + str(tempBand["band"]).strip() +
                "   <" + tempBand["parent"] +">")
     self.bm.addBand(tempBand["band"])
     associatedActs = parser.getRelatedActs()
     #add all associated acts to end of queue
     for act in associatedActs : 
         if not self.bm.bandExists(act["band"]):
             recursionValue = tempBand["recursion"] + 1
             if recursionValue > self.recursionLimit:
                 continue
             act["recursion"] = recursionValue
             act["parent"] = "b." + tempBand["band"]
             self.__bandQueue.appendleft(act)
Пример #2
0
 def addtoQueue(self, link, recursionValue=1):
     """add band or artist to parse queue"""
     wparse = WikiParser(link)
     wmembers = wparse.getBandMembers()
     initialEntry = dict()
     if wmembers: #if band, add to band queue
         initialEntry["band"] = wparse.getName()
         initialEntry["link"] = link
         initialEntry["recursion"] = recursionValue
         initialEntry["parent"] = "root"
         self.__bandQueue.appendleft(initialEntry)
     else: #if artist add to artist queue
         initialEntry["artist"] = wparse.getName()
         initialEntry["link"] = link
         initialEntry["recursion"] = recursionValue
         initialEntry["parent"] = "root"
         self.__artistQueue.appendleft(initialEntry)