def finalSend(self, sms, language): commitCMD = DomainObjectCommit(self.refId) commitCMD.identifier = ReminderObject() commitCMD.identifier.identifier = sms.identifier answer = self.getResponseForRequest(commitCMD) if ObjectIsCommand(answer, DomainObjectCommitCompleted): answer = DomainObjectCommitCompleted(answer) # update the reminder object with current identifier and time stamp sms.identifier = answer.identifier lists = ReminderListObject() lists.name = "Reminders" sms.lists = lists # tell the user we created the reminder createAnchor = UIAddViews(self.refId) createAnchor.dialogPhase = createAnchor.DialogPhaseConfirmedValue # create a view to ask for the message askCreateView = UIAssistantUtteranceView() askCreateView.dialogIdentifier = "CreateSms#sentSMS" askCreateView.text = askCreateView.speakableText = random.choice(responses['sendSms'][language]) askCreateView.listenAfterSpeaking = False snippet = ReminderSnippet() snippet.reminders = [sms] createAnchor.views = [askCreateView, snippet] self.sendRequestWithoutAnswer(createAnchor) self.complete_request() else: self.say(random.choice(responses['sendSmsFail'][language])) self.complete_request()
def finalCommit(self, reminder, language): commitCMD = DomainObjectCommit(self.refId) commitCMD.identifier = ReminderObject() commitCMD.identifier.identifier = reminder.identifier answer = self.getResponseForRequest(commitCMD) if ObjectIsCommand(answer, DomainObjectCommitCompleted): answer = DomainObjectCommitCompleted(answer) reminder.identifier = answer.identifier lists = ReminderListObject() lists.name = "Reminders" reminder.lists = lists createAnchor = UIAddViews(self.refId) createAnchor.dialogPhase = createAnchor.DialogPhaseConfirmedValue askCreateView = UIAssistantUtteranceView() askCreateView.dialogIdentifier = "CreateReminder#createdReminder" askCreateView.text = askCreateView.speakableText = random.choice(responses['Remind'][language]) askCreateView.listenAfterSpeaking = False snippet = ReminderSnippet() snippet.reminders = [reminder] createAnchor.views = [askCreateView, snippet] self.sendRequestWithoutAnswer(createAnchor) self.complete_request() else: self.say(random.choice(responses['RemindFail'][language])) self.complete_request()
def finalSend(self, sms, language): commitCMD = DomainObjectCommit(self.refId) commitCMD.identifier = SmsSms() commitCMD.identifier.identifier = sms.identifier answer = self.getResponseForRequest(commitCMD) if ObjectIsCommand(answer, DomainObjectCommitCompleted): answer = DomainObjectCommitCompleted(answer) # update the sms object with current identifier and time stamp sms.identifier = answer.identifier # the timestamp should be timezone aware # we could use the pytz lib for that # get the timezone from the assistant # and supply it to pytz which we can # supply to now() sms.dateSent = datetime.datetime.now() # tell the user we sent the sms createAnchor = UIAddViews(self.refId) createAnchor.dialogPhase = createAnchor.DialogPhaseConfirmedValue # create a view to ask for the message askCreateView = UIAssistantUtteranceView() askCreateView.dialogIdentifier = "CreateSms#sentSMS" askCreateView.text = askCreateView.speakableText = random.choice(responses["sendSms"][language]) askCreateView.listenAfterSpeaking = False snippet = SmsSnippet() snippet.smss = [sms] createAnchor.views = [askCreateView, snippet] self.sendRequestWithoutAnswer(createAnchor) else: self.say(random.choice(responses["sendSmsFail"][language]))
def createReminder(self, speech, language): content_raw = re.match(".*reminder ([a-zA-Z0-9, ]+)$", speech, re.IGNORECASE) if content_raw == None: view_initial = AddViews(self.refId, dialogPhase="Reflection") view_initial.views = [AssistantUtteranceView(text=reminders.localizations['reminderDefaults']['nothing'][language], speakableText=reminders.localizations['reminderDefaults']['nothing'][language], dialogIdentifier="Reminder#failed")] self.sendRequestWithoutAnswer(view_initial) else: view_initial = AddViews(self.refId, dialogPhase="Reflection") view_initial.views = [AssistantUtteranceView(text=reminders.localizations['reminderDefaults']['searching'][language], speakableText=reminders.localizations['reminderDefaults']['searching'][language], dialogIdentifier="Reminder#creating")] self.sendRequestWithoutAnswer(view_initial) content_raw = content_raw.group(1).strip() if "me to" in content_raw: split = content_raw.split(' ') if split[0] == "me to": split.pop(0) content_raw = ' '.join(map(str, split)) if "for" in content_raw: split = content_raw.split(' ') if split[0] == "for": split.pop(0) content_raw = ' '.join(map(str, split)) # adds reminder reminder_create = Create() reminder_create.subject = content_raw domain_object = DomainObjectCreate(refId = self.refId) domain_object.object = reminder_create reminder_return = self.getResponseForRequest(domain_object) print reminder_return # retrieves reminder # update / commit reminder reminder_update = Update() reminder_update.identifier = reminder_return["properties"]["identifier"] domain_object_up = DomainObjectCommit(refId = self.refId) domain_object_up.identifier = reminder_update reminder_update_return = self.getResponseForRequest(domain_object_up) print reminder_update_return # send view view = AddViews(self.refId, dialogPhase="Summary") view1 = AssistantUtteranceView(text=reminders.localizations['reminderDefaults']['result'][language], speakableText=reminders.localizations['reminderDefaults']['result'][language], dialogIdentifier="Reminder#created") reminder_ = ReminderObject() reminder_.subject = content_raw reminder_.identifier = reminder_return["properties"]["identifier"] view2 = ReminderSnippet(reminders=[reminder_]) view.views = [view1, view2] self.sendRequestWithoutAnswer(view) self.complete_request()
def changeName(self, nameType, value): meSearch = ABPersonSearch(self.refId) meSearch.me = True meSearch.scope = "Local" answer = self.getResponseForRequest(meSearch) if ObjectIsCommand(answer, ABPersonSearchCompleted): results = ABPersonSearchCompleted(answer) results = results.results[0] else: raise StopPluginExecution("Unknown response: {0}".format(answer)) mePerson = ABPerson() mePerson.identifier = results.identifier domainRetrieve = DomainObjectRetrieve(self.refId) domainRetrieve.identifiers = [mePerson] domainAnswer = self.getResponseForRequest(domainRetrieve) if not ObjectIsCommand(domainAnswer, DomainObjectRetrieveCompleted): raise StopPluginExecution("Unknown response: {0}".format(domainAnswer)) domainUpdate = DomainObjectUpdate(self.refId) domainUpdate.identifier = mePerson newName = ABPerson() if nameType in ["nick", "nick name"]: newName.nickName = value if nameType in ["firstName", "first name"]: newName.firstName = value if nameType in ["lastName", "last name"]: newName.lastName = value domainUpdate.setFields = newName updateAnswer = self.getResponseForRequest(domainUpdate) if not ObjectIsCommand(updateAnswer, DomainObjectUpdateCompleted): raise StopPluginExecution("Unknown response: {0}".format(updateAnswer)) domainCommit = DomainObjectCommit(self.refId) domainCommit.identifier = mePerson commitAnswer = self.getResponseForRequest(domainCommit) if not ObjectIsCommand(commitAnswer, DomainObjectCommitCompleted): raise StopPluginExecution("Unknown response: {0}".format(commitAnswer))
def createReminder(self, speech, language, regMatched): content_raw = regMatched.group('content').strip(); if content_raw == None or content_raw == '': content_raw = self.ask(reminders.localizations['reminderDefaults']['nothing'][language]) print content_raw view_initial = AddViews(self.refId, dialogPhase="Reflection") view_initial.views = [AssistantUtteranceView(text=reminders.localizations['reminderDefaults']['searching'][language], speakableText=reminders.localizations['reminderDefaults']['searching'][language], dialogIdentifier="Reminder#creating")] self.sendRequestWithoutAnswer(view_initial) # adds reminder reminder_create = Create() reminder_create.subject = content_raw domain_object = DomainObjectCreate(refId = self.refId) domain_object.object = reminder_create reminder_return = self.getResponseForRequest(domain_object) print reminder_return # retrieves reminder # update / commit reminder reminder_update = Update() reminder_update.identifier = reminder_return["properties"]["identifier"] domain_object_up = DomainObjectCommit(refId = self.refId) domain_object_up.identifier = reminder_update reminder_update_return = self.getResponseForRequest(domain_object_up) print reminder_update_return # send view view = AddViews(self.refId, dialogPhase="Summary") view1 = AssistantUtteranceView(text=reminders.localizations['reminderDefaults']['result'][language], speakableText=reminders.localizations['reminderDefaults']['result'][language], dialogIdentifier="Reminder#created") reminder_ = ReminderObject() reminder_.subject = content_raw reminder_.identifier = reminder_return["properties"]["identifier"] view2 = ReminderSnippet(reminders=[reminder_]) view.views = [view1, view2] self.sendRequestWithoutAnswer(view) self.complete_request()
def finalSend(self, sms, language): commitCMD = DomainObjectCommit(self.refId) commitCMD.identifier = SmsSms() commitCMD.identifier.identifier = sms.identifier answer = self.getResponseForRequest(commitCMD) if ObjectIsCommand(answer, DomainObjectCommitCompleted): answer = DomainObjectCommitCompleted(answer) # update the sms object with current identifier and time stamp sms.identifier = answer.identifier # the timestamp should be timezone aware # we could use the pytz lib for that # get the timezone from the assistant # and supply it to pytz which we can # supply to now() sms.dateSent = datetime.datetime.now() # tell the user we sent the sms createAnchor = UIAddViews(self.refId) createAnchor.dialogPhase = createAnchor.DialogPhaseConfirmedValue # create a view to ask for the message askCreateView = UIAssistantUtteranceView() askCreateView.dialogIdentifier = "CreateSms#sentSMS" askCreateView.text = askCreateView.speakableText = random.choice( responses['sendSms'][language]) askCreateView.listenAfterSpeaking = False snippet = SmsSnippet() snippet.smss = [sms] createAnchor.views = [askCreateView, snippet] self.sendRequestWithoutAnswer(createAnchor) self.complete_request() else: self.say(random.choice(responses['sendSmsFail'][language])) self.complete_request()
def commitEvent(self, identifier): # Commits the object and returns the x-cal identifier commitObject = DomainObjectCommit(self.refId) commitObject.identifier = identifier commitCompleted = self.getResponseForRequest(commitObject) return commitCompleted['properties']['identifier']