A library for connecting to and making a bot in Destiny.gg chat.
KNOWN ISSUE: There is an problem with at least Python 3.13 and websocket-client v1.8.0 and Cloudflare that results in being unable to connect. Please use an earlier version of Python in the meantime.
Python 3.9 or higher is required (version 0.5.0 and above, Python 3.8+ for versions below)
# Linux/macOS
python3 -m pip install -U dgg-bot
# Windows
py -3 -m pip install -U dgg-bot
Not sure what to put here at this point in time. Unauthorized chat bots are subject to being banned, ask Cake in DGG for permission and guidelines for chat bots before running one.
A simple bot with three commands and will yump back at chatters.
from dggbot import DGGBot
import time
bot = DGGBot(
"AUTH_TOKEN",
owner="Owner",
prefix="$",
) # default command prefix is "!"
@bot.command()
@bot.is_owner() # only the owner named in DGGBot can use this command.
def test(msg): # $test
msg.reply("Test 123")
@bot.command(aliases=["banmeplease"]) # aliases for this command
def banme(msg): # $banme / $banmeplease
bot.send("RightToBearArmsLOL BINGQILIN nathanTiny2")
def is_cake(msg): # a check where only the user Cake can use commands with this check
return msg.nick == "Cake"
@bot.command(aliases=["oooo"])
@bot.check(is_cake)
def pog(msg):
msg.reply("Cake OOOO")
"""
Events
You can either name the function after the event, or include the event name in the decorator.
mention() is also included as a shortcut for event("on_mention").
Event names: on_ban, on_broadcast, on_join, on_mention, on_msg, on_mute, on_privmsg, on_quit,
on_refresh, on_unban
"""
@bot.event()
def on_msg(msg):
print(msg)
# @bot.event("on_mention")
@bot.mention()
def yump(msg):
if "MiyanoHype" in msg.data:
time.sleep(0.5)
msg.reply(f"{msg.nick} MiyanoHype")
if __name__ == "__main__":
bot.run_forever()
Connecting to alternative DGG environments.
from dggbot import DGGBot
bot = DGGBot(
owner="Owner",
prefix="$",
sid="SID",
rememberme="REMEMBERME",
config={
{
"wss": "wss://chat.omniliberal.dev/ws",
"wss-origin": "https://www.omniliberal.dev",
"baseurl": "https://www.omniliberal.dev",
"endpoints": {"user": "/api/chat/me", "userinfo": "/api/userinfo"},
"flairs": "https://cdn.omniliberal.dev/flairs/flairs.json",
}
},
)
@bot.event()
def on_msg(msg):
print(msg)
if __name__ == "__main__":
bot.run_forever()