def run(): # avoid circular import from rcon.extended_commands import Rcon ctl = Rcon( SERVER_INFO ) config = AutoBroadcasts() while True: msgs = config.get_messages() if not config.get_enabled() or not msgs: logger.debug("Auto broadcasts are disabled. Sleeping %s seconds", CHECK_INTERVAL) time.sleep(CHECK_INTERVAL) continue if config.get_randomize(): logger.debug("Auto broadcasts. Radomizing") random.shuffle(msgs) for time_sec, msg in msgs: if not config.get_enabled(): break formatted = format_message(ctl, msg) logger.debug("Broadcasting for %s seconds: %s", time_sec, formatted) try: ctl.set_broadcast(formatted) except CommandFailedError: logger.exception("Unable to broadcast %s", msg) time.sleep(int(time_sec))
def run(): ctl = Rcon( SERVER_INFO ) config = AutoBroadcasts() while True: msgs = config.get_messages() if not config.get_enabled() or not msgs: logger.debug("Auto broadcasts are disabled. Sleeping %s seconds", CHECK_INTERVAL) time.sleep(CHECK_INTERVAL) continue if config.get_randomize(): logger.debug("Auto broadcasts. Radomizing") random.shuffle(msgs) for time_sec, msg in msgs: subs = { 'nextmap': safe(ctl.get_next_map, "")(), 'maprotation': ' -> '.join(safe(ctl.get_map_rotation, [])()), 'servername': safe(ctl.get_name, "")(), 'onlineadmins': ', '.join(safe(ctl.get_online_admins, [])()) } formatted = msg.format(**subs) logger.debug("Broadcasting for %s seconds: %s", time_sec, formatted) ctl.set_broadcast(formatted) time.sleep(int(time_sec)) # Clear state in case next next iteration disables ctl.set_broadcast('')
config = AutoBroadcasts() while True: msgs = config.get_messages() if not config.get_enabled() or not msgs: logger.debug("Auto broadcasts are disabled. Sleeping %s seconds", CHECK_INTERVAL) time.sleep(CHECK_INTERVAL) continue if config.get_randomize(): logger.debug("Auto broadcasts. Radomizing") random.shuffle(msgs) for time_sec, msg in msgs: subs = { 'nextmap': safe(ctl.get_next_map, "")(), 'maprotation': ' -> '.join(safe(ctl.get_map_rotation, [])()), 'servername': safe(ctl.get_name, "")(), 'onlineadmins': ', '.join(safe(ctl.get_online_admins, [])()) } formatted = msg.format(**subs) logger.debug("Broadcasting for %s seconds: %s", time_sec, formatted) ctl.set_broadcast(formatted) time.sleep(int(time_sec)) # Clear state in case next next iteration disables ctl.set_broadcast('')