* Added base admin login/logout flows * Ignore local database * Channel model * Admin interface for channels and plugins * Added database tests along with workflows * Added some docstrings * Ignore .coverage file * Creating plugins docs WIP * Documentation * Black everything * Some documentation * Coverage for the plugins package as well * DB Fixes * Absolute FROM in Dockerfile * Database and logging fixes * Slack: Support private channels * Added pre-commit * black'd * Fixed UserQuery.create * Fixed ChannelPluginQuery.create exists call * Added ChannelPlugin menu for debugging * Ignore sqlite databases * Updated contributing docs
18 lines
539 B
Python
18 lines
539 B
Python
from datetime import datetime
|
|
|
|
from butterrobot.plugins import Plugin
|
|
from butterrobot.objects import Message
|
|
|
|
|
|
class PingPlugin(Plugin):
|
|
name = "Ping command"
|
|
id = "contrib.dev.ping"
|
|
|
|
@classmethod
|
|
def on_message(cls, message, **kwargs):
|
|
if message.text == "!ping":
|
|
delta = datetime.now() - message.date
|
|
delta_ms = delta.seconds * 1000 + delta.microseconds / 1000
|
|
yield Message(
|
|
chat=message.chat, reply_to=message.id, text=f"pong! ({delta_ms}ms)",
|
|
)
|