So, I've got a rather daunting task, and was just wondering if anyone had advice they could lend as far as where to start or a way to figure out how to structure everything. As I've stated before, I'm not that great of a programmer, but am more than open to learning if someone can point me in the right direction. Basically, I'm trying to create a _bored rule that executes code in a vcm to do some complex stuff, and am not sure if there's a way to sit down and organize everything I want it to do as far as all the conditionals that are involved and everything. I'm sure I can figure out how to do everything below, but I'm not sure how to do it neatly.
(Or put a little differently, I'm not looking for help structuring it, just looking for help organizing everything so that I can work out how to structure it myself.)
When the _bored input is received, it will:
- 1) Increment a "bored" variable and check to see if the user is there.
- a) If "bored" is under a given value (i.e it hasn't been that long since we last heard from the user), and ask if the user is there.
- -Any response will decrement the "bored" value, then <send> the input so the bot will respond normally.
- b) If "bored" is over a given value (i.e it has been a long time, several _bored rules have fired), switch to "away mode" (which I guess will just be a bool value) send an email or text asking "where are you?"
- 2) If the user is at the computer, do the following:
- a) Bot checks to see if it needs any info from the user, and asks for it... i.e, "Tomorrow's a weekday and you haven't scheduled me to wake you up. Shall I wake you up at the same time that I did today?"
- b) If the bot doesn't need any info like that, the bot checks the user's "to do" list (just a text file) and sends a reminder... "Hey, don't forget that you need to finish writing that thing."
- c) If the "to do" list is empty, bot checks the time and gives a reminder to go to bed if it's late on a weeknight.
- d) If none of the above fire, just make pointless conversation. (This can be handled through other rules via the <send> command, so I'm not worried about including any of the pointless conversation in the _bored rule or the vcm)
- 3) If the user is NOT at the computer, do the following:
- a) Check to see if it's in "away mode" or not, and check to make sure that the appropriate channels of communication (i.e, skype, outlook, etc) are open.
- b) Check if there's anything to be done based on the user's location. I.e, the bot knows the user is at work, and texts or emails "Want me to schedule all the usual stuff for when you get home?"
- c) If the bot doesn't need any info, it just makes pointless conversation (again... this can be handled through other rules, so I'm not worried about the pointless conversation.)
I think I should state that "away mode" will basically just a bool variable that, if true, causes "bored" to increment slower and opens outlook with a different profile that has less accounts set up a more frequent send/receive schedule.
Seems pretty complicated, right? Once again, I'm sure I can figure it out and put some code together that can do all of that, but just figured that, before starting, I'd reach out to the forums to see if any of you more seasoned programmers could give some advice on how to lay out how all the conditionals will work and everything.