Example #1
0
 def __init__(self, Universe):
     self.Universe = Universe
     
     #createResultObject = CreateResultObject()
     #self.ResultObject = createResultObject.getObject()
     
     #self.modules_path = os.environ["HOME"]+"/.sword/modules/texts/ztext"
     #self.mods_d_path = os.environ["HOME"]+"/.sword/mods.d"
     
     self.history = History("sword_history", Universe.ConfigFiles)
     
     self.Reader = Reader(self.Universe)
Example #2
0
class Sword(object):
    def __init__(self, Universe):
        self.Universe = Universe
        
        #createResultObject = CreateResultObject()
        #self.ResultObject = createResultObject.getObject()
        
        #self.modules_path = os.environ["HOME"]+"/.sword/modules/texts/ztext"
        #self.mods_d_path = os.environ["HOME"]+"/.sword/mods.d"
        
        self.history = History("sword_history", Universe.ConfigFiles)
        
        self.Reader = Reader(self.Universe)
        
    def getCommands(self):
        return {
                "sword" : self.readBible,
                "sword.bible" : self.setBible,
                "sword.language" : self.setLanguage,
                "sword.setmodule" : self.setModule,
                "sword.modules" : self.listBooks,
                "sword.languages" : self.listLanguages,
                "sword.history" : self.retHistory,
                
                "sword.books" : self.books,
                "books" : self.books,
                
                "sword.index" : self.createSearchIndex,
                "sword.search" : self.search,
                
                "sword.next" : self.nextPrevSelf,
                "sword.prev" : self.nextPrevSelf,
                "sword.self" : self.nextPrevSelf,
                
                }
        
    def interpreter(self, command, args):
        print "args: "
        print args
        
        commands = self.getCommands()
        return commands.get(command, self.commandNotFound)(command, args)
    
    def commandNotFound(self, c, a):
        raise CommandNotInThisModule("command not found in module sword")
    
    def setBible(self, c, a):
        #self.sword_module_name = a[0]
        self.Reader.sword_module_name = a[0]
        
        self.ResultObject.Payload.String = "Bibel " +a[0]+ " aktiviert"
        self.ResultObject.Description.MetaData.Language = "default"
        return self.ResultObject
    
    def setLanguage(self, c, a):
        self.Reader.language = a[0]
        
        self.ResultObject.Payload.String = "Sprache geaendert: "+a[0]
        self.ResultObject.Description.MetaData.Language = "default"
        return self.ResultObject
    
    def setModule(self, c, a):
        try:
            bible = a[0]
        except IndexError:
            self.ResultObject.Error.Message = "Bitte Modulnamen angeben"
            return self.ResultObject
        
        lang = self.Reader.ModsD.getModuleLanguage(bible)
        
        if lang == None:
            self.ResultObject.Error.Message = "Modul "+bible+" konnte nicht gefunden werden."
            return self.ResultObject
        
        self.Reader.language = lang
        self.Reader.sword_module_name = bible.lower()
        
        self.ResultObject.Payload.String = "Modul "+a[0]+" aktiviert"
        self.ResultObject.Description.MetaData.Language = "default"
        return self.ResultObject
    
    def readBible(self, c, a):
        return self.Reader.readBible(c, a)
    
    def listBooks(self, c, a):
        try:
            language = a[0]
        except IndexError:
            result = self.Reader.ModsD.getAllBooks(None)
        else:
            result = self.Reader.ModsD.getAllBooks(language)
        
        try:
            result_first_element = result[0]
        except IndexError:
            self.ResultObject.Error.Message = "Kein Modul gefunden"
            return self.ResultObject
        
        name = "sword: verfügbare module"
        head = "sprache", "abkürzung", "beschreibung"
        
        self.ResultObject.Payload.Table = result
        self.ResultObject.Payload.TableHeader = head
        return self.ResultObject
        
#        table = SpeakingTableWidget(len(result), len(result_first_element), self.Universe, name)
#        
#        table.setHorizontalHeaderLabels(head)
#        #return table, "bla"
#        
#        row = -1
#        for line in result:
#            row += 1
#            
#            column = -1
#            for item in line:
#                column += 1
#                
#                table.setItem(row, column, QtGui.QTableWidgetItem(unicode(item)) )
#                metaData = MetaData()
#                metaData.Language = line[0]#metaLanguage[column]
#                metaData.ExecuteCommand = "sword.setmodule "+line[1].lower()+" "+line[0]
#                table.setDescription(row, column, metaData)
#                
#                #print item, metaData.Language
#            
#        table.resizeColumnsToContents()
#        
#        self.ResultObject.Payload.SpeakingTableWidget = table
#        return self.ResultObject
    
    def listLanguages(self, c, a):
        result = self.ModsD.getLanguages()
        
        self.ResultObject.Payload.List = result
        return self.ResultObject
        
    def retHistory(self, c, a):
        getHistory = GetHistory()
        result_list = getHistory.retHistory(c, a, self.history)
        
        self.ResultObject.Payload.List = result_list
        return self.ResultObject
        
    def nextPrevSelf(self, c, a):
        return self.Reader.nextPrevSelf(c, a)
        
    def createSearchIndex(self, c, a):
        """ bilds a search-index for a given book """
        try:
            module_name = a[0]
        except IndexError:
            pass
        
        index = Indexer(self.Reader.sword_module_name, self.Reader)
        index.buildIndex()
        
        self.ResultObject.Payload.String = "Index gebaut"
        return self.ResultObject
        
    def search(self, c, a):
        """ search for the pattern in the index of the current book """
        search = Search(self.Reader.sword_module_name, self.Reader)
        result = search.queryParser(a)
        
        self.ResultObject.Payload.List = result
        return self.ResultObject
    
    def books(self, c, a):
        bituza = Bituza(self.Universe)
        books = bituza.getBookList()
        
        numbers = [50, 40, 27, 36, 34, 24, 21, 4, 31, 24, 22, 25, 29, 36, 10, 13, 10, 42, 150, 31, 12, 8, 66, 52, 5, 48, 12, 14, 3, 9, 1, 4, 7, 3, 3, 3, 2, 14, 4, 28, 16, 24, 21, 28, 16, 16, 13, 6, 6, 4, 4, 5, 3, 6, 4, 3, 1, 13, 5, 5, 3, 5, 1, 1, 1, 22]
        
        output = []
        metaData_list = []
        for i in range (0, len(books)):
            output.append( unicode( books[i] ) + " " + unicode( numbers[i] ) )
            #mime_list.append("command/bible")
            
            metaData = MetaData()
            metaData.Language = "default"
            metaData.ExecuteCommand = "%CONTENT%"
            
            metaData_list.append(metaData)
            
        #books = self.getBookList()
        
        self.ResultObject.Payload.List = output
        self.ResultObject.Description.List = metaData_list
        return self.ResultObject