57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
from datetime import datetime
|
|
|
|
import simplematrixbotlib as matrix
|
|
from dotenv import dotenv_values
|
|
|
|
import dice
|
|
import misc
|
|
|
|
DOTENV = dotenv_values(".env")
|
|
PREFIX = "!"
|
|
|
|
config = matrix.Config()
|
|
config.encryption_enabled = True
|
|
config.emoji_verify = True
|
|
config.ignore_unverified_devices = True
|
|
|
|
creds = matrix.Creds(
|
|
DOTENV["MATRIX_SERVER"], DOTENV["BOT_USERNAME"], DOTENV["BOT_PASSWORD"]
|
|
)
|
|
|
|
bot = matrix.bot.Bot(creds, config)
|
|
bot.start_time = datetime.now()
|
|
|
|
|
|
@bot.listener.on_message_event
|
|
async def ping(room, message):
|
|
mtch = matrix.match.MessageMatch(room, message, bot, PREFIX)
|
|
if mtch.is_not_from_this_bot and mtch.prefix and mtch.command("ping"):
|
|
await misc.ping(bot, mtch, room, message)
|
|
|
|
|
|
@bot.listener.on_message_event
|
|
async def echo(room, message):
|
|
mtch = matrix.match.MessageMatch(room, message, bot, PREFIX)
|
|
if mtch.is_not_from_this_bot and mtch.prefix and mtch.command("echo"):
|
|
await misc.echo(bot, mtch, room, message)
|
|
|
|
|
|
@bot.listener.on_message_event
|
|
async def uptime(room, message):
|
|
mtch = matrix.match.MessageMatch(room, message, bot, PREFIX)
|
|
if mtch.is_not_from_this_bot and mtch.prefix and mtch.command("uptime"):
|
|
await misc.uptime(bot, mtch, room, message)
|
|
|
|
|
|
@bot.listener.on_message_event
|
|
async def roll(room, message):
|
|
mtch = matrix.match.MessageMatch(room, message, bot, PREFIX)
|
|
if (
|
|
mtch.is_not_from_this_bot
|
|
and mtch.prefix
|
|
and (mtch.command("roll") or mtch.command("r"))
|
|
):
|
|
await dice.roll(bot, mtch, room, message)
|
|
|
|
|
|
bot.run()
|