|
@@ -3,7 +3,7 @@ from __future__ import division
|
|
|
from .__load__ import *
|
|
|
|
|
|
class Robot(object):
|
|
|
- def init(self, profiling=False):
|
|
|
+ def init(self, profiling=False, logout=False):
|
|
|
# 大脑
|
|
|
self.brain = Demeter.service('brain').init(self)
|
|
|
# 耳朵
|
|
@@ -18,7 +18,7 @@ class Robot(object):
|
|
|
# 数据文件夹
|
|
|
self.data = Demeter.config['vecan']['data']
|
|
|
# 日志
|
|
|
- self.logger = Log.init(__name__)
|
|
|
+ Demeter.logger = self.logger = Log.init(__name__, logout)
|
|
|
|
|
|
# 是否正在录音
|
|
|
self.isRecording = False
|
|
@@ -35,17 +35,20 @@ class Robot(object):
|
|
|
def wakeup(self):
|
|
|
# 机器人配置,后续改成从数据库读取
|
|
|
self.config = Demeter.config['robot']
|
|
|
+ for item in self.config:
|
|
|
+ setting = self.setting(self.config[item])
|
|
|
+ if item not in self.tool:
|
|
|
+ self.logger.info('使用' + self.config[item] + ' ' + item + '引擎')
|
|
|
+ self.tool[item] = Demeter.service(self.config[item], 'api')
|
|
|
+ self.tool[item].setting(**setting)
|
|
|
+ self.brain.wakeup()
|
|
|
+
|
|
|
+
|
|
|
+ def wait(self):
|
|
|
try:
|
|
|
- for item in self.config:
|
|
|
- setting = self.setting(self.config[item])
|
|
|
- if item not in self.tool:
|
|
|
- self.tool[item] = Demeter.service(self.config[item], 'api')
|
|
|
- self.tool[item].setting(**setting)
|
|
|
- self.player = None
|
|
|
self.ear.wait()
|
|
|
- self.brain.printPlugins()
|
|
|
- except Exception as e:
|
|
|
- self.logger.critical('机器人初始化失败:{}'.format(e))
|
|
|
+ except AttributeError:
|
|
|
+ self.logger.critical('初始化离线唤醒功能失败')
|
|
|
|
|
|
def sleep(self, signal, frame):
|
|
|
clean()
|
|
@@ -55,7 +58,7 @@ class Robot(object):
|
|
|
self.eye.close()
|
|
|
Demeter.dog.stop()
|
|
|
|
|
|
- def say(self, msg, cache=False, plugin='', completed=None):
|
|
|
+ def say(self, msg, cache=True, plugin='', completed=None):
|
|
|
self.mouth.say(msg, cache, plugin, completed)
|
|
|
|
|
|
def checkRestore(self):
|