"""Core Object dealing with plugins and player client
"""
-__version__ = '0.12.0pr1'
-__author__ = 'kaliko jack'
-__url__ = 'git://git.kaliko.me/sima.git'
-
import sys
import time
from .client import PlayerError, PlayerUnHandledError
from .lib.simadb import SimaDB
from .lib.daemon import Daemon
+from .utils.utils import SigHup
class Sima(Daemon):
"""Main class, plugin and player management
self.enabled = True
self.config = conf
self.sdb = SimaDB(db_path=conf.get('sima', 'db_file'))
+ PlayerClient.database = self.sdb
self.log = getLogger('sima')
self.plugins = list()
self.player = self.__get_player() # Player client
self.log.info('Got reconnected')
break
+ def hup_handler(self, signum, frame):
+ self.log.warning('Caught a sighup!')
+ self.player.disconnect()
+ self.foreach_plugin('shutdown')
+ raise SigHup('SIGHUP caught!')
+
def shutdown(self):
"""General shutdown method
"""
self.log.info('The way is shut, it was made by those who are dead. '
'And the dead keep it…')
self.log.info('bye...')
- sys.exit(0)
def run(self):
"""
except PlayerError as err:
self.log.warning('Player error: %s' % err)
self.reconnect_player()
+ del(self.changed)
def loop(self):
"""Dispatching callbacks to plugins