def send_seen_and_typing_on_indicators(self): seenResponse = ResponseBuilder(recipientId=self.message.senderId, senderAction="mark_seen", description="Marking message as seen", dryRun=self._dryRun) seenResponse.create_and_get_chained_response( senderAction="typing_on", description="Turning typing on") self._executor.submit(seenResponse.send())
def send_waiting_response(self, respTail: ResponseBuilder): respBranch = respTail.create_and_get_separate_response( text=self.phrase.get('wait'), description="Wait text") respBranch.create_and_get_chained_response( senderAction="typing_on", description="Turning typing on for waiting") self._executor.submit(respBranch.send)
def map_response(self, respTail: ResponseBuilder) -> ResponseBuilder: respTail = respTail.create_and_get_chained_response( text=self.phrase.get('delivery'), description="Delivery text") mapIdGen = yield_map_id() mapId = next(mapIdGen) if not mapId: self.send_waiting_response(respTail) mapId = next(mapIdGen) if mapId: respTail = respTail.create_and_get_chained_response( attachment=Asset(assetType='image', attchId=mapId), description="Map asset from attachment ID") else: # TODO: Backup plan pass return respTail
def travel_response(self, respTail: ResponseBuilder) -> ResponseBuilder: respTail = respTail.create_and_get_chained_response( text="[TODO: Fill in the travel response.]", description="Travel text") # TODO: Outsource this to new file # HACK: Just trying to get basic functionality from compose.utils.requests import get from compose.utils.keys import BART_PUBL params: dict = { 'cmd': 'depart' if self.entities.timeArr is None else 'arrive', 'orig': self.entities.stn, 'dest': self.entities.stnDest, 'time': time.strftime( "%-I:%M %p", self.entities.time if self.entities.timeArr is None else self.entities.timeArr), 'b': '1', 'a': '4', 'json': 'y', 'key': BART_PUBL } ok, resp = get(url="http://api.bart.gov/api/sched.aspx", params=params) trips: list = resp['root']['schedule']['request']['trip'] strTrips: list = [] for trip in trips: strTrips.append( f"{trip['@origin']} {trip['@origTimeMin']} to {trip['@destination']} {trip['@destTimeMin']}" ) respTail = respTail.create_and_get_chained_response( text='\n'.join(strTrips), description='HACK trip info') return respTail
def process_message(self): self.phrase.add_attributes(firstName=self.user.fn) head = respTail = ResponseBuilder(recipientId=self.message.senderId, dryRun=self._dryRun) if isinstance(self.message, Attachment): respTail = self.process_attachment(respTail) # BUG: Figure out why I can't call Text as `Text` elif isinstance(self.message, rcv.text.Text): respTail = self.process_text(respTail) return head
def send_typing_off_indicator(self): typingOffResponse = ResponseBuilder(recipientId=self.message.senderId, senderAction="typing_off", description="Turning typing off", dryRun=self._dryRun) self._executor.submit(typingOffResponse.send())
def unknown_response(self, respTail: ResponseBuilder) -> ResponseBuilder: respTail = respTail.create_and_get_chained_response( text="[TODO: Fill in the unknown text response.]", description="Unknown text") return respTail
def weather_response(self, respTail: ResponseBuilder) -> ResponseBuilder: respTail = respTail.create_and_get_chained_response( text="[TODO: Fill in the weather response.]", description="Weather text") return respTail
def cost_response(self, respTail: ResponseBuilder, roundTrip: bool = False) -> ResponseBuilder: respTail = respTail.create_and_get_chained_response( text="[TODO: Fill in the cost response.]", description="Cost text") return respTail
def help_response(self, respTail: ResponseBuilder) -> ResponseBuilder: respTail = respTail.create_and_get_chained_response( text=self.phrase.get('helpText'), description="Help text response") return respTail
def process_message(self) -> ResponseBuilder: return ResponseBuilder( recipientId=self.message.senderId, text=f"You typed {self.message.text if hasattr(self.message, 'text') else '[no text found]'}", description="Message echo from EchoController")