X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fcore.py;h=3532c88e951e1f06e13c563debcc64909f5ed84f;hb=194de8ab2773bd8e456590e3876a0aca1fe4d564;hp=cf011c7e11edad3606e4a0679d6ce362829e8d77;hpb=4414e379aa08c465416d5f2bdbc4e9292170f6d8;p=mpd-sima.git diff --git a/sima/core.py b/sima/core.py index cf011c7..3532c88 100644 --- a/sima/core.py +++ b/sima/core.py @@ -45,11 +45,6 @@ class Sima(Daemon): self.log = getLogger('sima') self.plugins = list() self.player = self.__get_player() # Player client - try: - self.log.info('Connecting MPD: {0}:{1}'.format(*self.player._mpd)) - self.player.connect() - except (PlayerError, PlayerUnHandledError) as err: - self.log.warning('Player: {}'.format(err)) self.short_history = deque(maxlen=60) def __get_player(self): @@ -113,24 +108,30 @@ class Sima(Daemon): time.sleep(tmp) try: self.player.connect() - except PlayerError: + except PlayerError as err: + self.log.debug(err) continue except PlayerUnHandledError as err: #TODO: unhandled Player exceptions self.log.warning('Unhandled player exception: %s' % err) self.log.info('Got reconnected') break + self.foreach_plugin('start') def hup_handler(self, signum, frame): self.log.warning('Caught a sighup!') - self.player.disconnect() + # Cleaning pending command + self.player.clean() self.foreach_plugin('shutdown') + self.player.disconnect() raise SigHup('SIGHUP caught!') def shutdown(self): """General shutdown method """ self.log.warning('Starting shutdown.') + # Cleaning pending command + self.player.clean() self.foreach_plugin('shutdown') self.player.disconnect() @@ -141,6 +142,13 @@ class Sima(Daemon): def run(self): """ """ + try: + self.log.info('Connecting MPD: {0}:{1}'.format(*self.player._mpd)) + self.player.connect() + except (PlayerError, PlayerUnHandledError) as err: + self.log.warning('Player: {}'.format(err)) + self.reconnect_player() + self.foreach_plugin('start') while 42: try: self.loop()