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
<?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><div\sclass="item\sdraggable.*?">.*?<span\sclass="value">(.*?)</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><div\sclass="item\sdraggable">.*?<span\sclass="value">(.*?)</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",