def __init__(self) -> None: self.logger = logging.getLogger("dashboard") self.value = 0 # Install rillrate - Spins up the rillrate service in a separate thread, making it non-blocking :) rillrate.install() # Register the dashboard objects dummy_values = [str(i) for i in range(0, 256 + 1, 32)] self.selector = rr_prime.Selector( f"{PACKAGE}.{DASHBOARD}.{GROUP_CONFIG}.Selector", label="Choose!", options=dummy_values ) self.slider = rr_prime.Slider( f"{PACKAGE}.{DASHBOARD}.{GROUP_CONFIG}.Slider", label="More fine grain control", min=0, max=256, step=2 ) # Add sync callbacks - This way we tell rillrate what functions to call when a sync event occurs self.selector.sync_callback(self._selector_callback) self.slider.sync_callback(self._slider_callback)
class Data: """Global data shared across the entire bot, used to store dashboard values.""" def __init__(self) -> None: self.value = 0 class Bot(hikari.GatewayBot): """Just implementing the data to the Bot.""" def __init__(self, **kwargs: Any) -> None: super().__init__(**kwargs) self.data = Data() # Startup the dashboard. # To see the dashboard, go to http://localhost:6361/ui/ rillrate.install() bot = Bot(token=os.environ["BOT_TOKEN"]) values = [str(i) for i in range(0, 256 + 1, 32)] selector = rr_prime.Selector(f"{PACKAGE}.{DASHBOARD}.{GROUP_CONFIG}.Selector", label="Choose!", options=values) slider = rr_prime.Slider(f"{PACKAGE}.{DASHBOARD}.{GROUP_CONFIG}.Slider", label="More fine grain control", min=0, max=256, step=2) def _selector_callback(activity: rillrate.Activity,
def test_import(): rillrate.install()