{"action":"created","issue":{"url":"https://api.github.com/repos/GriffinSauce/gigBot/issues/8","repository_url":"https://api.github.com/repos/GriffinSauce/gigBot","labels_url":"https://api.github.com/repos/GriffinSauce/gigBot/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/GriffinSauce/gigBot/issues/8/comments","events_url":"https://api.github.com/repos/GriffinSauce/gigBot/issues/8/events","html_url":"https://github.com/GriffinSauce/gigBot/issues/8","id":155607646,"number":8,"title":"Seperate conversational logic from functionality","user":{"login":"GriffinSauce","id":5630996,"avatar_url":"https://avatars.githubusercontent.com/u/5630996?v=3","gravatar_id":"","url":"https://api.github.com/users/GriffinSauce","html_url":"https://github.com/GriffinSauce","followers_url":"https://api.github.com/users/GriffinSauce/followers","following_url":"https://api.github.com/users/GriffinSauce/following{/other_user}","gists_url":"https://api.github.com/users/GriffinSauce/gists{/gist_id}","starred_url":"https://api.github.com/users/GriffinSauce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GriffinSauce/subscriptions","organizations_url":"https://api.github.com/users/GriffinSauce/orgs","repos_url":"https://api.github.com/users/GriffinSauce/repos","events_url":"https://api.github.com/users/GriffinSauce/events{/privacy}","received_events_url":"https://api.github.com/users/GriffinSauce/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GriffinSauce/gigBot/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-05-18T21:38:16Z","updated_at":"2016-05-18T21:41:47Z","closed_at":null,"body":"Gigbot should identify and separate multiple concurrent conversations\r\n\r\nConversational logic needs to:\r\nA. work seperately from Slack / any messaging service\r\nB. work seperately from gigbot functions\r\n\r\nIdeas:\r\n- **Conversations** are comprised of scripts\r\n- **Keywords** trigger scripts\r\n- **Scripts** are a small chunk of conversation *keyword -> (function) -> response*\r\n- **Functions** are executed and should return a response and optional keywords to continue the flow\r\n- **Context** holds any information relevant to the ongoing conversation\r\n\r\nIssues:\r\n- What happens when key parts of context are missing?\r\n    - Trigger small scripts that allow user to fill in the blanks\r\n- How to deal with branching / moving contexts?\r\n    - Each script can be a standalone *keyword + previous context -> function -> response (+ updated context)* flow\r\n- How to link standalone scripts?\r\n    - When a new keyword is triggered, the history is searched for a keyword that should provide context. If no context is found, a new conversation is assumed.\r\n\r\nWhen this is fleshed out it could be moved to a seperate module."},"comment":{"url":"https://api.github.com/repos/GriffinSauce/gigBot/issues/comments/220166880","html_url":"https://github.com/GriffinSauce/gigBot/issues/8#issuecomment-220166880","issue_url":"https://api.github.com/repos/GriffinSauce/gigBot/issues/8","id":220166880,"user":{"login":"GriffinSauce","id":5630996,"avatar_url":"https://avatars.githubusercontent.com/u/5630996?v=3","gravatar_id":"","url":"https://api.github.com/users/GriffinSauce","html_url":"https://github.com/GriffinSauce","followers_url":"https://api.github.com/users/GriffinSauce/followers","following_url":"https://api.github.com/users/GriffinSauce/following{/other_user}","gists_url":"https://api.github.com/users/GriffinSauce/gists{/gist_id}","starred_url":"https://api.github.com/users/GriffinSauce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GriffinSauce/subscriptions","organizations_url":"https://api.github.com/users/GriffinSauce/orgs","repos_url":"https://api.github.com/users/GriffinSauce/repos","events_url":"https://api.github.com/users/GriffinSauce/events{/privacy}","received_events_url":"https://api.github.com/users/GriffinSauce/received_events","type":"User","site_admin":false},"created_at":"2016-05-18T21:41:47Z","updated_at":"2016-05-18T21:41:47Z","body":"Some ideas regarding semantics\r\nhttps://hubot.github.com/docs/scripting/#capturing-data"}}