Skip to content

Trying to work on a "notes" plugin, but it does not work... #118

@manuw2009

Description

@manuw2009

Hi, the following plugin used to work on IOS 5, but it's not working anymore with IOS6.
It waits endlessly at some point below =>
note_return = self.getResponseForRequest(note_create)
Could anyone please help ?

Thank you

!/usr/bin/python

-- coding: utf-8 --

import re
import urllib2, urllib
import json
import logging
from uuid import uuid4
from plugin import *

from siriObjects.baseObjects import AceObject, ClientBoundCommand
from siriObjects.uiObjects import AddViews, AssistantUtteranceView
from siriObjects.systemObjects import DomainObject

class NoteSnippet(AceObject):
def init(self, notes=None):
super(NoteSnippet, self).init("Snippet", "com.apple.ace.note")
self.notes = notes if notes != None else []

def to_plist(self):
self.add_property('notes')
return super(NoteSnippet, self).to_plist()

class NoteObject(AceObject):
def init(self, contents="", identifier=""):
super(NoteObject, self).init("Object", "com.apple.ace.note")
self.contents = contents
self.identifier = identifier
def to_plist(self):
self.add_property('contents')
self.add_property('identifier')
return super(NoteObject, self).to_plist()

class Create(ClientBoundCommand):
def init(self, refId=None, aceId=None, contents=""):
super(Create, self).init("Create", "com.apple.ace.note", None, None)
self.contents = contents
self.aceId= aceId if aceId != None else str.upper(str(uuid4()))
self.refId = refId if refId != None else str.upper(str(uuid4()))

def to_plist(self):
self.add_item('aceId')
self.add_item('refId')
self.add_property('contents')
return super(Create, self).to_plist()

class note(Plugin):
localizations = {"noteDefaults":
{"searching":{"en-US": "Creating your note ...","fr-FR": u"Création de votre note..."},
"result": {"en-US": "Here is your note:","fr-FR": "Voici votre note :"},
"nothing": {"en-US": "What should I note?","fr-FR": "Que dois-je noter ?"}},
"failure": {
"en-US": "I cannot type your note right now.",
"fr-FR": "Je ne peux pas écrire votre note maintenant."
}
}
@register("en-US", "(._note [a-zA-Z0-9]+)|(._create._note [a-zA-Z0-9]+)|(._write._note [a-zA-Z0-9]+)")
@register("fr-FR", u"(.créer? une note .)|(.note .)")
def writeNote(self, speech, language):
content_raw = re.match("._note (.*)$", speech, re.IGNORECASE)
if content_raw == None:
view_initial = AddViews(self.refId, dialogPhase="Reflection")
view_initial.views = [AssistantUtteranceView(text=note.localizations['noteDefaults']['nothing'][language], speakableText=note.localizations['noteDefaults']['nothing'][language], dialogIdentifier="Note#failed")]
self.sendRequestWithoutAnswer(view_initial)
else:
view_initial = AddViews(self.refId, dialogPhase="Reflection")
view_initial.views = [AssistantUtteranceView(text=note.localizations['noteDefaults']['searching'][language], speakableText=note.localizations['noteDefaults']['searching'][language], dialogIdentifier="Note#creating")]
self.sendRequestWithoutAnswer(view_initial)

    content_raw = content_raw.group(1).strip()
    if "saying" in content_raw:
    split = content_raw.split(' ')
    if split[0] == "saying":
        split.pop(0)
        content_raw = ' '.join(map(str, split))
    if "that" in content_raw:
    split = content_raw.split(' ')
    if split[0] == "that":
        split.pop(0)
        content_raw = ' '.join(map(str, split))
    if "que" in content_raw:
    split = content_raw.split(' ')
    if split[0] == "que":
        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))
    note_create = Create()
    note_create.contents = content_raw
    #STUCK BELOW
        note_return = self.getResponseForRequest(note_create)
    self.say("après getresponse")
    view = AddViews(self.refId, dialogPhase="Summary")
    view1 = AssistantUtteranceView(text=note.localizations['noteDefaults']['result'][language], speakableText=note.localizations['noteDefaults']['result'][language], dialogIdentifier="Note#created")

    note_ = NoteObject()
    note_.contents = content_raw
    note_.identifier = note_return["properties"]["identifier"]
    view2 = NoteSnippet(notes=[note_])
    view.views = [view1, view2]
    self.sendRequestWithoutAnswer(view)
self.complete_request()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions