RobinMeis / Siri-API

Siri-API is a tool which opens Apples Siri for your own wishes WITHOUT the requirement of a Jailbreak. You can predefine keywords which execute your own python code when they are found in a request.
use Python 3ws of Apples Siri. It should woww.blog.smartnoob.de
87 stars 23 forks source link

Using wildcard for the first search word does not work #6

Closed xena68 closed 10 years ago

xena68 commented 10 years ago

I tried to use wildcards[0] to reflect "open" or "close" with this keyword statement, however, it does not work. I suspect the problem is using "*" as the first search phrase.

self.keywords.append({'find': [['*', 'the', 'garage']], 'call': 'garage'})

xena68 commented 10 years ago

[Update -- something is still not working correctly even after the fix below.]

I found the error. Same error was causing this to fail:

self.keywords.append({'find': [['turn', '*', 'the', 'outside', 'lights']], 'call': 'outsidelights'})

The fix is in search.py. wildcard_end was being set to 0 instead of -1 in this clause:

if (wildcard_end > -1): wildcards_found[wildcard_counter] = q[wildcard_start:wildcard_end] wildcard_start = 0 wildcard_end = -1

RobinMeis commented 10 years ago

Thank you for the report. I will look for this and try to fix it. Did you try to use a phrase instead of just a single word? Instead of ['turn', '', 'the', 'outside', 'lights']: ['turn', '', 'the outside lights']?

xena68 commented 10 years ago

No, I didn't realize that would work. I will try it.

On Sat, May 10, 2014 at 3:15 PM, HcDevel notifications@github.com wrote:

Thank you for the report. I will look for this and try to fix it. Did you try to use a phrase instead of just a single word? Instead of ['turn', '', 'the', 'outside', 'lights']: ['turn', '', 'the outside lights']?

Reply to this email directly or view it on GitHubhttps://github.com/HcDevel/Siri-API/issues/6#issuecomment-42753051 .

RobinMeis commented 10 years ago

I tried self.keywords.append({'find': [['*', 'the', 'garage']], 'call': 'garage'}) and as you described, it didn't work. But with a phrase it works: self.keywords.append({'find': [['*', 'the garage']], 'call': 'garage'}). Your second example has to look like this: self.keywords.append({'find': [['turn', '*', 'the outside lights']], 'call': 'outsidelights'}).

In the next version I will redesign the code and make it better documented. Maybe I will also improve the wildcard handling.

xena68 commented 10 years ago

Made the changes you suggested and yes, they work now! Thanks you.

Encountered a new problem. The following is not found even though the words and case all come through correctly:

self.keywords.append({'find': [['turn', '', 'the volume', '', 'the', '', 'room'], ['turn', '', 'the volume', '', 'the', '']], 'call': 'volumeupdown'})

RobinMeis commented 10 years ago

I can't test it right now but I think you just forgot the stars to declare the wildcards.

xena68 commented 10 years ago

That did paste strange in the post, but the asterisks are there in the code.

RobinMeis commented 10 years ago

I found your problem and solved it. I added a solution in the issue #6 branch which you can find here: https://github.com/HcDevel/Siri-API/tree/Issue-%236. To download it with git you can run this command: git clone https://github.com/HcDevel/Siri-API.git -b Issue-#6.

Please let me know if this worked for you.

xena68 commented 10 years ago

Yes, that worked. Thanks.

RobinMeis commented 10 years ago

Thank you for the testing. I just merged the code to the master repository. I didn't change anything else so you don't have to update again.