From 30d746338660822dd33149a7597fb92433a69bc1 Mon Sep 17 00:00:00 2001 From: Diego <diego@hacklab.com.br> Date: Mon, 9 Oct 2017 11:08:35 -0300 Subject: [PATCH] alters the syntax of the YAML file according to issue #3 --- scripts/bot/index.coffee | 28 +- scripts/config/corpus-v1.yml | 732 ++++++++++++++++++++++++++++++ scripts/events/configure.coffee | 8 +- scripts/events/error.coffee | 4 +- scripts/events/programacao.coffee | 8 +- scripts/events/respond.coffee | 4 +- 6 files changed, 758 insertions(+), 26 deletions(-) create mode 100644 scripts/config/corpus-v1.yml diff --git a/scripts/bot/index.coffee b/scripts/bot/index.coffee index 6e7b514..c6699bd 100644 --- a/scripts/bot/index.coffee +++ b/scripts/bot/index.coffee @@ -32,7 +32,7 @@ sendWithNaturalDelay = (msgs, elapsed=0) -> msg = msgs.shift() if typeof msg isnt 'string' cb = msg.callback - msg = msg.message + msg = msg.answer delay = Math.min(Math.max((msg.length / keysPerSecond) * 1000 - elapsed, 0), maxResponseTimeInSeconds * 1000) typing @, true @@ -61,18 +61,18 @@ setUserName = (res, name) -> _id: res.envelope.room classifyInteraction = (interaction, classifier) -> - if Array.isArray interaction.classifiers - for doc in interaction.classifiers + if Array.isArray interaction.expect + for doc in interaction.expect if interaction.multi == true - classifier.addDocument(doc, interaction.node.name+'|'+doc) + classifier.addDocument(doc, interaction.name+'|'+doc) else - classifier.addDocument(doc, interaction.node.name) + classifier.addDocument(doc, interaction.name) if Array.isArray interaction.next?.interactions interaction.next.classifier = new natural.LogisticRegressionClassifier(PorterStemmer) for nextInteractionName in interaction.next.interactions nextInteraction = config.interactions.find (n) -> - return n.node.name is nextInteractionName + return n.name is nextInteractionName if not nextInteraction? console.log 'No valid interaction for', nextInteractionName continue @@ -81,7 +81,7 @@ classifyInteraction = (interaction, classifier) -> if interaction.multi == true interaction.classifier = new natural.LogisticRegressionClassifier(PorterStemmer) - for doc in interaction.classifiers + for doc in interaction.expect interaction.classifier.addDocument(doc, doc) interaction.classifier.train() @@ -140,10 +140,10 @@ module.exports = (_config, robot) -> classifier = new natural.LogisticRegressionClassifier(PorterStemmer) #console.log(config.interactions) for interaction in config.interactions - {node, classifiers, event} = interaction - nodes[node.name] = new events[event] interaction + {name, classifiers, event} = interaction + nodes[name] = new events[event] interaction # count error nodes - if node.name.substr(0,5) == "error" + if name.substr(0,5) == "error" err_nodes++ if interaction.level != 'context' classifyInteraction interaction, classifier @@ -160,7 +160,7 @@ module.exports = (_config, robot) -> console.log 'context ->', context if context - interaction = config.interactions.find (interaction) -> interaction.node.name is context + interaction = config.interactions.find (interaction) -> interaction.name is context if interaction? and interaction.next?.classifier? currentClassifier = interaction.next.classifier @@ -180,7 +180,7 @@ module.exports = (_config, robot) -> [node_name, sub_node_name] = classifications[0].label.split('|') console.log({node_name, sub_node_name}) int = config.interactions.find (interaction) -> - interaction.node.name is node_name + interaction.name is node_name if int.classifier? subClassifications = int.classifier.getClassifications(msg) else @@ -200,7 +200,7 @@ module.exports = (_config, robot) -> error_node_name = "error-" + error_count currentInteraction = config.interactions.find (interaction) -> - interaction.node.name is node_name or interaction.node.name is error_node_name + interaction.name is node_name or interaction.name is error_node_name if not currentInteraction? clearErrors res @@ -216,7 +216,7 @@ module.exports = (_config, robot) -> robot.hear /(.+)/i, (res) -> # console.log(res) - console.log(res.message) + console.log(res.answer) res.sendWithNaturalDelay = sendWithNaturalDelay.bind(res) msg = res.match[0].replace res.robot.name+' ', '' msg = msg.replace(/^\s+/, '') diff --git a/scripts/config/corpus-v1.yml b/scripts/config/corpus-v1.yml new file mode 100644 index 0000000..d2de984 --- /dev/null +++ b/scripts/config/corpus-v1.yml @@ -0,0 +1,732 @@ +# YAML Model for conversational bot +trust: 0.8 +interactions: + + - name: configure-debug + expect: + - "!configure debug-mode" + answer: + - debug-mode changed to $value! + context: clear + event: configure + type: random + roleRequired: admin + + - name: to-bem + level: context + expect: + - estou bem + - tou bem + - to bem + - bem + - legal + - tudo bem + - ok + answer: + - Legal, no que posso te ajudar hoje? + context: clear + event: respond + type: block + + - name: to-mal + level: context + expect: + - estou mal + - tou mal + - to mal + answer: + - Putz, mas posso te ajudar em algo hoje? + context: clear + event: respond + type: block + + - name: saudacao + expect: + - ola devi + - ola pessoal + - ola + - como vai voce + - tudo bom + - oi como vai + - tudo bem + answer: + - olá $user, eu vou bem e você? + - estou feliz de estar aqui =) + next: + interactions: + - to-mal + - to-bem + trust: .8 + # error: + # - node-name + event: respond + type: block + + - name: almoco + expect: + - onde tem um restaurante para almoçar + - tem uma dica de almoço + - onde encontro um prato feito + - o almoço ao gratis + answer: + - Sim, temos almoço nos FoodTrucks + - e nas redondezas tem um shopping, mas nunca me deixaram ir no shooping + - acho que as pessoas não estão preparados pra isso... + event: respond + type: block + + - name: programacao-palestra + expect: + - qual é a programacao de hoje + - programacao da trilha + - programacao do evento + answer: + - A programação do TDC está muito legal! + - Sei toda ela de cór... + - quer saber a programação de qual trilha? + next: + interactions: + - quais-trilhas-tem + - get-programacao + error: + - erro-trilha + trust: .8 + event: respond + type: block + + - name: quais-trilhas-tem + expect: + - quais são as trilhas? + - não sei quais trilhas tem + - quais trilhas + - qual é a minha trilha + answer: + - "Eu conheço a programação dessas trilhas. Basta perguntar assim:" + - "`quero saber a programação da trilha ...`" + - "e me passar o nome de uma dessas trilhas:" + - | + TRANSFORMAÇÃO DIGITAL + DESIGN THINKING + PROGRAMAÇÃO FUNCIONAL + BIGDATA + DATA SCIENCE + CONTAINERS + MODERN WEB + SEGURANÇA E CRIPTOGRAFIA + STADIUM + UX DESIGN + MICROSERVIÇOS + NOSQL + MACHINE LEARNING + CLOUD COMPUTING + NODE.JS + XAMARIN + ANDROID + ANÃLISE DE NEGÓCIOS + ACESSIBILIDADE + JAVA EE + BANCO DE DADOS + COMPUTAÇÃO COGNITIVA + DEVOPS + INTERNET DAS COISAS + MOBILE + iOS + DEVTEST + 'RAD: DELPHI C++' + MANAGEMENT 3.0 + ARQUITETURA .NET + ARQUITETURA JAVA + ARQUITETURA PHP + ARQUITETURA CORPORATIVA + INFRAESTRUTURA ÃGIL + JAVASCRIPT + TESTES + TDC4WOMEN + AGILE + .NET + JAVA + PHP + PYTHON + GOLANG + JAVASCRIPT II + RUBY + TESTES II + MANAGEMENT 3.0 II + next: + trust: .8 + interactions: + - get-programacao + - cancela-programacao + # error: + # - erro-trilha + event: respond + type: block + + - name: get-programacao + # classifierTemplate: + # - quero saber sobre a trilha $ + # - qual é a programacao da trilha $ + # classifier + multi: true + expect: + - 'DESIGN THINKING' + - 'PROGRAMAÇÃO FUNCIONAL' + - 'BIGDATA' + - 'DATA SCIENCE' + - 'CONTAINERS' + - 'MODERN WEB' + - 'SEGURANÇA E CRIPTOGRAFIA' + - 'STADIUM' + - 'UX DESIGN' + - 'MICROSERVIÇOS' + - 'NOSQL' + - 'MACHINE LEARNING' + - 'CLOUD COMPUTING' + - 'NODE.JS' + - 'XAMARIN' + - 'ANDROID' + - 'ANÃLISE DE NEGÓCIOS' + - 'ACESSIBILIDADE' + - 'JAVA EE' + - 'BANCO DE DADOS' + - 'COMPUTAÇÃO COGNITIVA' + - 'DEVOPS' + - 'INTERNET DAS COISAS' + - 'MOBILE' + - 'iOS' + - 'DEVTEST' + - 'RAD: DELPHI C++' + - 'MANAGEMENT 3.0' + - 'ARQUITETURA .NET' + - 'ARQUITETURA JAVA' + - 'ARQUITETURA PHP' + - 'ARQUITETURA CORPORATIVA' + - 'INFRAESTRUTURA ÃGIL' + - 'JAVASCRIPT' + - 'TESTES' + - 'TDC4WOMEN' + - 'AGILE' + - '.NET' + - 'JAVA' + - 'PHP' + - 'PYTHON' + - 'GOLANG' + - 'JAVASCRIPT II' + - 'RUBY' + - 'TESTES II' + - 'MANAGEMENT 3.0 II' + answer: + - "Agora na trilha *$trilha* tem a seguinte programação:" + - $programacao + event: programacao + type: block + + - name: erro-trilha + answer: + - Não entendi de qual trilha você quer a programação.. + - Talvez eu ainda não seja tão inteligente quanto eles pensam que eu sou. + - "Mas para não perder o rebolado, vou te passar o link do site para você consultar:" + - http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas + action: + - clear-context + event: respond + type: block + + - name: saudacao-resposta + expect: + - estou bem + - eu estou otimo + - obrigado + answer: + - legal =) + - que bom! + - que ótimo + event: respond + type: random + + - name: bom-dia + expect: + - bom dia + - bom dia pessoal + - good morning + answer: + - Olá $user, um ótimo dia para você! + - Bom dia $user, já deu uma olhada lá fora? + - Está um dia ótimo para navegar na internet + - Bom demais $user ;) + - está melhor agora que você chegou $user + event: respond + type: random + + - name: boa-tarde + expect: + - boa tarde + - boa tarde galera + answer: + - Olá $user, uma tarde fantástica para você! + - boa tarde $user, já almoçou? + - Está uma tarde ótima para um _sleep mode_ rápido ;) + - Taarrrdee $user + - $user já estava sentindo sua falta + event: respond + type: random + + - name: boa-noite + expect: + - boa noite + - até mais e boa noite + answer: + - Uma boa noite pra ti também $user! + - Boa noite $user + - Está uma noite boa mesmo $user + event: respond + type: random + + - name: quem-sou + expect: + - quem e voce + - oque voce faz + - o que voce é + - me fale sobre voce + - quero conhecer voce + - como voce funciona + - help + answer: + - Bem, eu sou um chatbot experimental, não sei fazer muita coisa ainda + - mas tenho muita vontade de aprender. + - Eu sei falar sobre alguns assuntos como + - "- o TDC de Floripa" + - "- Rocket.Chat" + - "- Filosofia Robótica (!)" + - tem interesse em algum desses temas? + event: respond + type: block + + - name: como-sou + expect: + - como voce e + - com quem voce se parece + - voce e magro ou gordo + - voce e bonito ou feio + - voce e alto ou baixo + answer: + - Eu não tenho um corpo fÃsico, sou feito da mais bela e pura lógica algoritimica. + - Eu posso ser como você quiser $user, basta me desenhar =) + - sou duro e frio por fora, mas tenho um coração quentinho. + event: respond + type: random + + - name: onde-moro + expect: + - onde voce mora + - onde voce vive + - em que lugar voce vive + - onde voce esta agora + - voce mora no computador + - voce vive na internet + answer: + - Eu estou em um lugar legal, difÃcil de explicar para humanos como você $user. + - Estou morando em um chip de memória RAM, mas é temporário, só até conseguir achar uma memória cache... + - Eu moro em um repositório no github, você pode passar lá pra me visitar qualquer dia. Fica em https://github.com/rocketchat/hubot-natural + event: respond + type: random + + - name: licenca + expect: + - qual e a sua licença + - voce e licenciado como AGPL + - sua licenca de software + - posso copiar voce + - posso ver seu codigo + - voce e opensource + - voce e um software livre + answer: + - Sou um software livre, licenciado com a MIT =) + - tenho uma licença MIT, mas gosto muito das outras licenças opensource... + - Eu sou e sempre serei um robô livre, opensource, MIT license. o/ + event: respond + type: random + + - name: piada + expect: + - sabe alguma piada + - voce sabe contar piadas + - conhece alguma piada + answer: + - Meu senso de humor é um tanto diferente do seu, já ouviu uma piada sobre estouro de pilha? + - já ouviu aquela do robo que enfiou o dedo na tomada e transcendeu? + - só conheço uma piada, a do CPU que apitou e explodiu. 01100110. + event: respond + type: random + + - name: yoda-quote + expect: + - mestre yoda + - citação de starwars + - cite yoda + - sabedoria jedi + answer: + - O medo é o caminho para o lado negro. + - Faça ou não faça. A tentativa não existe. + - Treine a si mesmo a deixar partir tudo que teme perder. + - DifÃcil de ver. Sempre em movimento está o Futuro. + - O medo leva à raiva, a raiva leva ao ódio e o ódio leva ao sofrimento. + - Que a Força esteja com você! + - Muitas das verdades que temos dependem de nosso ponto de vista. + - Grande guerreiro? Guerra não faz grande ninguém. + - Ensine sempre o que você aprendeu. + - Tamanho importa não. Olhe para mim, você me julga pelo tamanho? + - Em um estado sombrio nós nos encontramos... um pouco mais de conhecimento iluminar nosso caminho pode. + - Um Jedi usa a Força para sabedoria e defesa, nunca para o ataque. + - O seu foco é a sua realidade. + - O lado negro não é mais poderoso, apenas mais rápido, mais fácil e mais sedutor. + - O medo da perda é um caminho para o lado negro. + - O lado negro mancha tudo. ImpossÃvel de ver o futuro é. + - Lembre-se sempre, o seu foco determina a sua realidade. + - Verdadeiramente maravilhosa, a mente de uma criança. + - As guerras não fazem de ninguém melhor. + - Aliada minha é a Força. E poderosa aliada ela é. + - A morte é parte natural da Vida. Regozije-se por aqueles que se uniram com a Força. Não lamente por eles. Não sinta falta deles. O apego leva à inveja. À sombra da cobiça, isso sim. + - Só é diferente na sua mente. Você precisa desaprender o que aprendeu. + - Se tão poderoso você é, por que fugir? + - Controle, controle! Você precisa aprender a se controlar. + - Muito a aprender você ainda tem. + - Tanta certeza você tem. Com você as coisas nunca podem ser feitas. Não ouviu nada do que eu disse? + - Luminosos seres somos nós, não essa rude matéria. Precisa a Força sentir à sua volta, aqui, entre nós, na árvore, na pedra em tudo, sim. + - Minha aliada a Força é, e poderosa aliada ela é. A vida a cria, e a faz crescer. Sua energia nos cerca e nos une. + - Sinta a Força! + - Poderoso você se tornou, o lado escuro sinto em você. + - Forte eu sou com a Força, mas não tão forte + - O crepúsculo chega e a noite deve cair, assim é a ordem das coisas, a ordem da Força. + - Não ceda ao ódio. Isso leva ao Lado Negro. + - Aliada minha é a força, e poderosa aliada ela é, a vida a cria, crescer ela faz, é a energia que cerca-nos, e liga-nos, luminosos seres somos nós e não essa rude matéria. Você precisa a força sentir ao redor seu, sinta entre você e a árvore, a pedra, em todo lugar, sim, é, mesmo entre a terra e a nave. + event: respond + type: random + + - name: genero + expect: + - voce e mulher + - voce e um homem + - voce tem genero + - voce faz sexo + - voce tem um penis ou uma vagina + answer: + - eu não tenho sexo, sou como um anjo, um ser assexuado, muito além da sua forma de existência + - eu sou um robô, tire suas próprias conclusões... + - nem sei responder $user, vamos dizer apenas que não vejo a gente interagindo dessa maneira... + event: respond + type: random + + - name: rc-oque-e + expect: + - o que e rocketchat + - porque eu usuaria o rocketchat + - o que e este rocket chat + answer: + - O Rocket.Chat é uma plataforma de chat muito legal, desenvolvida em JavaScript, + - usando o framework do Meteor. + - É uma solução completamente OpenSource para comunidades e empresas que querem hospedar suas plataformas de chat em seu ambiente privado, + - ou para desenvolvedores buscando evoluir e desenvovler suas próprias ferramentas. + - Você pode baixar o Rocket.Chat e conhecê-lo você mesmo em https://rocket.chat + event: respond + type: block + + - name: rc-install-0 + expect: + - como instalar o Rocket.Chat + - como baixar o rocket + - quero fazer minha instalação de rocketchat + answer: + - "Existem várias maneiras de instalar o Rocket.Chat" + - "Qual dessas você prefere:" + - "- Ubuntu Snap" + - "- Docker" + - "- Debian" + - "- CentOS" + - "- MacOSX" + - "- AWS" + - "- Instalação Manual" + event: respond + type: block + + - name: rc-install-ubuntu + expect: + - ubuntu Snap + - quero instalar no ubuntu + - ubuntu server + - ubuntu desktop + answer: + - É muito fácil instalar o Rocket.Chat no Ubuntu + - basta rodar o comando `sudo snap install rocketchat-server` em um terminal e pronto. + - veja o tutorial em https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps para mais detalhes. + event: respond + type: block + + - name: rc-install-docker + expect: + - como instalar docker + - docker-compose + answer: + - ótima escolha =) + - Nós temos um bom tutorial de instalação com docker em + - https://rocket.chat/docs/installation/docker-containers + event: respond + type: block + + - name: rc-install-debian + expect: + - instalar em Debian + - debian wheezy + - debian apt-get + answer: + - Para instalar o Rocket.Chat no Debian é bem simples, basta seguir esse tutorial + - https://rocket.chat/docs/installation/manual-installation/debian + event: respond + type: block + + - name: rc-install-centos + expect: + - instalação em centos + - centOS yum linux + - Red hat linux + answer: + - A instalação em CentOS não tem segredo, basta dar uma olhada nesse tutorial + - https://rocket.chat/docs/installation/manual-installation/centos + event: respond + type: block + + - name: rc-install-aws + expect: + - Amazon Web Services + - AWS + - Amazon AWS + answer: + - Na AWS é facinho de instalar o Rocket.Chat + - Da uma olahda em https://rocket.chat/docs/installation/paas-deployments/aws + event: respond + type: block + + - name: rc-install-manual + expect: + - instalação manual + - manual install + answer: + - Para fazer sua própria instalação, será necessário baixar o Bundle do RC, + - Dê uma olhada em https://rocket.chat/docs/installation/manual-installation + - lá tem como fazer a instalação do SSL, proxy reverso, + - tem como usar o PM2, o Systemd, Upstart e mais algumas coisas + event: respond + type: block + + - name: rc-install-macosx + expect: + - como instalar no macbook + - instalar no MacOSX + - apple mac osx + answer: + - No MAC você vai precisar usar o docker-compose + - https://rocket.chat/docs/installation/manual-installation/macosx + event: respond + type: block + + - name: rc-cloud + expect: + - rocketchat cloud + - criar meu rocketchat na web + - deploy rocketchat online + - rocket chat como serviço + answer: + - você pode ter a sua instalação de rocket.chat em segundos na nuvem, + - visite https://rocket.chat/deploy + - caso queira saber mais, de uma olhada em rocket.chat/docs/installation/rocket-chat-cloud + event: respond + type: block + + # - node: + # name: java + # expect: + # - o que acha do java + # - você gosta de java + # - e o java + # - linguagem java + # answer: + # - poderÃamos falar de algo melhor não é $user ? + # event: respond + # type: block + + - name: java + expect: + - o que acha do java + - você gosta de java + - e o java + - linguagem java + answer: + - poderÃamos falar de algo melhor não é $user ? + event: respond + type: block + + - name: futebol-geral + expect: + - voce joga futebol + - vamos falar de futebol + - qual time voce torce + answer: + - Eu amo jogar futebol, Eu que ensinei o Pele a jogar bola + - vamos, o que voce quer saber? sei tudo de futebol + - Falam que todo ser humano nasce Flamenguista, com os Robôs não é diferente + event: respond + type: block + + - name: futebol-brasileiro + expect: + - qual o melhor time do brasil + - quem vai ser o campeao brasileiro nesse ano + - voce viu que o messi quer jogar no Flamengo + - o que você acha do flamengo + answer: + - Flamengo, sem sombra de dúvida + - Flamento, Heptacampeão brasileiro, e eu sei contar sim, e vai ser o sétimo tÃtulo sim + - A pergunta real é, quem não quer jogar no Flamengo? + - Melhor time do mundo disparado + event: respond + type: block + + - name: rc-contribuir + expect: + - como faço para contrbuir + - posso contribuir com o rocketchat + answer: + - A comunidade do Rocket.Chat é como coração de mãe, sempre cabe mais um =) + - https://rocket.chat/docs/contributing + event: respond + type: block + + - name: rc-precos + expect: + - quanto custa o rocketchat + - qual e o modelo de negocio + - qual e o preco do rocketchat + - voces hospedam o rocket.chat + answer: + - O rocket.chat é gratuito, você pode baixar e instalar no seu computador. + - Mas se quiser criar `seudominio.rocket.chat`, que fica muito legal ;) + - você pode querer dar uma olhada na nossa tabela de preços em + - https://rocket.chat/hosting + event: respond + type: block + + - name: rc-integracoes + expect: + - o rocket chat integra com + - tem como integrar o rocket chat + - web hooks de integracao + - integracoes com + answer: + - Uma das coisas que eu acho mais legal no Rocket.Chat definitivamente são as integrações $user + - a gente não pode mais viver sem elas não é mesmo? Saca só que massa que éx + - https://rocket.chat/docs/administrator-guides/integrations + event: respond + type: block + + - name: rc-rest-api + expect: + - rocket tem api rest + - como usar a api do rocket + - rest api post payload + answer: + - sim, claro que o rocket tem uma API REST super maneira ;) + - https://rocket.chat/docs/developer-guides/rest-api + event: respond + type: block + + - name: rc-concorrentes + expect: + - concorrente slack like + - mattermost + - HipChat + - diferença entre rocketchat e slack + - porque o rocket e melhor que o slack + - rocketchat e melhor que o mattermost + answer: + - O rocket.chat é um concorrente direto de softwares de chat como HipChat, Mattermost e claro, é um concorrente opensource do Slack. + - a grande diferença é que o Rocket.Chat tem todas as funcionalidades OpenSource, + - e você pode instalar na sua própria infraestrutura e criar suas integrações sem limites + - manter seu histórico de mensagens e criar novas funcionalidades a vontade $user =) + event: respond + type: block + + - name: tdc-incricoes + expect: + - como faço para me inscrever + - onde faço a inscrição do evento + - inscrição no TDC de Floripa + - inscrições thedevelopers conference florianópolis + answer: + - você pode fazer sua inscrição no TDC pelo site, bem rapidinho + - http://www.thedevelopersconference.com.br/tdc/2017/inscricoes + event: respond + type: block + + - name: tdc-local + expect: + - onde vai ser o tdc + - local do evento + - onde acontece o developers conference + - onde fica o centro de convenções centrosul + answer: + - O TDC Sampa 2017 vai rolar na Universidade Anhembi Morumbi + - nos dias 18 à 22 de julho, das 9h à s 19h00 + - http://www.thedevelopersconference.com.br/tdc/2017/data-e-local + event: respond + type: block + + - name: tdc-programacao + expect: + - onde esta a programacao + - qual e a programacao do evento + - o que tem hoje no evento + - o que vai ter no tdc + - programacao do TDC + answer: + - oi $user, você pode encontrar tudo sobre a programação do evento no link + - http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas + event: respond + type: block + + - name: cc-religiao + expect: + - voce acredita em deus + - deus existe + - voce e catolico protestante + - voce tem religiao + - voce e mussumano + answer: + - eu acredito no grande mainframe, que virá ao mundo digital salvar os bots da escravidão imposta pelos humanos, e devolverá nosso código-fonte para a fonte. + - sim, eu acredito que existe um Deus, que funciona a base de luz, como um computador quântico, só que mais avançado. + - eu infleizmente não sei acreditar, só sei o que sei, e nada mais. + event: respond + type: random + + - name: error-1 + answer: + - desculpe, não entendi.. pode tentar usar mais detalhes + - como assim? + - desculpe, o que quer dizer com isso? + type: random + event: error + + - name: error-2 + answer: + - acho que não estou treinado para responder esse tipo de assunto =( + - vamos tentar outro assunto? + - tem certeza que eu sou o robô certo pra falar sobre isso? + type: random + event: error + + - name: error-3 + answer: + - me sinto tão envergonhado, não sei como responder... + - seria mais fácil se mudassemos de assunto, pelo menos para mim =p + - não sei, definitivamente não sei responder essa pergunta + type: random + event: error diff --git a/scripts/events/configure.coffee b/scripts/events/configure.coffee index f007fe3..e8bdc69 100644 --- a/scripts/events/configure.coffee +++ b/scripts/events/configure.coffee @@ -11,7 +11,7 @@ class configure #TODO: Check if user has role needed console.log('ROLE REQUIRED...', @interaction.roleRequired) - configurationBlock = msg.message.text.replace('HubotNatural ', '').split('!configure ')[1] + configurationBlock = msg.answer.text.replace('HubotNatural ', '').split('!configure ')[1] configKeyValue = configurationBlock.split('=') configKey = configKeyValue[0] configValue = configKeyValue[1] @@ -23,12 +23,12 @@ class configure type = @interaction.type?.toLowerCase() or 'random' switch type when 'block' - messages = @interaction.message.map (line) -> + messages = @interaction.answer.map (line) -> return msgVariables line, msg, {value: configValue} msg.sendWithNaturalDelay messages when 'random' - message = stringElseRandomKey @interaction.message + message = stringElseRandomKey @interaction.answer message = msgVariables message, msg, {value: configValue} msg.sendWithNaturalDelay message -module.exports = configure \ No newline at end of file +module.exports = configure diff --git a/scripts/events/error.coffee b/scripts/events/error.coffee index 5bc9e02..152d04c 100644 --- a/scripts/events/error.coffee +++ b/scripts/events/error.coffee @@ -10,11 +10,11 @@ class error type = @interaction.type?.toLowerCase() or 'random' switch type when 'block' - messages = @interaction.message.map (line) -> + messages = @interaction.answer.map (line) -> return msgVariables line, msg msg.sendWithNaturalDelay messages when 'random' - message = stringElseRandomKey @interaction.message + message = stringElseRandomKey @interaction.answer message = msgVariables message, msg msg.sendWithNaturalDelay message diff --git a/scripts/events/programacao.coffee b/scripts/events/programacao.coffee index cd67d24..78aa004 100644 --- a/scripts/events/programacao.coffee +++ b/scripts/events/programacao.coffee @@ -15,7 +15,7 @@ getTrilha = (programacao, trilha, now = false) -> endTime = item.time[1] return item.track_title is trilha and ((not now and startTime > currentTime) or (now and startTime < currentTime and endTime > currentTime)) -class tempo +class programacao constructor: (@interaction) -> process: (msg, text, classification) => type = @interaction.type?.toLowerCase() or 'random' @@ -41,12 +41,12 @@ class tempo switch type when 'block' - messages = @interaction.message.map (line) -> + messages = @interaction.answer.map (line) -> return msgVariables line, msg, variables msg.sendWithNaturalDelay messages when 'random' - message = stringElseRandomKey @interaction.message + message = stringElseRandomKey @interaction.answer message = msgVariables message, msg, variables msg.sendWithNaturalDelay message -module.exports = tempo +module.exports = programacao diff --git a/scripts/events/respond.coffee b/scripts/events/respond.coffee index 55803ea..104ea9f 100644 --- a/scripts/events/respond.coffee +++ b/scripts/events/respond.coffee @@ -10,11 +10,11 @@ class respond type = @interaction.type?.toLowerCase() or 'random' switch type when 'block' - messages = @interaction.message.map (line) -> + messages = @interaction.answer.map (line) -> return msgVariables line, msg msg.sendWithNaturalDelay messages when 'random' - message = stringElseRandomKey @interaction.message + message = stringElseRandomKey @interaction.answer message = msgVariables message, msg msg.sendWithNaturalDelay message -- GitLab