VoxCommando

Help and Support (Using VoxCommando) => Other Plugins => Topic started by: jitterjames on July 07, 2012, 06:30:13 PM

Title: RoboB - Robo Browser
Post by: jitterjames on July 07, 2012, 06:30:13 PM
Robo Browser (RoboB for short) allows you to automate a web browser contained within a VoxCommando Window.  The window can be hidden.  There are several ways to manipulate the browser to load, edit, and interact with web pages.  You can "click" on items based on position and sometimes by id etc.  To really use this plugin to create new uses, it will help if you know a bit about html / css / javascript etc.

Robob (alpha version) is included in version 0.953 or later of VoxCommando: http://voxcommando.com/forum/index.php?topic=842.0

The plugin still needs a LOT of work to tap into its full potential and to make it easier to use but I have been testing it to add items to Our Groceries and it is working really well for me.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on July 07, 2012, 06:36:33 PM
The first sample application of the RoboB plugin that I have created allows us (hopefully) to add items to our grocery list using "Our Groceries".  This is a really great app that allows you to edit and sync your lists among all your different devices.  When all is set up correctly, you will be able to add items to your grocery list any time by tell VC something like: "remember to buy bread" and it will automatically show up on your mobile device which you can take with you to the store.

The first step if you want to try my sample groups is to start using Our Groceries on your PC, mobile, and/or tablet.

Get it here: https://www.ourgroceries.com

Here is a demo / tutorial showing RoboBrowser in action with OurGroceries:


many thanks to Dave for telling us about Our Groceries in this post: https://voxcommando.com/forum/index.php?topic=804.0
and really getting me motivated to start work on the Robo Browser for this application.  It is an idea that I have been mulling over for a long time but this was a great reason to make it happen.

I am attaching the groups here but I will offer more explanation in upcoming posts, and I may even create a youtube tutorial to explain things a bit more.

Of course you can do a lot of other things with RoboB.  I am curious to see what people come up with, and I'll be happy to work with you to improve the plugin in the future.

EDIT: The XML from this post is out of date so I have removed the attachment.

Please see a more up to date version of the commands here: http://voxcommando.com/forum/index.php?topic=843.msg13689#msg13689
Title: Re: RoboB - Robo Browser
Post by: jitterjames on July 07, 2012, 06:50:58 PM
What you need to do to make this work:

- install or update to VoxCommando version 0.953
- open the VC options form, and enable the RoboB plugin. Save options and restart VC.

- Create an account at http://www.ourgroceries.com
- Play with it.  Get to know it.  Install it on your tab or iPhone etc.  Notice how when you add an item on any computer or device it will show up on other devices that are linked to your account via your email address.  Cool!
- Create a new shopping list to use with VoxCommando

The Following steps require you to use INTERNET EXPLORER on the SAME MACHINE that you will be running VoxCommando on.
The reason is that you will be creating a cookie that keeps you signed in to ourgroceries.  The RoboB plugin uses an Internet Explorer window.  (and before anyone asks... No, it is not possible to use a different browser!  C'est la vie.)
- Open Internet Explorer on the same machine that you will be running VC on.
- go to our groceries.com and click "sign in" at the top right.  If you are already signed in, you can sign out if you need to redo this step
- Important: make sure to place a checkmark where it says "Stay signed in on this computer"
- now enter your email address and password and click Sign-In

You should only need to do all this once, but if you clear your cookies from internet explorer you will probably need to do it again.

- In your browser, click on the grocery list that you created earlier.  If you don't have one then create one that you wan use with VC.
- Copy the URL from your address bar, and keep it handy.  This is the address of your grocery list and we will need to paste it into an LCB action in VoxCommando.  My sample URL looks like this: http://www.ourgroceries.com/your-lists/list/Z862LgsC6pDvBP8v02BLPj

- Import the attached xml into your VC tree using the VC command editor.  You can drag the file into the left side of the editor but be careful to drag it into the empty space below all your groups.  If you drag the file onto an existing group, the commands will be loaded into that group, and we don't want that.  We want the two groups in the file to stay intact, and separate.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on July 07, 2012, 08:13:21 PM
- Import the attached xml into your VC tree using the VC command editor.  You can drag the file into the left side of the editor but be careful to drag it into the empty space below all your groups.  If you drag the file onto an existing group, the commands will be loaded into that group, and we don't want that.  We want the two groups in the file to stay intact, and separate.

You will see a message that there is a payloadXML file missing.  Don't worry, we will create it later.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on July 07, 2012, 08:50:52 PM
- Now open the group "robob Our Groceries" and edit the command "open list"
- Paste the URL of your shopping list into the 3rd Action "RoboB.Navigate" as the parameter
(see the image attached)

Note that the window is not shown by default.  If you want to see the window (useful for testing) enable the 4th action"RoboB.Show" by changing the '0' (in red) to a '1'

Also note that this command is always triggered at startup by the event "VC.Loaded" so that it will always be ready to have new items added.  The navigate command should open the window without you having to enter your password, assuming you previously logged in using Internet Explorer and told OurGroceries to keep you logged in.

Save and restart VoxCommando.

Now you can start adding items to your list.
Title: Re: RoboB - Robo Browser
Post by: hondohc on June 11, 2013, 11:33:40 AM
Hi
Quick question

How do I stop vox and get vox to let me know if I've added the same product to my grocery list all ready on ourgroceries list. ie. If I've added beer twice

Cheers
Darren
Title: Re: RoboB - Robo Browser
Post by: jitterjames on June 11, 2013, 11:55:28 AM
I modified the Add item command as follows:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="646" name="Add Item" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>OurGroceries</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <cmdString>listDiv</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.GetText</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <if ifBlockDisabled="False" ifNot="False">
    <ifType>(A)Contains(B)</ifType>
    <ifParams>{LastResult}&amp;&amp;{1}</ifParams>
    <then>
      <action>
        <cmdType>TTS.Speak</cmdType>
        <cmdString>You already have {1} on your list</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>VC.StopMacro</cmdType>
        <cmdString />
        <cmdRepeat>1</cmdRepeat>
      </action>
    </then>
    <else>
      <action>
        <cmdType>TTS.SpeakSync</cmdType>
        <cmdString>Processing</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
    </else>
  </if>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <cmdString>importItemsList</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.SetText</cmdType>
    <cmdString>{1}</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementParent</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Submit</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Wait</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>{1}, was added to your list</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>don't forget, remember, I need, We need, remind me</phrase>
  <phrase>to</phrase>
  <phrase>buy, purchase, get, pick up</phrase>
  <phrase optional="true">some, more, some more</phrase>
  <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone">groceries.xml</payloadFromXML>
  <phrase optional="true">please</phrase>
</command>
Title: Re: RoboB - Robo Browser
Post by: hondohc on June 13, 2013, 12:59:53 PM
Hi James,

Having problem with getting vox to accept this edited file into groups. It's coming up successfully imported into group when i drag .xml file across but the file never actually gets added into group. Any ideas????. Our if you could attach the file so i could just download it, would prefer to fiqure it out myself but have tried everthing that im aware of only started working and looking at code for a few months now so im no expert limited knowledge. Willing to learn doh  :bonk so any help would be great.

Cheers
Darren
Title: Re: RoboB - Robo Browser
Post by: Kalle on June 13, 2013, 01:11:32 PM
Hi James,

Having problem with getting vox to accept this edited file into groups. It's coming up successfully imported into group when i drag .xml file across but the file never actually gets added into group. Any ideas????. Our if you could attach the file so i could just download it, would prefer to fiqure it out myself but have tried everthing that im aware of only started working and looking at code for a few months now so im no expert limited knowledge. Willing to learn doh  :bonk so any help would be great.

Cheers
Darren
Hi Darren, here is the code as a download xml.

I'm not sure, but I think you must rename or delete first your old group before you can drag and drop the code above  ::hmm

[edit 09-Sep-2014: Attachment deleted to avoid confusion. Users should use the updated Our Groceries xml, which James links to at the beginning of this thread. It consists of 2 command groups.]
Title: Re: RoboB - Robo Browser
Post by: hondohc on June 13, 2013, 02:26:46 PM
Thanks kalle,

That worked a treat....still would love to know where i went wrong must of been wrong encoding our something.....Anyway thanks for your help IOU 1.

Cheers
Darren ;D
Title: Re: RoboB - Robo Browser
Post by: jitterjames on June 13, 2013, 06:24:47 PM
Hi James,

Having problem with getting vox to accept this edited file into groups. It's coming up successfully imported into group when i drag .xml file across but the file never actually gets added into group. Any ideas????. Our if you could attach the file so i could just download it, would prefer to fiqure it out myself but have tried everthing that im aware of only started working and looking at code for a few months now so im no expert limited knowledge. Willing to learn doh  :bonk so any help would be great.

Cheers
Darren

I don't know what XML file you are talking about.  I posted text only, which you can copy and paste into your tree.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on June 13, 2013, 09:20:06 PM
Hi Darren, here is the code as a download xml.

I'm not sure, but I think you must rename or delete first your old group before you can drag and drop the code above  ::hmm

It is not necessary as far as the editor is concerned.  It will let you.  But you should not save with two groups that have the same name.  Only the first group will be used.  And you should make sure that you do not have two commands that use the same phrases.

In other words, yes, you should delete the old group, but no, it will not stop you from importing the new group with the same name, or the same commands.
Title: Re: RoboB - Robo Browser
Post by: hondohc on June 13, 2013, 10:10:37 PM
I don't know what XML file you are talking about.  I posted text only, which you can copy and paste into your tree.


Thanks james

Thats where I went wrong I copied the text and converted it in notepad plus to .xml. No problem at least I know where I went wrong thanks again for your help.

Cheers
Darren
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 08, 2013, 02:54:08 PM
Hi James

I've added the code you posted above and it's working fine except that if an item has been crossed off the list (for example "eggs") but is still showing in the "crossed off" list VC tells me I already have eggs on my list  :-\ is there any way to restrict the duplicate item check to just the "Shopping List"?

Cheers

Dave
 
Title: Re: RoboB - Robo Browser
Post by: jitterjames on November 08, 2013, 05:59:13 PM
That one stumped me for a while.

I think the best solution is to use regexReplace to strip out all the html that appears after crossed off by using the pattern:
Code: [Select]
crossed-off-header.*
I don't know if this matches exactly the previous command but it works with my current setup.  It also accounts for the possibility of having multiples of an item in case they accidentally got added more than once.  e.g.: beer (5)

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="930" name="Add Item" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>OurGroceries</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <cmdString>listDiv</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.GetHTML</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <cmdString>crossed-off-header.*</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <cmdString>\s\(\d\)</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <if ifBlockDisabled="False" ifNot="False">
    <ifType>(A)Contains(B)</ifType>
    <ifParams>{LastResult}&amp;&amp;&gt;{1}&lt;</ifParams>
    <then>
      <action>
        <cmdType>TTS.Speak</cmdType>
        <cmdString>You already have {1} on your list</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>VC.StopMacro</cmdType>
        <cmdString />
        <cmdRepeat>1</cmdRepeat>
      </action>
    </then>
    <else>
      <action>
        <cmdType>TTS.SpeakSync</cmdType>
        <cmdString>Processing</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
    </else>
  </if>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <cmdString>importItemsList</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.SetText</cmdType>
    <cmdString>{1}</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementParent</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Submit</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Wait</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>{1}, was added to your list</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>don't forget, remember, I need, We need</phrase>
  <phrase>to</phrase>
  <phrase>buy, purchase, get, pick up</phrase>
  <phrase optional="true">some, more, some more</phrase>
  <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">groceries.xml</payloadFromXML>
  <phrase optional="true">please</phrase>
</command>
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 09, 2013, 03:16:28 AM
Excellent, thanks, it's working here  ;D

One thing, when music is playing (via MediaMonkey) I want to mute the volume when the RoboB response happens. I've tried adding a MM.Softmute action before the response & an unmute action after the response but the volume level doesn't change. Can this be done?

Cheers
Title: Re: RoboB - Robo Browser
Post by: Kalle on November 09, 2013, 07:26:34 AM
Didn't work the softmute action at all or only not in your robob command?
Can you post the command code?
Title: Re: RoboB - Robo Browser
Post by: jitterjames on November 09, 2013, 08:17:47 AM
If you use TTS.speak it will not wait for the TTS to finish speaking before going on to the next action, so it will unmute almost immediately.  Using TTS.speaksync should solve the problem.
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 12, 2013, 03:24:15 PM
Update: I couldn't get the muting to work but apart from that the above works well in that it no longer includes items crossed off the list but I found that when I used a command (e.g. Play Music) I was getting an HTML version of the shopping list showing up on my screen (as part of the command OSD) and in VoxWav. When I changed back to the "standard" version which checks for duplicates in OurGroceries this no longer happened (so now I just delete the crossed off items at the bottom of the screen). I'll have another look at the muting thing today...
Title: Re: RoboB - Robo Browser
Post by: nime5ter on November 12, 2013, 04:07:35 PM
Hi Bleazle,

Could you please post the code for the command that you're having problems with (i.e., your updated code with whatever changes you've made since James posted his fix for the OurGroceries deleted items problem).

