Esempio n. 1
0
 async def tryAddRegionName(self, event, databaseUser):
     name = event.message.message
     region = Region(databaseUser[2], None)
     possibleNames = [
         n.lower() for n in
         self.dataStoreProvider.getPossibleNameForRegionType(region)
     ]
     if (name.lower() in possibleNames):
         await event.respond(
             "Alles klar, ab jetzt bekommst du jeden Morgen um 09:00 eine Nachricht über die aktuelle Lage!",
             buttons=getDefaultKeyboard())
         self.userStore.setRegionNameOfUser(databaseUser[0],
                                            databaseUser[1], name)
     else:
         me = "Ich habe diesen Ort nicht gefunden!"
         bs = Button.clear()
         closeMatches = list(
             difflib.get_close_matches(name, possibleNames, n=5))
         if (len(closeMatches) > 0):
             bs = getKeyboardFromList(
                 map(lambda n: n.capitalize(), closeMatches))
             me += "\n\nMeinst du vielleicht:\n"
             for m in closeMatches:
                 me += " - %s\n" % (m.capitalize())
         await event.respond(me, buttons=bs)
Esempio n. 2
0
 async def tryAddRegionType(self, event, databaseUser):
     regionType = event.message.message
     isRegionType = any(
         map(lambda b: b.button.text == event.message.message,
             flatten(getRegionTypeKeyboard())))
     if (not isRegionType):
         await event.respond("Das war kein erlaubte Regionsart!",
                             buttons=getRegionTypeKeyboard())
     else:
         try:
             self.userStore.setRegionTypeOfUser(databaseUser[0],
                                                databaseUser[1], regionType)
             await event.respond(
                 "Schreibe jetzt bitte den Namen der Region!",
                 buttons=Button.clear())
         except Exception as e:
             print("region type saving failed", e)
             await event.respond(
                 "Beim Speichern ist etwas schief gelaufen, versuche es nochmal oder kontaktiere den Admin"
             )