node-webot / weixin-robot

微信公共帐号自动回复机器人 A Node.js robot for wechat.
1.76k stars 555 forks source link

自我介绍的的问题 #35

Closed powerbsd closed 11 years ago

powerbsd commented 11 years ago

rules.js中的这段代码

  webot.set({
    name: 'your_name',
    description: '自我介绍下吧, 发送: I am [enter_your_name]',
    pattern: /^(?:my name is|i am|我(?:的名字)?(?:是|叫)?)\s*(.*)$/i,
    // handler: function(info, action){
    //   return '您好,' + info.query[1]
    // }

    //或者更简单一点
    handler: '您好,{1}'
  });

我在dialog.yaml中定义了"我爱你“的自动回复截断无效 IMG_0872

atian25 commented 11 years ago

/^(?:my name is|i am|我(?:的名字)?(?:是|叫)?)\s*(.*)$/i 这个正则式不严谨,所以优先匹配到了。 建议不用dialog.yaml (它纯碎是为了演示零规则编码使用类库的例子),或者dialog.yaml放在最前面,只用于最简单的匹配。

示例里面很多规则都是为了演示而写的,并不符合真实的场景,建议参考而已

powerbsd commented 11 years ago

@atian25 好的,那我在rules.js中来定义! 我定义了如下自动回复规则:

# 随机回复一个
我爱你: 
  - 可以吗?你确定,不是在和我开玩笑?
  - 您在开玩笑吧!
  - 今儿个真开心,有人类说爱我了!我可以发微博公布于众吗?
  - 我也好想爱啊!可是现在一个也没有!
  - 怎么,亲爱的你失恋了?
  - 不会吧,亲,您该吃药了吧?
  - 不至于吧,我不缺爱,我的主人更爱我!
  - 长夜慢慢无心睡眠,原以为我一个机器人不睡觉,原来你也不睡觉!