And ideally, also your log file.  (http://voxcommando.com/mediawiki/index.php?title=Log)

Might be easier for us to help you problem solve that way. :)
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 13, 2013, 05:40:01 AM
I've deleted the file I was playing with but I will have another crack when I get a chance and upload it if I don't have any luck, cheers.
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 15, 2013, 07:05:10 PM
Hi guys

This is a little bit off topic but I figured this was the best place to post my question. OurGroceries is good but I've just installed ZipList (www.ziplist.com) which is far more versatile/powerful. I'm the cook in the house at the moment thanks to my wife working long hours so I want to make my job as easy as possible  ;D I have tweaked the OurGroceries group and changed it so that RoboBrowser opens up the ZipList shopping list but I can't get VC to check/add items to the shopping list. Looking at the page source for ZipList it is far more involved than the OurGroceries page source - I've tried a few different ID's but haven't had any luck. I have attached the Group Command with "????" noted, it would be great if someone could give me a clue as to what I need to do here..

Cheers

Dave
Title: Re: RoboB - Robo Browser
Post by: nime5ter on November 15, 2013, 10:27:10 PM
Yes, it's a little different. You can't use the element IDs in the same way because of how they've structured their page, and they don't have an import list function, which is what the OurGroceries command uses to add items. To add new items to the zip list you need to use their add item form field instead.

Are you familiar with how to use RoboB's "show" action with mouse tracking to find element IDs, etc.? That's a pretty useful way to inspect the page and find what you need. It's how I figured out the following.

The add item field's element ID is "zipbox_command". However, in order to actually submit your new item, you'll then need to emulate clicking on their "Add Item" button. If you roll over that button, you'll see that it's defined with an Input tag, index no. 6. You then need to use RoboB.Click to simulate a mouse-click, rather than using RoboB.Submit as we more commonly do.

The list itself is also formed differently than Our Groceries, which means you can't check existing list items by finding the right element ID. Instead you need to look for a pattern in how they are defining grocery items. They do this with span tags, class=iname. To find that pattern, we rely on ye olde regex.

Below is code that should work for you to add a new item to your list, including checking whether the item is already on your list before adding.

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<commandGroup open="True" name="robob ZipList high priority" enabled="False" prefix="" priority="5" requiredProcess="" description="">
  <command id="617" name="open list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <cmdString>ZipList</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.SetWinSize</cmdType>
      <cmdString>800&amp;&amp;600</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Navigate</cmdType>
      <cmdString>http://www.ziplist.com/mylist/YOURLISTNUMBER</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Show</cmdType>
      <cmdString />
      <cmdRepeat>0</cmdRepeat>
    </action>
    <phrase>prepare, start, ready</phrase>
    <phrase>robo browser, our groceries, grocery list</phrase>
    <event>VC.Loaded</event>
  </command>
  <command id="695" name="Add Item" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <cmdString>ZipList</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementRegex</cmdType>
      <cmdString>span&amp;&amp;class=iname&gt;{1}&amp;&amp;False</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.GetText</cmdType>
      <cmdString />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <if ifBlockDisabled="False" ifNot="False">
      <ifType>LastActionSuccess</ifType>
      <ifParams>&amp;&amp;</ifParams>
      <then>
        <action>
          <cmdType>TTS.Speak</cmdType>
          <cmdString>You already have {1} on your list</cmdString>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>VC.StopMacro</cmdType>
          <cmdString />
          <cmdRepeat>1</cmdRepeat>
        </action>
      </then>
      <else>
        <action>
          <cmdType>TTS.SpeakSync</cmdType>
          <cmdString>Processing</cmdString>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </else>
    </if>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <cmdString>zipbox_command</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.SetText</cmdType>
      <cmdString>{1}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <cmdString />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByTag</cmdType>
      <cmdString>INPUT&amp;&amp;6</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Click</cmdType>
      <cmdString />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <cmdString>{1}, was added to your list</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>don't forget, remember, I need, We need, remind me</phrase>
    <phrase>to</phrase>
    <phrase>buy, purchase, get, pick up</phrase>
    <phrase optional="true">some, more, some more</phrase>
    <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">groceries.xml</payloadFromXML>
    <phrase optional="true">please</phrase>
  </command>
</commandGroup>

You'll have to take the same exploratory approach to figure out how to re-do the other commands as well, but hopefully this provides a helpful start for you.

cheers
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 16, 2013, 01:36:58 AM
Thanks for the informative reply, unfortunately the code you posted doesn't work for me. The "Add Item" button Input tag is index no. 7 for me so I changed that, added a test payload ("beer" as it happens ;) ) and gave it a go - "beer" is entered into the "zipbox_command" field and the screen acts as though the "Add Item" button has been clicked (i.e. the screen fades out and the "wait" icon appears) but when the list re-loads the item hasn't been added. I tried all sorts of different things but nothing worked - unfortunately I eventually managed to crash VC so I can't show you what I tried  ::confused Did you manage to get items to load?
Title: Re: RoboB - Robo Browser
Post by: jitterjames on November 16, 2013, 01:49:26 PM
I tried this command.  Input 6 was correct for me but for some reason the clicking of the button just made the page reload and the new item was not added.

This morning we figured out this method which seems to work reliably and is probably more efficient anyway.  Note that you will need to insert your listID in the second to last action.

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="733" name="Add Item simple" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>ZipList</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementRegex</cmdType>
    <cmdString>span&amp;&amp;class=iname&gt;{1}&amp;&amp;False</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <if ifBlockDisabled="False" ifNot="False">
    <ifType>LastActionSuccess</ifType>
    <ifParams>&amp;&amp;</ifParams>
    <then>
      <action>
        <cmdType>TTS.Speak</cmdType>
        <cmdString>You already have {1} on your list</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>VC.StopMacro</cmdType>
        <cmdString />
        <cmdRepeat>1</cmdRepeat>
      </action>
    </then>
    <else>
      <action>
        <cmdType>TTS.SpeakSync</cmdType>
        <cmdString>Processing</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
    </else>
  </if>
  <action>
    <cmdType>RoboB.Navigate</cmdType>
    <cmdString>http://www.ziplist.com/mylist/YOURLISTID/zipbox?utf8=%E2%9C%93&amp;zip_command={1}</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>{1}, was added to your list</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>don't forget, remember, I need, We need, remind me</phrase>
  <phrase>to</phrase>
  <phrase>buy, purchase, get, pick up</phrase>
  <phrase optional="true">some, more, some more</phrase>
  <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">groceries.xml</payloadFromXML>
  <phrase optional="true">please</phrase>
</command>
Title: Re: RoboB - Robo Browser
Post by: nime5ter on November 16, 2013, 01:54:43 PM
Looks like I was just lucky with the Input [6] click action working reliably for me. Possibly because my IE browser is an ancient version.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on November 16, 2013, 02:11:44 PM
It is a mystery.  I can't think of any reason why it should not work.  Computers...  :bonk
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 16, 2013, 03:20:14 PM
Thanks guys - items are now being added  :) but the "check if item is already on the list" part doesn't work. I changed the RoboB.ElementRegex patter to "iname" because "class=iname" was throwing an error in VC History but apart from that i haven't had any luck. Any ideas on this one?
Title: Re: RoboB - Robo Browser
Post by: nime5ter on November 16, 2013, 03:42:34 PM
This is just a guess, but: Do you still have the related "open list" command in your ziplist command group (or elsewhere in your tree), or did you delete that?

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="617" name="open list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>ZipList</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.SetWinSize</cmdType>
    <cmdString>800&amp;&amp;600</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Navigate</cmdType>
    <cmdString>http://www.ziplist.com/mylist/YOURLISTNUMBER</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Show</cmdType>
    <cmdString />
    <cmdRepeat>0</cmdRepeat>
  </action>
  <phrase>prepare, start, ready</phrase>
  <phrase>zip list, grocery list</phrase>
  <event>VC.Loaded</event>
</command>

