示例#1
0
    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)
示例#2
0
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,
示例#3
0
def test_import():
    rillrate.install()