vecan.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # -*- coding: utf-8 -*-
  2. from demeter.core import *
  3. class Vecan(object):
  4. def init(self):
  5. print('''
  6. ********************************************************
  7. * vecan-robot - 神算终端机器人 *
  8. * (c) 201(c) 2019 rabin <rabin@dever.cc> *
  9. * https://github.com/shemic/vecan.git *
  10. ********************************************************
  11. 如需退出,可以按 Ctrl-4 组合键。
  12. ''')
  13. Demeter.initConfig()
  14. self.config()
  15. self.robot = Demeter.service('robot')
  16. self.robot.init(profiling=Demeter.option['profiling'], logout=Demeter.option['logout'])
  17. self.robot.say('你好,我是神算终端机器人vecan,很高兴为你服务', True)
  18. self.robot.wait()
  19. Demeter.dog = WatchDog.init()
  20. def config(self):
  21. if 'vecan' not in Demeter.config:
  22. Demeter.config['vecan'] = {}
  23. if 'data' not in Demeter.config['vecan']:
  24. Demeter.config['vecan']['data'] = File.runtime('data')
  25. if 'temp' not in Demeter.config['vecan']:
  26. Demeter.config['vecan']['temp'] = File.runtime('temp')
  27. if 'outname' not in Demeter.config['vecan']:
  28. Demeter.config['vecan']['outname'] = 'output'
  29. self.opt()
  30. def opt(self):
  31. param = {}
  32. param['profiling'] = 'p'
  33. param['logout'] = 'l'
  34. Demeter.getopt(param)
  35. if 'profiling' not in Demeter.option:
  36. Demeter.option['profiling'] = False
  37. if 'logout' not in Demeter.option:
  38. Demeter.option['logout'] = True
  39. def run(self):
  40. try:
  41. self.init()
  42. except AttributeError:
  43. self.robot.logger.error('初始化机器人功能失败')
  44. pass
  45. signal.signal(signal.SIGINT, self.robot.sleep)
  46. #Demeter.webInit('front')
  47. if __name__ == '__main__':
  48. vecan = Vecan()
  49. vecan.run()