The above command is supposed to be triggered when you first launch VC (via the VC.Loaded event). This is necessary for VC to know that the RoboBrowser called "ZipList" should navigate to the URL for your particular grocery list. If you still have that command, try manually triggering it before testing the add item command (whether with an appropriate voice command or by clicking on the open list command's play button in the command tree), to make sure that RoboBrowser has navigated to your grocery list.

If you're not going to use that command, then within the "Add Item" command you'll need to tell it to navigate to the URL of your list.

In other words:

For, the "Add Item" command to be able to check for existing items on your list, it needs to know where to look. The first RoboB.Select action in the Add Item command calls the ZipList RoboBrowser, with the expectation that this ZipList RoboB has already been created (i.e. by the other, "open list" command). If the "open list" command hasn't been triggered yet, it will simply create a RoboBrowser window to nowhere.

Am I making any sense?  :D (I'm very tired today, so I may not be very articulate!)

Point being, you should go back to using James's code, but make sure that the first thing that happens is that the ZipList robobrowser window has navigated to http://www.ziplist.com/mylist/YOURLISTNUMBER, whether you're doing that in the open list command or your add item command.

That said, the checking of items should only fail the first time you execute the add item command, because within that command you eventually do provide a URL. I suspect that you only tested it once?
Title: Re: RoboB - Robo Browser
Post by: jitterjames on November 16, 2013, 05:04:30 PM
Thanks guys - items are now being added  :) but the "check if item is already on the list" part doesn't work. I changed the RoboB.ElementRegex patter to "iname" because "class=iname" was throwing an error in VC History but apart from that i haven't had any luck. Any ideas on this one?
It is supposed to "throw an error" if the item is not in your list.  We are using "if last action success" in our logic.

If there is an error it means no success, no error means success.

No error means which in turn means, the item was found, meaning "you already have this item in your list".

An error means you don't already have the item in your list so we should add it.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on November 16, 2013, 10:16:50 PM
use the following pattern as the 2nd argument of the RoboB.ElementRegex action.

Code: [Select]
>{1}<
For some reason the html appeared differently on nime5ter's robobrowser.  She had IE version 8 installed and is upgrading it to see if it makes a difference.

on her system it appeared as

<span class=iname>onions</span>

on my system (and presumably on yours) it appeared as

<span class="iname">onions</span>

On ours there are quotes around iname.  How totally bizarre!  Anyway, >{1}< should work.
Title: Re: RoboB - Robo Browser
Post by: Bleazle on November 17, 2013, 05:07:45 AM
SORTED!!  ;D Cheers Guys (and gals!)  ;D
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 22, 2014, 08:38:29 PM
Does this still work with ourgroceries.com?

I've followed the instructions and I can't get voxcommando to generate the masterxml. Nor can I get the updated add item action to confirm whether I wan't to add an item or not when it already exists. Everything else seems to work fine.

Any help greatly appreciated.

Thanks,
Chris.

Edit. I guess I should say that it does generate the groceries.xml file. But there is no data inside the file.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on March 22, 2014, 09:26:13 PM
Yes.  It still works perfectly for me.  Here is the command I am currently using to update my payloadXML

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="945" name="update payload XML master list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>Scanning</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>OurGroceries</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <cmdString>addItemButton</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Click</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Wait</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <cmdString>addItemMasterList</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.GetHTML</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>File.WriteLine</cmdType>
    <cmdString>groceries.txt&amp;&amp;{LastResult}</cmdString>
    <cmdRepeat>0</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegEx</cmdType>
    <cmdString>masterItemLabel\"&gt;(.*?)&lt;</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>Found {#M} items</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.NewFile</cmdType>
    <cmdString>groceries</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.Clear</cmdType>
    <cmdString>groceries</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.AddPair</cmdType>
    <cmdString>groceries&amp;&amp;&amp;&amp;{Match.{i}}&amp;&amp;True</cmdString>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByXY</cmdType>
    <cmdString>615&amp;&amp;31</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Click</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <cmdString>Created PayloadXML with {#M} items</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>Created Payload XML with {#M} items</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>VC.RestartQuick</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>scan new groceries</phrase>
</command>

It is important that you are logged in to OurGroceries from within RoboBrowser.  You can open the Robob to see if it is working like so:
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="911" name="Show Groceries" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>OurGroceries</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Show</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>Show Groceries</phrase>
</command>

Sometimes you will get logged out (cookies dies or whatever) so I have it check when VC starts up and automatically log in if necessary.
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="951" name="++open list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>OurGroceries</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.SetWinSize</cmdType>
    <cmdString>800&amp;&amp;600</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Navigate</cmdType>
    <cmdString>http://www.ourgroceries.com/your-lists/list/ZLJwKUtxSZklNUkYDTaZrG</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Show</cmdType>
    <cmdString />
    <cmdRepeat>0</cmdRepeat>
  </action>
  <action>
    <cmdType>VC.Pause</cmdType>
    <cmdString>1800</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Wait</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <cmdString>emailAddress</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <if ifBlockDisabled="False" ifNot="False">
    <ifType>LastActionSuccess</ifType>
    <ifParams>&amp;&amp;</ifParams>
    <then>
      <action>
        <cmdType>TTS.Speak</cmdType>
        <cmdString>Logging into our groceries.</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.SetText</cmdType>
        <cmdString>!!!YOURUSERNAMEOREMAILADDRESSHERE!!!</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.ElementByID</cmdType>
        <cmdString>password</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.SetText</cmdType>
        <cmdString>!!!YOURPASSWORDHERE!!!</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.ElementByID</cmdType>
        <cmdString>staySignedIn</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.Click</cmdType>
        <cmdString />
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.ElementByID</cmdType>
        <cmdString>signInButton</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.Click</cmdType>
        <cmdString />
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>VC.Pause</cmdType>
        <cmdString>100</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
    </then>
    <else />
  </if>
  <action>
    <cmdType>RoboB.Hide</cmdType>
    <cmdString />
    <cmdRepeat>0</cmdRepeat>
  </action>
  <phrase>refresh</phrase>
  <phrase>robo browser, our groceries, grocery list</phrase>
  <event>VC.Loaded</event>
</command>
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 23, 2014, 12:49:12 AM
Oh man this is great. I got it all working as intended. That login code is a nice touch.

Now the real challenge is to get this thing to log in to my employeers website and tell me through TTS if I am available or on rest. And a few other things. Not sure how I am going to accomplish this. Basically I want it to TTS the names of the guys on the list and if they are available or on rest and until what time. This would be amazing. Any ideas?

Thanks for the help with the grocery stuff!
Title: Re: RoboB - Robo Browser
Post by: nime5ter on March 23, 2014, 07:57:30 AM
:)

In theory, it's probably doable. Without having access to your employer's website we can't help much.

It would probably be similar to the Our Groceries solution. Use RoboB to open the right webpage and log in, etc.

Then you'll need to explore the tags on the web page that lists who's at rest/available, take a look at the page source and analyze its structure.

You'll need that to figure out the regular expressions required to get the information that you want for your TTS announcements.

If it's using a structured data format (XML), that may make it a bit easier but that's not too likely.
 
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 23, 2014, 09:31:57 AM
Ok well this is the code that I pulled that shows my own standing for work. I guess to start I would like it to TTS my Status and OnDuty Train. Is this possibile the way it is formated?

Code: [Select]


<html>
<head>
<script language='javascript' src='/vdesk/intranets/volatile.js?687474703a2f2f636d61776562617070767372762e6370722e6361/cmawebapp/approot/EmpStnd.aspx?k=000'></script>
<script src='/vdesk/intranets/cache-fm.php'></script>
<script language="javascript">
function logOff()
{
  if (confirm ("Are you sure that you would like to log off"))
    {
    F5_Inflate_href(F5_Deflate_location(document),0,"logoff.aspx");
    }
  return;
}
</script><script>try{F5_flush(document);}catch(e){}</script>
</head>

<body>
<table width="100%">
<tr>
   <td align="center"><img src="../media/Crewheader.gif?F5CH=I">
  </td>
</tr>
<tr>
  <td>
<table width="100%">
  <tr>
    <td width=50% align=right>
      <!--<a href="javascript:history.back()">Back</a>&nbsp;-->
      <input type="button" value="Back" id=back name=back onclick="history.back()">&nbsp;
    </td>
    <td width=50% align=left>
      <!--<a href="javascript:logOff()">Log Off</a>-->
      <input type="button" value="Log Off" id=logoff name=logoff onclick="javascript:logOff()">
    </td>
  </tr>
</table>



  </td>
</tr>

<tr>
  <td align=center>
      <!-- nfosys:Sumalatha Anduri:19-Dec-2007
      Replaced the html table with Table control - .net server control --> 
      <table id="tabReport" rules="all" border="1" style="width:75%;">
<tr align="center" style="font-size:12pt;font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">
<td colspan="2">Employee Standing</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Number</td><td style="background-color:LightGrey;">0000000</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Name</td><td style="background-color:LightGrey;">COHOLIC, AL </td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Sub District</td><td style="background-color:LightGrey;">WINNIPEG                 </td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Craft</td><td style="background-color:LightGrey;">BK</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Status</td><td style="background-color:LightGrey;">B</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Personal Rest<br>hh:mm</td><td style="background-color:LightGrey;">````</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">MTOD<br>hh:mm</td><td style="background-color:LightGrey;">````</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">USHR<br>hh:mm</td><td style="background-color:LightGrey;">`   </td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Current Position</td><td style="background-color:LightGrey;">WPG POOL                                                   </td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Current Position Craft</td><td style="background-color:LightGrey;">CO</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Asgn Job Start Time<br>hh:mm</td><td style="background-color:LightGrey;">&nbsp;</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">Pool / SB Position</td><td style="background-color:LightGrey;">99</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">ID Pool Flag</td><td style="background-color:LightGrey;">&nbsp;</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">DM Rest Day One</td><td style="background-color:LightGrey;">&nbsp;</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">DM Rest Day Two</td><td style="background-color:LightGrey;">&nbsp;</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">On Duty Train</td><td style="background-color:LightGrey;">2299-21 RC</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">On Duty Craft</td><td style="background-color:LightGrey;">CO</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">On Duty Time<br>hh:mm</td><td style="background-color:LightGrey;">08:00</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">DM Job Tommorow</td><td style="background-color:LightGrey;">&nbsp;</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">DM Craft Tommorow</td><td style="background-color:LightGrey;">&nbsp;</td>
</tr><tr>
<td style="font-weight:bold;background-image: url('../media/beige.jpg?F5CH=I');">DM Job Start Time<br>hh:mm</td><td style="background-color:LightGrey;">&nbsp;</td>
</tr><tr style="background-image: url('../media/beige.jpg?F5CH=I');">
<td colspan="2">&nbsp &nbsp</td>
</tr><tr style="background-image: url('../media/beige.jpg?F5CH=I');">
<td colspan="2">Data current as of 3/23/2014 8:17:26 AM Mar. 23, 2014 08:17 (GMT-4)</td>
</tr>
</table>
     <!-- End code changes -->
  </td>
</tr>
<tr>
  <td>
<table width="100%">
  <tr>
    <td width=50% align=right>
      <!--<a href="javascript:history.back()">Back</a>&nbsp;-->
      <input type="button" value="Back" id=back name=back onclick="history.back()">&nbsp;
    </td>
    <td width=50% align=left>
      <!--<a href="javascript:logOff()">Log Off</a>-->
      <input type="button" value="Log Off" id=logoff name=logoff onclick="javascript:logOff()">
    </td>
  </tr>
</table>

<table width="100%">
<tr>
  <td align="center"><font size=1>
    For assistance, contact the USC: 1-800-387-1833.
  </font></td>
</tr>
<tr>
  <td align="center"><font size=2><i>
    Version 2.0 &nbsp;&nbsp;&nbsp;February 2008
  </i></font></td>
</tr>
</table>


  </td>
</tr>
</table>
</body>
</html>



Thanks again, this site is amazing.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on March 23, 2014, 10:10:43 AM
The regex part of this is quite straighforward.  I am opening a file in which I have saved your html.  You'll need to change the way you get the html into {lastResult} for this command to work, using either scrape or RoboBrowser to grab it:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="214" name="alcoholic" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>File.Read</cmdType>
    <cmdString>C:\Users\james\Desktop\onduty.html</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegEx</cmdType>
    <cmdString>&gt;Status&lt;/td&gt;&lt;td.*?&gt;(.*?)&lt;/td&gt;</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <cmdString>Status: {Match.1}&amp;&amp;4444</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>Status: {Match.1}</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegEx</cmdType>
    <cmdString>&gt;On\sDuty\sTrain&lt;/td&gt;&lt;td.*?&gt;(.*?)&lt;/td&gt;</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.AddText</cmdType>
    <cmdString>On Duty Train: {Match.1}</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <cmdString>On Duty Train: {Match.1}</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
</command>
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 23, 2014, 04:58:55 PM
Ok man I'll definately tinker with this code when I get home.

One issue I was having when trying to login is when I submit the username and password the browser launches a seperate internet explorer window. I wonder if there is anyway to keep it contained in the same window, or if it can open another robobrowser that I can't interact with instead. The only solution I had was to make a Window.Close action when internet explorer was focused to close the popup. And then could interact with the original roboB.

But it only seems to work sometimes. You there there is a better solution to that?

Thanks again.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on March 23, 2014, 05:04:05 PM
I have no idea.  Probably not.
Title: Re: RoboB - Robo Browser
Post by: nime5ter on March 23, 2014, 05:34:30 PM
Once you have everything working as best you can, you can post your xml (with private info removed).

No promises (particularly if Guru James says "probably not"  :P), but maybe we can suggest something once we see how you're implementing it.
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 23, 2014, 11:26:51 PM
Ill see what I can do. Im not sure why the window. Close only works part of the time. It seems like a good enough solution as long as it works consistently. Maybe something I can do in event ghost. You giys are the experts. :)
Title: Re: RoboB - Robo Browser
Post by: nime5ter on March 24, 2014, 08:38:34 AM
Basically, it's not clear on this end what the situation is and we have no way of interacting with the site in question. It's the kind of thing you have to have in front of you, so the problem-solving will have to take place on your end.

We will ponder the situation a bit to see if anything comes to mind. It's difficult to understand how you're able to get the regex results you wanted from a page that's opening in a separate browser window. This is one reason that having your xml would help us.

Did you add the process name (iexplore) to your Window.Close action? http://voxcommando.com/mediawiki/index.php?title=Actions#Close
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 25, 2014, 11:24:04 AM
Wow, ok. Well I got everything working kind of. I got the window to close by sending a command to eventGhost. For some reason the Window.Close iexplore wasn't working reliably through VC. Evenghost is definitely killing it every time.

So I have logged in successfully and browsed to the page I need to extract the required information. I can't seem to get it to work with RoboB.GetHTML. It just says Status{Match.1}, On duty Train {Match.1}

But if I save the html file to my desktop and use FileRead it works flawlessly. I'm not sure what Im doing wrong.

Thanks again guys.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on March 25, 2014, 11:38:41 AM
Unless you post XML and/or some kind of log we can't possibly know what you are doing wrong either.

It might just be that the page is not finished loading when you try to grab the html.  If that is the case you can try naming your command with ++ at the beginning and inserting a vc.pause action between the robob.navigate action and the action that grabs the html.
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 27, 2014, 09:00:21 PM
Ok I got it working with james' help. This is awesome. One question I had was when regex returns the result "A" is there anyway to make TTS say "Available"?

Thanks.
Title: Re: RoboB - Robo Browser
Post by: Kalle on March 27, 2014, 09:21:59 PM
Yes sure, there are different ways to do this. You can use the "Results.RegExReplace" or "Results.Replace" and then TTS.Speak {LastResult}
You can also use a logic block (if-then-else) like: IF (A==B) / parameter for A {LastResult}  parameter for B A THEN TTS.Speak Available.
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 27, 2014, 10:01:42 PM
Ok! Thats what I thought, I was doing that but it wasn't working. Now its working! One wrong character and the whole thing malfunctions lol. Im totally new to this.

Anyways im actually doing if A==B {Match.1} instead of {LastResult} as that was querying the entire HTML.

But anyways its working. If Im on rest it will tell me what time im on rest until else it will say im rested!

This program rocks, this site rocks, you guys rock!


Cheers!
Title: Re: RoboB - Robo Browser
Post by: Kalle on March 28, 2014, 02:54:03 AM
Thanks, nice to hear that it works  :)
I can feel with you, sometimes do I make the same fault  :bonk
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 29, 2014, 02:37:04 AM
Ok all that seemed easy now I'm pulling my hair out trying to implement the second part of my little project. This first one just told me about my own personal status. But now I would like to have Vox TTS the status of the rest of the employees on the spareboard. Im trying to use regex to get the data but its driving me nuts. Im not sure if there is a better way to implement this.

This is the HTML from the page Im using.
Code: [Select]
<TD>Spare Board : BRAKEMAN SPAREBOARD</TD></TR>
<TR align=center>
<TD>Sub District : WINNIPEG</TD></TR>
<TR align=center>
<TD>Yard Tag Location Indicator : </TD></TR></TBODY></TABLE></DIV>
<DIV>
<TABLE id=gvDetail0 style="FONT-SIZE: 10pt; BORDER-TOP: lightgrey 2px solid; FONT-FAMILY: Arial; BORDER-RIGHT: lightgrey 2px solid; BORDER-BOTTOM: lightgrey 2px solid; FONT-WEIGHT: normal; BORDER-LEFT: lightgrey 2px solid" borderColor=lightgrey cellSpacing=2 cellPadding=2 rules=all align=center border=2>
<TBODY>
<TR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; BACKGROUND-IMAGE: url(../media/beige.jpg?F5CH=I)" align=center>
<TH scope=col>Employee</TH>
<TH scope=col>Position</TH>
<TH scope=col>Rest<BR>yy-mm-dd/hh:mm</TH>
<TH scope=col>USHR<BR>hh:mm</TH>
<TH scope=col>MTOD<BR>hh:mm</TH>
<TH scope=col>Road / Yard</TH>
<TH scope=col>Yard Starts</TH></TR>
<TR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; BACKGROUND-COLOR: lightgrey" align=center>
<TD>ANDERCHEK, M.(MIKE) PC ESB</TD>
<TD>01</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD></TR>
<TR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; BACKGROUND-COLOR: whitesmoke" align=center>
<TD>PAGE, S. (STEPHEN) PC</TD>
<TD>02</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD></TR>
<TR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; BACKGROUND-COLOR: lightgrey" align=center>
<TD>MCWILLIAMS, S. SHAUN CR PC</TD>
<TD>03</TD>
<TD>14-03-29/06:00</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD></TR>
<TR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; BACKGROUND-COLOR: whitesmoke" align=center>
<TD>BEITZ, T. (TOM) PC CRO</TD>
<TD>04</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD></TR>
<TR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; BACKGROUND-COLOR: lightgrey" align=center>
<TD>ESSLINGER, C. (CHRIS) PC</TD>
<TD>05</TD>
<TD>14-03-29/16:22</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD></TR>
<TR align=center>
<TD style="BACKGROUND-IMAGE: url(../media/beige.jpg?F5CH=I)" colSpan=7>&nbsp;</TD></TR>
<TR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; COLOR: red" align=left>
<TD style="BACKGROUND-IMAGE: url(../media/beige.jpg?F5CH=I)" colSpan=7>Data current as of 3/28/2014 6:54:31 PM Mar. 28, 2014 06:54 (GMT-4)</TD></TR></TBODY></TABLE></DIV></DIV><!-- End code changes --><BR><!-- End code changes --></FORM></TD></TR>
<TR>
<TD>
<HR>
</TD></TR>
<TR>
<TD align=center>
<TABLE width="100%">
<TBODY>
<TR>
<TD width="50%" align=right><!--<a href="javascript:history.back()">Back</a>&nbsp;--><INPUT onclick=history.back() id=back type=button value=Back name=back>&nbsp; </TD>
<TD width="50%" align=left><!--<a href="javascript:logOff()">Log Off</a>--><INPUT onclick=javascript:logOff() id=logoff type=button value="Log Off" name=logoff> </TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD align=center><FONT size=1>For assistance, contact the USC: 1-800-387-1833. </FONT></TD></TR>
<TR>
<TD align=center><FONT size=2><I>Version 2.0 &nbsp;&nbsp;&nbsp;February 2008 </I></FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>

Here are a few regex codes that I have used but I just can't seem to get the right

This is is basically giving me all the information I need but I'm trying to get rid of the stuff after the names eg."PC, ESB, CR, CRO"
Code: [Select]
<TD>(\w.*?)<
This one does remove the lines with "PC" but it also removes the name.

Code: [Select]
<TD>(\w.*?)(?<!PC)<
My goal is basically to have vox TTS "First Out, Name, if on rest?what time?, Second Out, Name.." and down the list.

Maybe I am in over my head lol.

Any help greatly appreciated guys! Cheers!
Title: Re: RoboB - Robo Browser
Post by: nime5ter on March 29, 2014, 02:08:54 PM
Hi Oktane83,

We actually had some fun with this earlier this morning. It's not the easiest thing in the world, but hopefully what we came up with will get you started.

I don't have the xml in front of me right now, but I'll remind James to post it when he gets in.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on March 29, 2014, 02:25:16 PM
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 1.9.1.9-->
<commandGroup open="True" name="I spy" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="290" name="check-check" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>File.Read</cmdType>
      <params>
        <param>staff.html</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegExSingle</cmdType>
      <params>
        <param>color.*?&lt;td&gt;(\w.*?)(?:PC|CR|ESB|CR|CRO).*?&lt;/td&gt;\r\n&lt;td&gt;(\d\d)&lt;.*?&lt;td&gt;(.*?)&lt;/td&gt;</param>
        <param>|</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>Found {#M} matches</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.MatchToEvent</cmdType>
      <params>
        <param>empStatus</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
  </command>
  <command id="288" name="Announce who's on" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Results.SetLastResult</cmdType>
      <params>
        <param>{1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegEx</cmdType>
      <params>
        <param>(\D.*?)\|0*(\d+?)\|(\d.*?|&amp;nbsp;)$</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>Employee: {Match.1.1}</param>
        <param>3000</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.AddText</cmdType>
      <params>
        <param>Position: {Match.1.2}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <if ifBlockDisabled="False" ifNot="True">
      <ifType>(A)Contains(B)</ifType>
      <ifParams>{Match.1.3}&amp;&amp;nbsp;</ifParams>
      <then>
        <action>
          <cmdType>TTS.Speak</cmdType>
          <params>
            <param>Employee: {Match.1.1}, is in position:  {Match.1.2}</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>OSD.AddText</cmdType>
          <params>
            <param>Rest: {Match.1.3}</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>TTS.SpeakSync</cmdType>
          <params>
            <param>with a rest at: {Match.1.3}</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </then>
      <else>
        <action>
          <cmdType>TTS.SpeakSync</cmdType>
          <params>
            <param>Employee: {Match.1.1}, is in position:  {Match.1.2}</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </else>
    </if>
    <event>empStatus</event>
  </command>
</commandGroup>
Title: Re: RoboB - Robo Browser
Post by: nime5ter on March 29, 2014, 02:34:01 PM
Be sure to update to VC2 1.919 if you haven't yet (http://voxcommando.com/forum/index.php?topic=1443.0).

The xml James posted uses the new command structure.
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 29, 2014, 03:24:19 PM
You guys are unbelievable!!  :hugs This is definitely going to help! Wow!  ::bow ::bow
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 29, 2014, 08:54:03 PM
Quick question. Actually 2. Do you have a paypal account so I can make a donation for your help? And number 2, when I switch the TTS voice from Hazel UK to any of the US voices it doesn't speak the date format or time properly. ei. "with a rest at 14 dash 03 dash..." and "14 colon 05" Any way to fix that?

Thanks again!
Title: Re: RoboB - Robo Browser
Post by: jitterjames on March 29, 2014, 09:41:02 PM
Thanks.  Yes, well, that is a bit of a weird question.  If you have purchased a license for VoxCommando then you should know that we have a PayPal account.  :)  At the bottom of the purchase page there is also a donate button. http://voxcommando.com/buynow.asp

It's true, different TTS voices will interpret dates, numbers etc. in different ways.  Dates of course can be formatted in about 20 different ways depending on what country you are in.  If a particular TTS voice is not able to recognize the format you have then you will need to adjust it, either by modifying your regex somehow, or possibly by doing some kind of replace.
Title: Re: RoboB - Robo Browser
Post by: Oktane83 on March 29, 2014, 10:29:03 PM
Just found out about VC about 1 week ago and was trialing the software. I got so caught up in it's awesomeness man! Just take my money! lol

Weird thing is the time though. I don't know many ways to write 10:30 and when I put 10:30 into the TTS preview in reads fine! Stumped.  ::hmm

Title: Re: RoboB - Robo Browser
Post by: jitterjames on March 30, 2014, 08:04:31 AM
What TTS voice / engine are you using?  A particular TTS voice will almost certainly read the same thing the same way every time.  If it reads it differently one time, it will probably be because it is written differently.  In your case you need to separate the time from the date with a space.  I see in your other thread you seem to have figured this out but I'm mentioning it here for anyone following this thread.
Title: Re: RoboB - Robo Browser
Post by: Bleazle on April 25, 2014, 07:36:22 PM
Hi James

I'm using VC 1.9.2.2 and have just tried getting RoboB to load www.iheart.com but I got this message: http://www.iheart.com/help/not-supported/

I'm not too worried but I thought you might want to know.

Cheers

Dave

 
Title: Re: RoboB - Robo Browser
Post by: jitterjames on April 25, 2014, 08:03:37 PM
Oh well.  So it goes. I'm sure it is not the only site!
Title: Re: RoboB - Robo Browser
Post by: Bleazle on April 25, 2014, 08:46:15 PM
lol - like I said I'm not too worried but if you manage to tweak something to get it working with ww.iheart.com let me know, I'm keen to have a play with it - might not be a good idea for you though because I'll probably just end up coming back with a heap of questions!  ;D
Title: Re: RoboB - Robo Browser
Post by: jitterjames on April 25, 2014, 09:41:26 PM
I don't have any control over it.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on April 25, 2014, 10:08:36 PM
OK OK.

Well there is nothing I can do in code, but I can give you a fix I think.  It seems to work for me.

First of all make sure you have at least version 9 of Internet Explorer installed.  You probably already do.

Then you can apply this registry fix.  You should be able to double-click the attached file.  Or if you prefer you can make the registry entry yourself.  It basically tells Windows to use Internet Explorer in a different compatibility mode in the Webbrowser control for VoxCommando only.  By default any .Net webbrowser control declares itself as IE version 7 for some silly reason, and this can only be changed in your registry as far as I can tell.

For reference I used this page to figure it out: http://www.codeproject.com/Questions/406059/Internet-Explorer-Net-Webbrowser-Control
Title: Re: RoboB - Robo Browser
Post by: Bleazle on April 26, 2014, 01:52:06 AM
Works here too  ::banana  ;D and now you've found a way to "future proof" RoboBrowser - I'm having a beer to celebrate for you  ;D

EDIT: I spoke too soon, I couldn't get the Spotify website to open, same error as before. No problem though, I downloaded the application and am controlling it with VC & Eventghost - I can't get over the "power" that the combination of these 2 apps gives me  ;D
Title: Re: RoboB - OurGroceries
Post by: Stealth on May 13, 2014, 01:12:45 PM
Hi all,  I'm new to VoxCommando and I'm trying to get the OurGroceries plugin to work.

I am running version 1.1.9.1 of VoxCommando.

I have installed the plugin but can't seem to drag the sample xml file to the voicecommands.xml window.  In the YouTube video it shows a split screen which is different to my version.

Have I missed something?

Thanks

Steve
Title: Re: RoboB - Robo Browser
Post by: Kalle on May 13, 2014, 02:00:44 PM
Hi Stealth and welcome to VoxCommando forum.
We have no OurGroceries plugin, but I think you mean the RoboBrowser  ;)

Can you post a link for which video you mean?
So your VC is runing well on your system and you need help to get work OurGroceries with the RoboB plugin?
Title: Re: RoboB - Robo Browser
Post by: Stealth on May 13, 2014, 02:04:26 PM
Hi Stealth and welcome to VoxCommando forum.
We have no OurGroceries plugin, but I think you mean the RoboBrowser  ;)

Can you post a link for which video you mean?
So your VC is runing well on your system and you need help to get work OurGroceries with the RoboB plugin?

Hi Kalle,

Thank you for your reply,  Yes your correct sorry I meant to say the RoboBrowser to work with OurGroceries.  The video I followed is -

&index=9

I have also just upgraded to version 1.9.3.3 with the same issue.
Title: Re: RoboB - OurGroceries
Post by: jitterjames on May 13, 2014, 02:16:10 PM
... but can't seem to drag the sample xml file to the voicecommands.xml window.

Hi Steve,

What exactly do you mean by "can't seem to drag the sample xml file to the voicecommands.xml window"?  This is a fairly straightforward operation, assuming you have performed a drag and drop operation before.  You will need to be more specific in order for us to help.

Also just to be safe, it is usually a good idea to provide a link to the exact forum post containing the file you are referring to, in order to avoid confusion.

There is no longer a split screen.  The tutorial was made in a much older version of the program, but it does not matter.
Title: Re: RoboB - OurGroceries
Post by: Stealth on May 13, 2014, 02:40:31 PM
Hi Steve,

What exactly do you mean by "can't seem to drag the sample xml file to the voicecommands.xml window"?  This is a fairly straightforward operation, assuming you have performed a drag and drop operation before.  You will need to be more specific in order for us to help.

Also just to be safe, it is usually a good idea to provide a link to the exact forum post containing the file you are referring to, in order to avoid confusion.

There is no longer a split screen.  The tutorial was made in a much older version of the program, but it does not matter.

Hi James,

I agree drag and drop is straightforward. I have been around computers and home automation for years.  Having said that I understand why you asked.

When I try to drag the .xml file I get the can't move symbol  a black circle with a line through it). Maybe a permissions error?

The file name I'm trying to copy is 'Vc robob our grocercies sample.xml' posted by yourself in this topic post no 2.

I am running win8.1 on a surface-pro.  I have granted full permissions to the VOX folder were the Voxcommando.exe resides and set the .exe to run as administrator also.

Steve
Title: Re: RoboB - OurGroceries
Post by: jitterjames on May 13, 2014, 03:06:12 PM
When I try to drag the .xml file I get the can't move symbol  a black circle with a line through it). Maybe a permissions error?

I am sorry but this is still not clear to me.  It sounds to me like you are no able to drag the file at all, which would imply that your system is not allowing you to drag an xml file for some reason.  If this is the case it has nothing to do with VoxCommando.  It could have something to do with permissions, the place you downloaded the file to, or the program that you used to download the file with (maybe it did not finish the download or left the file open for some reason etc.) or maybe there is a problem with our forum that is interrupting the download, your anti virus could be getting in the way etc.

But maybe you mean that you see this symbol, not when you first drag the file, but when you drag the file onto your VC command editor tree.  If that is the case, I'm not sure why that would be.

I tested the operation starting with downloading the file from the forum, just to be safe, on two computers running VC 1.9.3.3 without any problems.

If you are not able to do it this way you can try another method.

Method 1:
- Open your command editor, and on the menu at the top click File > Open
- Browse to the file you downloaded, select it and click "open"
(note you will get a warning about a missing xml file, but this is OK, it will be generated later.)
- Now a new window will open next to your original, with the new groups in it.  Drag the groups from the new window into your voicecommands.xml window.

Method 2:
Alternatively, you can:
- open the xml file in notepad, select ALL the text and click Ctrl-C
- open your command editor and click Ctrl-V

Please note that method 2 will only work in VC2 version 1.9.3.1 or higher, I don't think it will work in VC1 at all.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on May 13, 2014, 03:15:29 PM
By the way, in a Simple Machines forum, the title of any post, is a link to that specific post.  So here is the link to the post you were referring to:
http://voxcommando.com/forum/index.php?topic=843.msg6846#msg6846

In general, I think it is easier and safer to do it this way, rather than to explain where the post can be found.
Title: Re: RoboB - Robo Browser
Post by: Kalle on May 13, 2014, 03:17:07 PM
and here a video how you can drag and drop exactly this xml file in VC1.191

www.youtube.com/watch?v=sRLz3_yIIv4 (http://www.youtube.com/watch?v=sRLz3_yIIv4)

I hope this will help too.
Title: Re: RoboB - Robo Browser
Post by: Stealth on May 13, 2014, 03:25:24 PM
and here a video how you can drag and drop exactly this xml file in VC1.191

www.youtube.com/watch?v=sRLz3_yIIv4 (http://www.youtube.com/watch?v=sRLz3_yIIv4)

I hope this will help too.

Yes that's exactly what I tried it doesn't work for me. It must be a win8.1 permissions issue.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on May 13, 2014, 03:25:38 PM
@Kalle: Even if you drag the file onto another group it is not a problem.  In version 1 you just click "No" and it will import it normally.  If you click "Yes" it will import the commands from the file into the group that you dropped it on.

In version 2 it doesn't matter at all.  I got rid of the option to import the xml into an existing group because it was too confusing and I don't think anyone was really using it anyway.  So in VC2 it will import into new groups no matter where you drop it.
Title: Re: RoboB - OurGroceries
Post by: Stealth on May 13, 2014, 03:28:16 PM
If you are not able to do it this way you can try another method.

Method 1:
- Open your command editor, and on the menu at the top click File > Open
- Browse to the file you downloaded, select it and click "open"
(note you will get a warning about a missing xml file, but this is OK, it will be generated later.)

Method 2:
Alternatively, you can:
- open the xml file in notepad, select ALL the text and click Ctrl-C
- open your command editor and click Ctrl-V

Please note that method 2 will only work in VC2 version 1.9.3.1 or higher, I don't think it will work in VC1 at all.


Thanks James method 2 has worked for me.  Much appreciated.

Steve
Title: Re: RoboB - Robo Browser
Post by: jitterjames on May 13, 2014, 03:31:14 PM
Nice.

Oh I forgot to mention something in method 1. I will edit it...

Please let us know if you figure it out.

By the way, recently we have been mostly posting the xml directly into a code box on the forum so this won't always be an issue for you.
Title: Re: RoboB - Robo Browser
Post by: Stealth on May 13, 2014, 04:36:52 PM
Unfortunately I'm still having issues relating to the .xml file.  I can add items to my list i.e remind me to buy milk and that uploads to the website fine.  If asked for milk again it adds another i.e.  milk 2 is shown on the list.

If I run the voice command 'scan new groceries' I get the OSD confirmation -

Creted PayloadXML with 0 Items

(The spelling is as above i.e Creted not Created but I'm sure that's not the issue.)

If I then open the xml file its blank via the payload editor its blank.  Is that correct?

Title: Re: RoboB - Robo Browser
Post by: nime5ter on May 13, 2014, 04:58:31 PM
Below are the commands that I currently use with Our Groceries. Hopefully they will solve your problems. Best to delete the previous, sample Our Groceries commands first, and then copy these in to your tree so there's no confusion.

Obviously, you'll need to re-enter your own login info, URL for your list, etc.

The original command XML was posted 2 years ago, and the OurGroceries website has changed. This is why the grocery list scanning didn't work for you. The same command below has the correct regex for the current site and should work for you. However, it's important to keep in mind that any commands that scrape 3rd party websites may require occasional updates if those sites change.

For that reason, among others, a certain amount of caution (and occasional problem solving) is needed when importing older XML that's shared on the forum. I'll now post an alert at the start of this thread for future users, telling them to instead use the command groups posted here in this message.

In the early editions of these commands, the "add item" command didn't check whether items were already on your list, but my command XML below does, so that problem should be fixed as well for you.

Command Group One:
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 1.9.3.3-->
<commandGroup open="True" name="our groceries high priority" enabled="True" prefix="" priority="5" requiredProcess="" description="">
  <command id="930" name="Add Item" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>OurGroceries</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>listDiv</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.GetHTML</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegExReplace</cmdType>
      <params>
        <param>crossed-off-header.*</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegExReplace</cmdType>
      <params>
        <param>\s\(\d\)</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <if ifBlockDisabled="False" ifNot="False">
      <ifType>(A)Contains(B)</ifType>
      <ifParams>{LastResult}&amp;&amp;&gt;{1}&lt;</ifParams>
      <then>
        <action>
          <cmdType>TTS.Speak</cmdType>
          <params>
            <param>You already have {1} on your list</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>VC.StopMacro</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
      </then>
      <else>
        <action>
          <cmdType>TTS.SpeakSync</cmdType>
          <params>
            <param>Processing</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </else>
    </if>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>importItemsList</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.SetText</cmdType>
      <params>
        <param>{1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementParent</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Submit</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>{1}, was added to your list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>Don't forget, Remember, I need, We need</phrase>
    <phrase>to</phrase>
    <phrase>buy, purchase, get, pick up</phrase>
    <phrase optional="true">some, more, some more</phrase>
    <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">groceries.xml</payloadFromXML>
    <phrase optional="true">please</phrase>
  </command>
</commandGroup>

Command Group Two:
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 1.9.3.3-->
<commandGroup open="True" name="Our Groceries new items" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="951" name="++open list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>OurGroceries</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.SetWinSize</cmdType>
      <params>
        <param>800</param>
        <param>600</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Navigate</cmdType>
      <params>
        <param>http://www.ourgroceries.com/your-lists/list/[YOUR OUR GROCERIES ACCOUNT]</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Show</cmdType>
      <params />
      <cmdRepeat>0</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.Pause</cmdType>
      <params>
        <param>1800</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>emailAddress</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <if ifBlockDisabled="False" ifNot="False">
      <ifType>LastActionSuccess</ifType>
      <ifParams>&amp;&amp;</ifParams>
      <then>
        <action>
          <cmdType>TTS.Speak</cmdType>
          <params>
            <param>Logging into our groceries.</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.SetText</cmdType>
          <params>
            <param>[[your login email address]]</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.ElementByID</cmdType>
          <params>
            <param>password</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.SetText</cmdType>
          <params>
            <param>[[your password]]</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.ElementByID</cmdType>
          <params>
            <param>staySignedIn</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.Click</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.ElementByID</cmdType>
          <params>
            <param>signInButton</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.Click</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>VC.Pause</cmdType>
          <params>
            <param>100</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </then>
      <else />
    </if>
    <phrase>refresh</phrase>
    <phrase>robo browser, our groceries, grocery list</phrase>
    <event>VC.Loaded</event>
  </command>
  <command id="911" name="Show Groceries" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>OurGroceries</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Show</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>Show Groceries</phrase>
  </command>
  <command id="873" name="Add Item dictionary" enabled="true" alwaysOn="False" confirm="True" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>OurGroceries</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>importItemsList</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.SetText</cmdType>
      <params>
        <param>{1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementParent</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Submit</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>{1}, was added to your list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>Don't forget, Remember, I need, We need, We are all out of</phrase>
    <phrase>to</phrase>
    <phrase>buy</phrase>
    <phrase optional="true">some</phrase>
    <payloadDictation>payloadDictation: Regular</payloadDictation>
  </command>
  <command id="938" name="Are you sure?" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>Are you sure you want to add {1} to your grocery list?</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>Confirm.Add Item dictionary</event>
  </command>
  <command id="945" name="update payload XML master list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>Scanning.</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>OurGroceries</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>addItemButton</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Click</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>addItemMasterList</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.GetHTML</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegEx</cmdType>
      <params>
        <param>masterItemLabel\"&gt;(.*?)&lt;</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>Found {#M} items</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.NewFile</cmdType>
      <params>
        <param>groceries</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.Clear</cmdType>
      <params>
        <param>groceries</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.AddPair</cmdType>
      <params>
        <param>groceries</param>
        <param />
        <param>{Match.{i}}</param>
        <param>True</param>
      </params>
      <cmdRepeat>{#M}</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByXY</cmdType>
      <params>
        <param>615</param>
        <param>31</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Click</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>Created PayloadXML with {#M} items.</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>Created Payload XML with {#M} items</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.RestartQuick</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>scan new groceries</phrase>
  </command>
</commandGroup>
Title: Re: RoboB - OurGroceries
Post by: nime5ter on May 13, 2014, 05:18:34 PM
I am running win8.1 on a surface-pro.  I have granted full permissions to the VOX folder were the Voxcommando.exe resides and set the .exe to run as administrator also.

Steve

Hi Steve,

I'm just wondering if what you're encountering with drag and drop is similar to what other W8.1 users have been complaining about online.

If so, this guy may have a solution. See video for details:
Title: Re: RoboB - Robo Browser
Post by: jitterjames on May 13, 2014, 05:57:44 PM
Unfortunately I'm still having issues relating to the .xml file.  I can add items to my list i.e remind me to buy milk and that uploads to the website fine.  If asked for milk again it adds another i.e.  milk 2 is shown on the list.

If I run the voice command 'scan new groceries' I get the OSD confirmation -

Creted PayloadXML with 0 Items

(The spelling is as above i.e Creted not Created but I'm sure that's not the issue.)

If I then open the xml file its blank via the payload editor its blank.  Is that correct?

The main problem here is that you are trying to use xml from the second post on a very long thread.  A lot has changed since the original xml was posted.  Apart from extending the functionality of the command over time, I believe that at one point the design of the website may have changed slightly which required an update to our regular expressions.

Anyway, hopefully the more recent XML that nime5ter posted will work for you.
Title: Re: RoboB - OurGroceries
Post by: Stealth on May 14, 2014, 12:11:42 PM
Hi Steve,

I'm just wondering if what you're encountering with drag and drop is similar to what other W8.1 users have been complaining about online.

If so, this guy may have a solution. See video for details:


Thank you for the link.  This is the first time I have experienced the drag and drop issue with my 8.1 set up. It works OK with the copy and paste workaround so I think its easyier to stick with that.  Thanks for the info though it's nice to know.

Steve
Title: Re: RoboB - Robo Browser
Post by: Stealth on May 14, 2014, 12:16:07 PM
Below are the commands that I currently use with Our Groceries. Hopefully they will solve your problems. Best to delete the previous, sample Our Groceries commands first, and then copy these in to your tree so there's no confusion.

Obviously, you'll need to re-enter your own login info, URL for your list, etc.

The original command XML was posted 2 years ago, and the OurGroceries website has changed. This is why the grocery list scanning didn't work for you. The same command below has the correct regex for the current site and should work for you. However, it's important to keep in mind that any commands that scrape 3rd party websites may require occasional updates if those sites change.

For that reason, among others, a certain amount of caution (and occasional problem solving) is needed when importing older XML that's shared on the forum. I'll now post an alert at the start of this thread for future users, telling them to instead use the command groups posted here in this message.

In the early editions of these commands, the "add item" command didn't check whether items were already on your list, but my command XML below does, so that problem should be fixed as well for you.

(Be careful to select all the text in these code boxes; they're pretty long so copying them might be finicky.)


Thank you for the new code.  It's now working OK.  However it took me several attempts to set it up, as Voxcommando kept crashing.  Its seems to be running stable now though.

Much appreciated.

Steve
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 10:15:09 AM
Just to report..

I get this to work ok on 1.933 and when scan "update payload XML master list" everything went fine. Scaning, added and groceries.xml created.

In 1.954 "update payload XML master list" freezes VC. If need i could post log?

Title: Re: RoboB - Robo Browser
Post by: nime5ter on June 05, 2014, 10:37:10 AM
Yes, please, if you can re-create the problem and post a log that would be helpful.

I've just tested 1.954 with regular VC and the SP version, and for me the command is properly generating over 400 items.

You might also try purging your cache (File > Purge Cache) and restarting the program to see if that helps. If you're switching between versions using the same configuration, maybe that is muddying the waters.
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 10:46:47 AM
Yes, please, if you can re-create the problem and post a log that would be helpful.

I've just tested 1.954 with regular VC and the SP version, and for me the command is properly generating over 400 items.

You might also try purging your cache (File > Purge Cache) and restarting the program to see if that helps. If you're switching between versions using the same configuration, maybe that is muddying the waters.

Wiil post soon as a came home...actually i using only 1.954. This rollback was just for test purpose.

I made a small test at work.. 1.954 and freez to. Here is the log if it help.Not shure if is relative cause dont have everything installated on this system. But in 1.933 work even on this setup.


Title: Re: RoboB - Robo Browser
Post by: nime5ter on June 05, 2014, 11:05:27 AM
Thanks. I can't see anything useful in the log but I am not the expert.

It looks like the command is executing properly, and then the log stops just as the command is starting to generate the payload xml file, so I guess that's when it froze in this particular instance, at least.

Hopefully Master James will have some ideas, when he has time to take a look.
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 11:11:29 AM
You are right, it's start normally, fetch number of items and at the point where need to create xml just stop. Probably is user error in my setup, will use groceries.xml created from older version.
Title: Re: RoboB - Robo Browser
Post by: nime5ter on June 05, 2014, 11:21:39 AM
James is usually good at guessing what might be happening, whether it's user error or something else.

I suppose you could use the following to test whether there's a problem generating payload xml files generally. I can't imagine why there would be, all of a sudden.

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 1.9.5.4-->
<command id="1152" name="payload xml test" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>PayloadXML.NewFile</cmdType>
    <params>
      <param>testfile</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.Clear</cmdType>
    <params>
      <param>testfile</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.AddPair</cmdType>
    <params>
      <param>testfile</param>
      <param>{i}</param>
      <param>phrase {i}</param>
    </params>
    <cmdRepeat>5</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <params>
      <param>Created payload xml file with 5 items.</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>payload xml test</phrase>
</command>
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 11:25:29 AM
nime5ter thank you for your time. I allready try to create random test xml and works ok, same as you posted.
Title: Re: RoboB - Robo Browser
Post by: nime5ter on June 05, 2014, 12:10:12 PM
James suggests that maybe the VC.RestartQuick action at the end of the command is the source of the problem for you.

When you have a chance, maybe you can test that theory by disabling the VC.RestartQuick action in the command.
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 12:22:28 PM
I'm home and testing  :)..unfortunately with no success. Disabled and still freezing.

I have 1.191 tested and work normally. This is really confusing, I'm just afraid that i'm not doing something wrong and waisting your and James time..
Title: Re: RoboB - Robo Browser
Post by: nime5ter on June 05, 2014, 12:31:25 PM
Thanks for your concern, but it's ok in this case.

At the moment, my work requires some very brain-numbing repetitive tasks, so it is nice to have occasional intellectual distractions to break up the monotony. :)

Computers are weird and there are many variables, but obviously if there is some kind of bug with the latest alpha version James will want to identify what it might be.

He is busy right now, but maybe you can backup your current configuration and email it to him. He will take a look when he has the time. Probably not right away.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on June 05, 2014, 12:37:00 PM
I really can't imagine what is causing this.  We have been using the RoboBrowser with OurGroceries on every version of VoxCommando and never had any problems.  I think I will need to see your complete folder.  If possible, please make a zip of the installation of VoxCommando that crashes and send it to me (maybe using DropBox or something).  I might also need to have temporary access to your OurGroceries account (with password) in case the problem is coming from something in your list of items...  It's hard to know.
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 12:43:09 PM
No problem at all..i uploading folder and sending PM with other details..

And please don't be mad when you see that i do something stupid.
Title: Re: RoboB - Robo Browser
Post by: jitterjames on June 05, 2014, 01:10:17 PM
It's OK.  I am mad, but it is because I did something stupid.  This error is caused by some changes I made as an experimental solution for the talking head.

I will try to fix it but for now you can solve this problem by doing only one of the following.  You can choose the easiest option for you:

Option A:  Rename your command so it is called
Code: [Select]
++update payload XML master list
Option B: Remove your TTS actions

Option C: Change your TTS.Speak actions to TTS.SpeakSync

People may have similar problems with other commands that use TTS.Speak so I will release 1.9.5.5 later today to fix this!
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 01:20:20 PM
I use option A and work great.

I'm amazed how fast you find errors..using lot of software and VC definitively have greatest community and support.

TNX
Title: Re: RoboB - Robo Browser
Post by: jitterjames on June 05, 2014, 01:54:19 PM
I have uploaded 1.9.5.5

I think this should fix this problem.  I hope. :D

http://voxcommando.com/forum/index.php?topic=1443.0
Title: Re: RoboB - Robo Browser
Post by: Mirac78 on June 05, 2014, 02:09:24 PM
I have uploaded 1.9.5.5

I think this should fix this problem.  I hope. :D

http://voxcommando.com/forum/index.php?topic=1443.0

Working  :biglaugh
Title: Re: RoboB - Robo Browser
Post by: Tripper on January 31, 2015, 11:05:00 AM
I am trying to set this up on version 2.1.3.3

I'm still having issues relating to the .xml file.  I can add items to my list (remind me to buy milk) and that uploads to the website just fine.
 when I run the voice command 'scan new groceries' I get the OSD confirmation -

Created PayloadXML with 0 Items

If I then open the xml file its blank via the payload editor its blank.
even when I manually add an item already in the list it generates a blank payload list

When setting it up i used the new code posted here by nime5ter and even used the Payload XML test and that executes just fine ... where am i going wrong ?

I have search the Wiki the best i can to find a solution with no luck  :bonk

I am attaching my complete Vox.xml

Title: Re: RoboB - Robo Browser
Post by: nime5ter on January 31, 2015, 12:14:58 PM
Hi Tripper,

Thanks for posting your xml.

I tested your Our Groceries command xml with my own account info and then scanned my grocery list and it worked correctly here, so it's difficult to know what the problem might be.  Here's what I did, if it helps:

1. In the ++open list ("refresh grocery list") command, I entered the proper URL for my grocery list, as well as my username, my password (no square brackets) where indicated.

I ran that command once to ensure that the RoboBrowser was properly logged into my Our Groceries account.

2. I issued the "scan new groceries" (update payload XML master list) command. It found 400+ items as it should have.

---

If the above doesn't provide any useful clues to help you solve the problem, the next step may be for you to PM jitterjames or me your Our Groceries account info, so that we can see if something is different about how the Our Groceries website is working with your account.

One thing that is surprising is that, based on what you've said above, the command to add individual items is properly adding those items to the Our Groceries list online. A head scratcher.

I should clarify that the "remember to buy" command is not being 100% honest: The TTS claims that "item X was added to your list," but it's not in fact verifying this is true before it says so. It's just providing feedback that it heard the item correctly. So, be sure that you're checking the actual Our Groceries website to verify that the item has been added, rather than assuming so based on what the TTS is telling you.

... btw, I'm going to delete your command tree xml from the above post in case it contains data you wish to keep private.
Title: Re: RoboB - Robo Browser
Post by: Tripper on January 31, 2015, 01:33:04 PM
I have tryrdall that you sugested with no different results yet ... :)
Title: Re: RoboB - Robo Browser
Post by: nime5ter on January 31, 2015, 04:47:11 PM
OK. Well, I got your PM and as I wrote to you, your account works for me as it should.

The next steps, apart from signing out of your account and back in again via the RoboBrowser, and then trying again to generate your xml, would be to send us a log so that we can see if it provides any mystery details about what's happening.

As I mentioned in my PM, I am using Internet Explorer 11. I have used the RoboB Our Groceries commands with earlier versions of IE in the past, but still, maybe that's a possible culprit.
Title: Re: RoboB - Robo Browser
Post by: Tripper on January 31, 2015, 06:08:38 PM
OK. Well, I got your PM and as I wrote to you, your account works for me as it should.

The next steps, apart from signing out of your account and back in again via the RoboBrowser, and then trying again to generate your xml, would be to send us a log so that we can see if it provides any mystery details about what's happening.

As I mentioned in my PM, I am using Internet Explorer 11. I have used the RoboB Our Groceries commands with earlier versions of IE in the past, but still, maybe that's a possible culprit.


I am using Google Chrome version 40.02214.93 m
I tried moving my default browser to Internet explorer 8 64bit thinking that might be the issue but no changes . this is becoming frustrating ... lol

I did a full restart on Vox and i am attaching the logs ...
I must say Tech support for vox commando is so much better than any other paid support i have ever encountered!!
You guys ROCK !!!

Update:
Here is the new log no luck on the other options ... but i think i saw a pattern.
I am no expert but it seems the commands in "come home offer music" are showing up in between the my groceries commands when i am not executing those commands at all nor are they activating.

i really am not sure and i hope i am not wasting your time... :(
Title: Re: RoboB - Robo Browser
Post by: nime5ter on January 31, 2015, 06:47:15 PM
Yup, we're definitely suckers. :) Thanks for your appreciation, by the way. That does mean something to us.

RoboBrowser always uses Internet Explorer, regardless of what you're using as your default browser.

I think I'm seeing the culprit. Not sure why it's different on your machine than ours. The regular expression pattern isn't matching the text that's being returned. I'll look into that again more closely now that can see the problem (though not now, 'cuz I should be cooking for our guests). But in the meantime, try replacing your genxml command with this version. I've changed the regex pattern.:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.3.6-->
<command id="945" name="update payload XML master list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>Scanning.</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Select</cmdType>
    <params>
      <param>OurGroceries</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <params>
      <param>addItemButton</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Click</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Wait</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <params>
      <param>addItemMasterList</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.GetHTML</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegEx</cmdType>
    <params>
      <param>masterItemLabel&gt;(.*?)&lt;</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>Found {#M} items</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.NewFile</cmdType>
    <params>
      <param>groceries</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.Clear</cmdType>
    <params>
      <param>groceries</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.AddPair</cmdType>
    <params>
      <param>groceries</param>
      <param />
      <param>{Match.{i}}</param>
      <param>True</param>
    </params>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByXY</cmdType>
    <params>
      <param>613</param>
      <param>46</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Click</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <params>
      <param>Created PayloadXML with {#M} items.</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>Created Payload XML with {#M} items</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>VC.RestartQuick</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>scan new groceries, update groceries</phrase>
</command>
Title: Re: RoboB - Robo Browser
Post by: Tripper on January 31, 2015, 08:31:11 PM
Yup, we're definitely suckers. :) Thanks for your appreciation, by the way. That does mean something to us.

RoboBrowser always uses Internet Explorer, regardless of what you're using as your default browser.

I think I'm seeing the culprit. Not sure why it's different on your machine than ours. The regular expression pattern isn't matching the text that's being returned. I'll look into that again more closely now that can see the problem (though not now, 'cuz I should be cooking for our guests). But in the meantime, try replacing your genxml command with this version. I've changed the regex pattern.

Yes i noticed that before [ masterItemLabel\>(.*?)< ] and i changed it also ... but still no results .. :(
Title: Re: RoboB - Robo Browser
Post by: nime5ter on January 31, 2015, 08:42:24 PM
OK, but have you tried the command xml I posted above?

The pattern you're showing above

Code: [Select]
[ masterItemLabel\>(.*?)< ]
isn't quite correct, based on what I'm seeing in your log. The one in the command I posted should be.
Title: Re: RoboB - Robo Browser
Post by: Tripper on January 31, 2015, 10:56:20 PM
yes I loaded the xml you posted ... same result ... im sorry if i wasn't clear ... :(
Title: Re: RoboB - Robo Browser
Post by: nime5ter on February 01, 2015, 08:45:13 AM
OK. I'm afraid you'll have to run the new version of the command again and send us another log so that we can try to understand why the new regex hasn't solved the problem for you.
Title: Re: RoboB - Robo Browser
Post by: Tripper on February 01, 2015, 09:48:56 AM
This morning I installed a clean version of vox and ran all the suggestions that were previously made unfortunately the results on my pc are the same. I am attaching my complete vox and a log i hope this will help
Is it possible that i have a permissions issue with my vox folder?
I have it running in the Documents folder on my pc and i have allowed it access to the network
Also the user and pass have not changed on the Our Groceries website
*I want this to work but im starting to believe my system is set up in a way that it wont ... :\

[attachments deleted to protect user info --nime5ter]
Title: Re: RoboB - Robo Browser
Post by: nime5ter on February 01, 2015, 10:38:06 AM
The log shows that the old command was used, rather than the one I posted here: http://voxcommando.com/forum/index.php?topic=843.msg17250#msg17250

I recommend you delete the old "update payload XML master list" command first. Just that one command. You can leave the other Our Groceries commands.

Then copy and paste the version that I posted earlier in this thread into your tree instead. Save the tree. Close it. And try again.

Edit: I have taken a look also at the command tree you posted. It shows the old command, not the revised command that I posted.
Title: Re: RoboB - Robo Browser
Post by: nime5ter on February 01, 2015, 12:49:59 PM
The problem that you're having with the one Our Groceries command is because your computer has IE 8 installed, and older versions of Internet Explorer handle html tag attributes differently. http://stackoverflow.com/questions/7927905/internet-explorer-innerhtml-outputs-attributes-without-quotes

There are two possible fixes:

1. The command that I posted should work correctly with the IE 8 that you have installed. I'm not sure why it's not showing up in the tree if you pasted it in and saved etc.

2. The other option is to update the version of Internet Explorer installed on your machine.

Do one, or the other, but not both. The command xml I posted earlier is correct for IE8 or earlier. If you choose to update to IE 11, then stick with using the original command xml.
Title: Re: RoboB - Robo Browser
Post by: Tripper on February 01, 2015, 01:32:46 PM
We have success .... I upgraded to IE 11 after having to upgrade windows7 to SP1
I ran the Update payload XML  and it scanned and retuned
OSD.ShowText:Created PayloadXML with 50 items.
info: OK
so as of this point im realy excited ... lol

Thank you for your patience and Excelent tech support ... :)
Title: Re: RoboB - Robo Browser
Post by: nime5ter on February 01, 2015, 06:31:35 PM
Thanks for the update. Glad the problem is resolved for you.
Title: Re: RoboB - Robo Browser
Post by: tyebeach on April 14, 2015, 02:24:40 PM
Whenever I try to add an item to my list I receive these 4 errors. I have attached a screen shot.

Has anyone seen this before?
Title: Re: RoboB - Robo Browser
Post by: tyebeach on April 14, 2015, 03:53:53 PM
OK I see now. I thought I had clicked to save my password, but apparently not.
Title: Re: RoboB - Robo Browser
Post by: sweefer on June 05, 2015, 12:59:12 PM
While there is a XML code for the shopping list to add but not to read the list before or delete individual elements . or I'm blind


But really great thing, great praise

 :P ::confused
Title: Re: RoboB - Robo Browser
Post by: jitterjames on June 05, 2015, 01:35:56 PM
but not to read the list before or delete individual elements .

To read the list before what?

The idea behind this is to add items throughout your day if you think of them, and then to remove the items from the list using your phone, while you are shopping.  At least, that is how I use it.

I believe Kalle came up with a way to delete items but I'm not sure if it is posted on the forum or not.
Title: Re: RoboB - Robo Browser
Post by: PegLegTV on June 05, 2015, 04:02:58 PM
I made group of commands that will read an Ourgroceries list we use it to add all of our meal options for the next two weeks and then we can just ask "what meals do we have" and it will read the list and show an OSD of the list, then do a little math to line the meal item up with the right Tag "Span | #" then it will create OurgroceriesMEALS.xml

OurgroceriesMEALS.xml is used for the "Remove {1} from the list" command  so you say "Remove Cheese Burgers and French Fries from the meals list" and it will click that item on the list so it becomes crossed out, (you could probably have it click "Delete all crossed-off items.." if you wanted to delete them but its nice to just look through the list and see what meals sounds good when making the next groceries list ;))

OurgroceriesMEALS.xml is also used for a fun command "What should I make for supper", this command will randomly select an item from the OurgroceriesMEALS.xml, used for those nights when asked what do you want for supper and everyone says "I don't know"


With the "Meals for the week", "Remove {1} from the list", "Login to meals list" you will need to replace "URL for OURGROCERIES.COM Meals list" with the url of your "Meals list"

MEALS
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.0.1-->
<commandGroup open="True" name="Meals" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1051" name="Meals for the week" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>PayloadXML.Clear</cmdType>
      <params>
        <param>payloads\OurgroceriesMEALS.xml</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>Meals</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Navigate</cmdType>
      <params>
        <param>URL for OURGROCERIES.COM Meals list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>listDiv</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Show</cmdType>
      <params />
      <cmdRepeat>0</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.GetHTML</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegEx</cmdType>
      <params>
        <param>&lt;div\sclass="item\sdraggable.*?"&gt;.*?&lt;span\sclass="value"&gt;(.*?)&lt;/span</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.SetFontSize</cmdType>
      <params>
        <param>30</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>Meals for the week:</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.AddText</cmdType>
      <params>
        <param>{Match.{i}}</param>
      </params>
      <cmdRepeat>{#M}</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.SpeakSync</cmdType>
      <params>
        <param>lets see, you have </param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.SpeakSync</cmdType>
      <params>
        <param>{Match.{i}}</param>
      </params>
      <cmdRepeat>{#M}</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>those all sound so good | I'm so glad I don't have to choose</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <loop>
      <loopParams>
        <from>1</from>
        <to>{#M}</to>
      </loopParams>
      <loopActions>
        <action>
          <cmdType>PY.ExecString</cmdType>
          <params>
            <param>result={j}*3+7</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>PayloadXML.AddPair</cmdType>
          <params>
            <param>payloads\OurgroceriesMEALS.xml</param>
            <param>{LastResult}</param>
            <param>{Match.{j}}</param>
            <param>True</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </loopActions>
    </loop>
    <action>
      <cmdType>Group.Rebuild</cmdType>
      <params>
        <param>Meals</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>What meals do we have, whats for supper, whats for diner</phrase>
  </command>
  <command id="1035" name="Remove {1} from the list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Results.SetVar</cmdType>
      <params>
        <param>1</param>
        <param>{PF.1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>one moment Please, While I Remove {Var.1} from your list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>OurGroceries Meals</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Show</cmdType>
      <params />
      <cmdRepeat>0</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.Pause</cmdType>
      <params>
        <param>1800</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByTag</cmdType>
      <params>
        <param>SPAN</param>
        <param>{1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Click</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.Pause</cmdType>
      <params>
        <param>1000</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.Clear</cmdType>
      <params>
        <param>payloads\OurgroceriesMEALS.xml</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>Meals</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Navigate</cmdType>
      <params>
        <param>URL for OURGROCERIES.COM Meals list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Wait</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>listDiv</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.GetHTML</cmdType>
      <params />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegEx</cmdType>
      <params>
        <param>&lt;div\sclass="item\sdraggable"&gt;.*?&lt;span\sclass="value"&gt;(.*?)&lt;/span</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <loop>
      <loopParams>
        <from>1</from>
        <to>{#M}</to>
      </loopParams>
      <loopActions>
        <action>
          <cmdType>PY.ExecString</cmdType>
          <params>
            <param>result={j}*3+7</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>PayloadXML.AddPair</cmdType>
          <params>
            <param>payloads\OurgroceriesMEALS.xml</param>
            <param>{LastResult}</param>
            <param>{Match.{j}}</param>
            <param>True</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </loopActions>
    </loop>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>{Var.1} was removed from your list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.SpeakSync</cmdType>
      <params>
        <param>I Removed {Var.1} from your list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Group.Rebuild</cmdType>
      <params>
        <param>Meals</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>Remove</phrase>
    <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\OurgroceriesMEALS.xml</payloadFromXML>
    <phrase>from the list</phrase>
  </command>
  <command id="1062" name="Login to meals list" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>Meals</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.SetWinSize</cmdType>
      <params>
        <param>800</param>
        <param>600</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Navigate</cmdType>
      <params>
        <param>URL for OURGROCERIES.COM Meals list</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Show</cmdType>
      <params />
      <cmdRepeat>0</cmdRepeat>
    </action>
    <phrase>refresh Our Meals list</phrase>
  </command>
  <command id="1052" name="What should I make for supper" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>PayloadXML.GetRandomP</cmdType>
      <params>
        <param>payloads\OurgroceriesMEALS.xml</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>{Match.1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <params>
        <param>maybe, {Match.1} | oh Yummy, I would say {Match.1} | How About {Match.1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>What should I make for supper</phrase>
  </command>
</commandGroup>


I didn't make a voice command for adding meals because Regular diction wouldn't work well with this and, It would probably be best if you used two payloads or more so you would probably need a payload for the main course of the meal and a payload for the sides and maybe deserts or appitizers, depending on how you would want to add the items, other wise you could end up with a payload that never seems to end because there are so many different combinations of meals and sides alone

after adding new items to your list you need to ask "what meals do we have" before using "Remove {1} from the list" and "What should I make for supper",
Title: Re: RoboB - Robo Browser
Post by: Kalle on June 06, 2015, 06:21:08 AM
While there is a XML code for the shopping list to add but not to read the list before or delete individual elements . or I'm blind


But really great thing, great praise

 :P ::confused


Hi Marco,


hier ist meine "our groceries" in deutsch.
Kopiere die "VcCollection_RoboB Our Groceries.xml" in deinen VC command tree und die "groceries.xml" in den payload Ordner von VC.
In dem command "open list" musst Du noch dein API-Schlüssel für OurGroceries eintragen.
Die "groceries.xml" enthält nur einige Waren - hier kannst Du weiter Waren eintragen, aber der Eintrag "zznichtentfernen" darf nicht geändert oder entfernt werden!


Demovideo: www.youtube.com/watch?v=Tpqj0cUtQBw (http://www.youtube.com/watch?v=Tpqj0cUtQBw)

Viel Spaß beim testen,
Kalle
Title: Re: RoboB - Robo Browser
Post by: sweefer on June 07, 2015, 09:44:30 AM
Super Tutorial, vielen dank es klappt alles  :)
Title: Re: RoboB - Robo Browser
Post by: nime5ter on June 07, 2015, 09:54:30 AM
Jawohl, Kalle. Ganz toll, danke!

Totally awesome to have a proper German tutorial for the Our Groceries commands. You're the best.  :clap