def genAllResponses(self): # db=Dbhash() # db=DbRedis() db = DbUserData() dbDriver = DbDriverData() dbOrder = DbOrder() initDrPs = {} initDrPs['driver'] = 'pengemudi' initDrPs['passenger'] = 'penumpang' initDrPs['feedback'] = 'feedback' markup = ReplyKeyboardMarkup(row_width=2) itembtn1 = KeyboardButton(initDrPs['driver']) itembtn2 = KeyboardButton(initDrPs['passenger']) itembtn3 = KeyboardButton(initDrPs['feedback']) markup.add(itembtn1, itembtn2, itembtn3) self.respInitDrPs = ButtonResponse() self.respInitDrPs.addText(respL.pilihSiapa()) self.respInitDrPs.addReplyKeyboard(markup) # FOR DRIVER MENU -------------------- initDriver = {} initDriver['aktifkan'] = 'Aktifkan Mangkal' initDriver['mod'] = 'Ubah Info' markup = ReplyKeyboardMarkup(row_width=1) itembtn1 = KeyboardButton(initDriver['aktifkan']) itembtn2 = KeyboardButton(initDriver['mod']) markup.add(itembtn1, itembtn2) respInitDriver = ButtonResponse() respInitDriver.addReplyKeyboard(markup) modD = {} modD['no'] = 'No hp' # modD['noMotor'] = 'No plat' modD['nama'] = 'Nama' modD['desc'] = 'Deskripsi' modD['ojek'] = 'Kendaraan' modDriver = ButtonResponse() markup = ReplyKeyboardMarkup(row_width=2) itembtn1 = KeyboardButton(modD['no']) # itembtn2=KeyboardButton(modD['noMotor']) itembtn3 = KeyboardButton(modD['nama']) itembtn4 = KeyboardButton(modD['desc']) itembtn5 = KeyboardButton(modD['ojek']) markup.add(itembtn1, itembtn3, itembtn4, itembtn5) modDriver.addText(respL.ubahInfo()) modDriver.addReplyKeyboard(markup) dvKey = {} dvKey['checkin'] = 'Perbarui Mangkal' dvKey['selese'] = 'Tutup' dvResp = ButtonResponse() markup = ReplyKeyboardMarkup(row_width=1) item1 = KeyboardButton(dvKey['checkin'], request_location=True) item2 = KeyboardButton(dvKey['selese']) markup.add(item1, item2) dvResp.addText(respL.driverMangkal()) dvResp.addReplyKeyboard(markup) noDriver = ButtonResponse() markup = ReplyKeyboardMarkup(row_width=1) item = KeyboardButton('Kirim no', request_contact=True) markup.add(item) noDriver.addReplyKeyboard(markup) noDriver.addText(respL.ubahHp()) namaDriver = TextResponse() namaDriver.addText(respL.ubahNama()) markup = ReplyKeyboardRemove(selective=False) namaDriver.addReplyMarkup(markup) descMotor = TextResponse() descMotor.addText(respL.driverDeskripsi()) markup = ReplyKeyboardRemove(selective=False) descMotor.addReplyMarkup(markup) ojkDriver = ButtonResponse() ojkDriver.addText(respL.userKendaraan()) markup = ReplyKeyboardMarkup(row_width=2) tipeD = {} tipeD['motor'] = 'motor' tipeD['mobil'] = 'mobil' tipeD['bentor'] = 'bentor' tipeD['delman'] = 'delman' # tipeD['becak']='becak' tipeD['kapal'] = 'kapal' tipeD['bajaj'] = 'bajaj' item1 = KeyboardButton('motor') item2 = KeyboardButton('mobil') item3 = KeyboardButton('bentor') item4 = KeyboardButton('delman') # item5=KeyboardButton('becak') item5 = KeyboardButton('kapal') item6 = KeyboardButton('bajaj') markup.add(item1, item2, item3, item4, item5, item6) ojkDriver.addReplyKeyboard(markup) kembaliDriver = ButtonResponse() kembaliDriver.addText(respL.driverGetOrder()) markup = ReplyKeyboardMarkup(row_width=1) typeKembali = {} typeKembali['kembali'] = 'Kembali' item1 = KeyboardButton(typeKembali['kembali']) markup.add(item1) kembaliDriver.addReplyKeyboard(markup) feedbackResponse = TextResponse() feedbackResponse.addText(respL.feedback()) markup = ReplyKeyboardRemove(selective=False) feedbackResponse.addReplyMarkup(markup) initDriverSt = OptionButtonState() initDriverSt.setResponse(respInitDriver) initDriverSt.name = 'init-state-driver' handler = InitDriverHandler() handler.setDbCon(dbDriver) initDriverSt.setPostDataHandler(handler) dvReadySt = LocationMessageState() dvReadySt.name = 'dvready-state-driver' dvReadySt.setResponse(dvResp) handler = DReadyHandler() handler.setDbCon(dbDriver) dvReadySt.setPostDataHandler(handler) print(handler, 'POST') handler = DOutHandler() handler.setDbCon(dbDriver) dvReadySt.setPreDataHandler(handler) print(handler, 'PRE') modDriverSt = OptionButtonState() modDriverSt.setResponse(modDriver) modDriverSt.name = 'mod-state-driver' noDriverSt = ShareContactState() noDriverSt.setResponse(noDriver) noDriverSt.name = 'no-state-driver' handler = DriverPhone() handler.setDbCon(dbDriver) noDriverSt.setPreDataHandler(handler) namaDriverSt = MessageState() namaDriverSt.setResponse(namaDriver) namaDriverSt.name = 'nama-state-driver' handler = DriverName() handler.setDbCon(dbDriver) namaDriverSt.setPreDataHandler(handler) descMotorSt = MessageState() descMotorSt.setResponse(descMotor) descMotorSt.name = 'desc-state-driver' handler = DriverDesc() handler.setDbCon(dbDriver) descMotorSt.setPreDataHandler(handler) ojkDriverSt = OptionButtonState() ojkDriverSt.setResponse(ojkDriver) ojkDriverSt.name = 'ojek-state-driver' handler = DriverOjek() handler.setDbCon(dbDriver) ojkDriverSt.setPreDataHandler(handler) kembaliDriverSt = OptionButtonState() kembaliDriverSt.setResponse(kembaliDriver) kembaliDriverSt.name = 'kembali-state-driver' feedbackResponseSt = MessageState() feedbackResponseSt.setResponse(feedbackResponse) feedbackResponseSt.name = 'feedback-state' handler = AppendF() feedbackResponseSt.setPreDataHandler(handler) # END DRIVER MENU -------------------- init = {} init['find'] = 'Cari Ojek' init['mod'] = 'Ubah Info' markup = ReplyKeyboardMarkup(row_width=1) itembtn1 = KeyboardButton(init['find']) itembtn2 = KeyboardButton(init['mod']) markup.add(itembtn1, itembtn2) self.respInit = ButtonResponse() reply_keyboard = [[init['find']], [init['mod']]] self.respInit.addReplyKeyboard(markup) opOrd = {} opOrd['selese'] = 'Tutup' ordStr = ButtonResponse() markup = ReplyKeyboardMarkup(row_width=1) item = KeyboardButton(opOrd['selese']) markup.add(item) ordStr.addText(respL.tungguOrder()) ordStr.addReplyKeyboard(markup) mod = {} mod['no'] = 'No hp' mod['dari'] = 'Dari' mod['ke'] = 'Ke' mod['harga'] = 'Harga' mod['ojek'] = 'Kendaraan' mod['nama'] = 'Nama' self.respMod = ButtonResponse() markup = ReplyKeyboardMarkup(row_width=2) itembtn1 = KeyboardButton(mod['no']) itembtn2 = KeyboardButton(mod['dari']) itembtn3 = KeyboardButton(mod['ke']) itembtn4 = KeyboardButton(mod['harga']) itembtn5 = KeyboardButton(mod['ojek']) itembtn6 = KeyboardButton(mod['nama']) markup.add(itembtn1, itembtn2, itembtn3, itembtn4, itembtn5, itembtn6) self.respMod.addText(respL.ubahInfo()) self.respMod.addReplyKeyboard(markup) self.respModNo = ButtonResponse() markup = ReplyKeyboardMarkup(row_width=1) item = KeyboardButton('Kirim no', request_contact=True) markup.add(item) self.respModNo.addReplyKeyboard(markup) self.respModNo.addText(respL.ubahHp()) self.respModLocation = ButtonResponse() markup = ReplyKeyboardMarkup(row_width=1) item = KeyboardButton('Kirim lokasi', request_location=True) markup.add(item) textDari = respL.lokasiDari() self.respModLocation.addText(textDari) self.respModLocation.addReplyKeyboard(markup) # keyKirim = {} keyKirim['yes'] = 'kirim' # self.repsModKe = TextResponse() # textKe='Beberapa cara mengirim lokasi:\n' # textKe+='-> Untuk men-set lokasi baru tekan tombol attachment('+emo.paperclip+') dibawah dan pilih location. Lokasi bisa dipilih ' \ # 'di map atau di-search\n' # textKe+='-> Gunakan foursquare untuk realtime location, ketik "@foursquare alamat-anda", tunggu sampe menu keluar kemudian pilih' textKe = respL.lokasiKe() self.repsModKe.addText(textKe) markup = ReplyKeyboardRemove() markup.selective = False self.repsModKe.addReplyMarkup(markup) namaPassenger = TextResponse() namaPassenger.addText(respL.ubahNama()) markup = ReplyKeyboardRemove(selective=False) namaPassenger.addReplyMarkup(markup) # self.respHarga = TextResponse() self.respHarga.addText(respL.userHarga()) markup = ReplyKeyboardRemove(selective=False) self.respHarga.addReplyMarkup(markup) # self.respOjk = ButtonResponse() self.respOjk.addText(respL.userKendaraan()) markup = ReplyKeyboardMarkup(row_width=2) tipe = {} tipe['motor'] = 'motor' tipe['mobil'] = 'mobil' tipe['bentor'] = 'bentor' tipe['delman'] = 'delman' tipe['kapal'] = 'kapal' tipe['bajaj'] = 'bajaj' item1 = KeyboardButton('motor') item2 = KeyboardButton('mobil') item3 = KeyboardButton('bentor') item4 = KeyboardButton('delman') item5 = KeyboardButton('kapal') item6 = KeyboardButton('bajaj') markup.add(item1, item2, item3, item4, item5, item6) self.respOjk.addReplyKeyboard(markup) # replyBool = {} replyBool['y'] = 'yes' replyBool['n'] = 'no' markup = ReplyKeyboardMarkup(row_width=2) markup.add(replyBool['y'], replyBool['n']) reply_keyboard = markup # reply_keyboard = [[replyBool['y'], replyBool['n']]] # self.confNo = MultiResponse() confNoTemp = PhoneNoResponse() self.confNo.addResponse(confNoTemp) confNoTemp = ButtonResponse() confNoTemp.addText('Apakah no di atas benar') confNoTemp.addReplyKeyboard(reply_keyboard) self.confNo.addResponse(confNoTemp) # self.confLoc = MultiResponse() confLocTemp = LocationResponse() self.confLoc.addResponse(confLocTemp) confLocTemp = TextResponse() confLocTemp.addText('Lokasi kamu') self.confLoc.addResponse(confLocTemp) confLocTemp = ButtonResponse() confLocTemp.addText("Apakah lokasi di atas benar") confLocTemp.addReplyKeyboard(reply_keyboard) self.confLoc.addResponse(confLocTemp) # # self.repsModKeConf = MultiResponse() confLocKeTemp = LocationResponse() self.repsModKeConf.addResponse(confLocKeTemp) confLocKeTemp = TextResponse() confLocKeTemp.addText('Lokasi tujuan') self.repsModKeConf.addResponse(confLocKeTemp) confLocKeTemp = ButtonResponse() confLocKeTemp.addText("Apakah lokasi di atas benar") confLocKeTemp.addReplyKeyboard(reply_keyboard) self.repsModKeConf.addResponse(confLocKeTemp) kembaliUser = ButtonResponse() kembaliUser.addText(respL.userGetOrder()) typeKembaliUser = {} typeKembaliUser['kembali'] = 'Kembali' item1 = KeyboardButton(typeKembaliUser['kembali']) markup = ReplyKeyboardMarkup(row_width=1) markup.add(item1) kembaliUser.addReplyKeyboard(markup) lihatResponse = ButtonResponse() lihatResponse.addText(respL.lihatDriver()) markup = ReplyKeyboardMarkup(row_width=2) typeLihat = {} typeLihat['lihat'] = 'Lihat' typeLihat['order'] = 'Order' typeLihat['tutup'] = 'Tutup' item1 = KeyboardButton(typeLihat['lihat']) item2 = KeyboardButton(typeLihat['order']) item3 = KeyboardButton(typeLihat['tutup']) markup.add(item1, item2, item3) lihatResponse.addReplyKeyboard(markup) # STATE---------- initDrPsSt = OptionButtonState() initDrPsSt.setResponse(self.respInitDrPs) initDrPsSt.name = 'init-state-drps' self.initState = OptionButtonState() self.initState.setResponse(self.respInit) self.initState.name = 'init-state' handler = InitStateHandler() handler.setDbCon(db) self.initState.setPostDataHandler(handler) passOrderSt = OptionButtonState() passOrderSt.setResponse(ordStr) handler = PReadyHandler() handler.setDbCon(db) passOrderSt.setPostDataHandler(handler) handler = POutHandler() handler.setDbCon(db) passOrderSt.setPreDataHandler(handler) self.modifState = OptionButtonState() self.modifState.setResponse(self.respMod) self.modifState.name = 'modif-state' # self.respFJState = OptionButtonState() # self.respFJState.setResponse(self.respFJ) # self.respModNoSt = ShareContactState() self.respModNoSt.setResponse(self.respModNo) self.respModNoSt.name = 'phone-state' handler = PhoneDataHandler() handler.setDbCon(db) self.respModNoSt.setPreDataHandler(handler) # self.respModLocationSt = ShareLocationState() self.respModLocationSt.setResponse(self.respModLocation) self.respModLocationSt.name = 'dari-state' handler = DariDataHandler() handler.setDbCon(db) self.respModLocationSt.setPreDataHandler(handler) # self.repsModKeSt = ShareLocationState() self.repsModKeSt.setResponse(self.repsModKe) self.repsModKeSt.name = 'ke-state' handler = KeDataHandler() handler.setDbCon(db) self.repsModKeSt.setPreDataHandler(handler) # self.respHargaSt = MessageState() self.respHargaSt.setResponse(self.respHarga) self.respHargaSt.name = 'harga-state' handler = HargaDataHandler() handler.setDbCon(db) self.respHargaSt.setPreDataHandler(handler) namaPassengerSt = MessageState() namaPassengerSt.setResponse(namaPassenger) namaPassengerSt.name = 'nama-state-user' handler = UserName() handler.setDbCon(db) namaPassengerSt.setPreDataHandler(handler) # self.respOjkSt = OptionButtonState() self.respOjkSt.setResponse(self.respOjk) self.respOjkSt.name = 'ojek-state' handler = OjekDataHandler() handler.setDbCon(db) self.respOjkSt.setPreDataHandler(handler) # self.confNoSt = OptionButtonState() self.confNoSt.setResponse(self.confNo) # # self.confLocSt = OptionButtonState() self.confLocSt.setResponse(self.confLoc) self.confLocSt.name = 'conf-dari-state' handler = ConfLocDataHandler() handler.setDbCon(db) self.confLocSt.setPreDataHandler(handler) # self.repsModKeConfSt = OptionButtonState() self.repsModKeConfSt.setResponse(self.repsModKeConf) self.repsModKeConfSt.name = 'conf-ke-state' handler = ConfLocKeDataHandler() handler.setDbCon(db) self.repsModKeConfSt.setPreDataHandler(handler) kembaliUserSt = OptionButtonState() kembaliUserSt.setResponse(kembaliUser) kembaliUserSt.name = 'kembali-user-state' lihatResponseSt = OptionButtonState() lihatResponseSt.setResponse(lihatResponse) lihatResponseSt.name = 'lihat-user-state' handler = LihatHandler() handler.setDbCon(db) lihatResponseSt.setPreDataHandler(handler) self.router = Router(initDrPsSt) # self.router = Router(self.initState) dbredis = DbRedis() handler = RouteHandler() handler.setDbCon(dbredis) self.router.addHandler(handler) self.inlineRoute = InlineRoute() # self.inlineRoute.addBot(self.router.bot) self.inlineRoute.addDriverDB(dbDriver) self.inlineRoute.addUserDB(db) self.inlineRoute.setFinalState('driver', kembaliDriverSt) self.inlineRoute.setFinalState('user', kembaliUserSt) self.inlineRoute.setRouteHandler(handler) # self.inlineRoute.setupRoute() handler = NegoHandler() handler.setDbCon(dbDriver) self.router.addSpecHandler(dvReadySt, handler) handler = ResetHandler() handler.setDbUser(db) handler.setDbCon(dbDriver) self.router.setResetHandler(handler) self.router.addRoute(initDrPs['driver'], initDrPsSt, initDriverSt) self.router.addRoute(initDriver['aktifkan'], initDriverSt, dvReadySt) self.router.addRoute(dvKey['selese'], dvReadySt, initDriverSt) self.router.addRoute(dvReadySt.name, dvReadySt, dvReadySt) self.router.addRoute(initDriver['mod'], initDriverSt, modDriverSt) self.router.addRoute(modD['no'], modDriverSt, noDriverSt) self.router.addRoute(modD['nama'], modDriverSt, namaDriverSt) self.router.addRoute(modD['desc'], modDriverSt, descMotorSt) self.router.addRoute(modD['ojek'], modDriverSt, ojkDriverSt) self.router.addRoute(noDriverSt.name, noDriverSt, initDriverSt) self.router.addRoute(descMotorSt.name, descMotorSt, initDriverSt) self.router.addRoute(namaDriverSt.name, namaDriverSt, initDriverSt) self.router.addRoute(tipeD['motor'], ojkDriverSt, initDriverSt) self.router.addRoute(tipeD['mobil'], ojkDriverSt, initDriverSt) self.router.addRoute(tipeD['delman'], ojkDriverSt, initDriverSt) self.router.addRoute(tipeD['kapal'], ojkDriverSt, initDriverSt) self.router.addRoute(tipeD['bentor'], ojkDriverSt, initDriverSt) self.router.addRoute(tipeD['bajaj'], ojkDriverSt, initDriverSt) self.router.addRoute(typeKembali['kembali'], kembaliDriverSt, initDriverSt) self.router.addRoute(initDrPs['passenger'], initDrPsSt, self.initState) self.router.addRoute(init['find'], self.initState, lihatResponseSt) self.router.addRoute(typeLihat['order'], lihatResponseSt, passOrderSt) self.router.addRoute(typeLihat['lihat'], lihatResponseSt, lihatResponseSt) self.router.addRoute(typeLihat['tutup'], lihatResponseSt, self.initState) self.router.addRoute(opOrd['selese'], passOrderSt, self.initState) self.router.addRoute(init['mod'], self.initState, self.modifState) self.router.addRoute(mod['no'], self.modifState, self.respModNoSt) self.router.addRoute(mod['dari'], self.modifState, self.respModLocationSt) self.router.addRoute(mod['ke'], self.modifState, self.repsModKeSt) self.router.addRoute(mod['harga'], self.modifState, self.respHargaSt) self.router.addRoute(mod['ojek'], self.modifState, self.respOjkSt) self.router.addRoute(mod['nama'], self.modifState, namaPassengerSt) self.router.addRoute(self.repsModKeSt.name, self.repsModKeSt, self.repsModKeConfSt) self.router.addRoute(self.respModLocationSt.name, self.respModLocationSt, self.confLocSt) self.router.addRoute(self.respModNoSt.name, self.respModNoSt, self.initState) self.router.addRoute(namaPassengerSt.name, namaPassengerSt, self.initState) self.router.addRoute(replyBool['n'], self.confLocSt, self.respModLocationSt) self.router.addRoute(replyBool['y'], self.confLocSt, self.initState) self.router.addRoute(replyBool['n'], self.repsModKeConfSt, self.repsModKeSt) self.router.addRoute(replyBool['y'], self.repsModKeConfSt, self.initState) self.router.addRoute(self.respHargaSt.name, self.respHargaSt, self.initState) self.router.addRoute(tipe['motor'], self.respOjkSt, self.initState) self.router.addRoute(tipe['mobil'], self.respOjkSt, self.initState) self.router.addRoute(tipe['bentor'], self.respOjkSt, self.initState) self.router.addRoute(tipe['delman'], self.respOjkSt, self.initState) self.router.addRoute(tipe['kapal'], self.respOjkSt, self.initState) self.router.addRoute(tipe['bajaj'], self.respOjkSt, self.initState) self.router.addRoute(typeKembaliUser['kembali'], kembaliUserSt, self.initState) self.router.addRoute(initDrPs['feedback'], initDrPsSt, feedbackResponseSt) self.router.addRoute(feedbackResponseSt.name, feedbackResponseSt, initDrPsSt)