add basic form of dice rolling via dr.botzo
not done yet, just getting the code out there for now
This commit is contained in:
parent
d4ea843088
commit
f048d7c193
|
@ -0,0 +1,21 @@
|
||||||
|
"""Wrap backend requests for usage in commands."""
|
||||||
|
import logging
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
|
import requests
|
||||||
|
|
||||||
|
import hitomi.config as config
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class DrBotzoBackend(object):
|
||||||
|
"""Basic HTTP requests API, wrapped with some authentication and config stuff."""
|
||||||
|
|
||||||
|
def post(self, url, **kwargs):
|
||||||
|
"""Wrap requests.post with authentication and hostname settings."""
|
||||||
|
return requests.post(urljoin(config.DR_BOTZO_BACKEND_HOST, url),
|
||||||
|
auth=(config.DR_BOTZO_BACKEND_USER, config.DR_BOTZO_BACKEND_PASS), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
dr_botzo = DrBotzoBackend()
|
|
@ -10,6 +10,10 @@ BOT_MAX_MESSAGES = int(os.environ.get('HITOMI_BOT_MAX_MESSAGES', '5000'))
|
||||||
BOT_PLUGIN_STR = os.environ.get('HITOMI_BOT_PLUGINS', '')
|
BOT_PLUGIN_STR = os.environ.get('HITOMI_BOT_PLUGINS', '')
|
||||||
BOT_PLUGINS = BOT_PLUGIN_STR.split(',') if BOT_PLUGIN_STR != '' else []
|
BOT_PLUGINS = BOT_PLUGIN_STR.split(',') if BOT_PLUGIN_STR != '' else []
|
||||||
|
|
||||||
|
DR_BOTZO_BACKEND_HOST = os.environ.get('HITOMI_DR_BOTZO_BACKEND_HOST', 'http://localhost:8000/')
|
||||||
|
DR_BOTZO_BACKEND_USER = os.environ.get('HITOMI_DR_BOTZO_BACKEND_USER', '')
|
||||||
|
DR_BOTZO_BACKEND_PASS = os.environ.get('HITOMI_DR_BOTZO_BACKEND_PASS', '')
|
||||||
|
|
||||||
logging.config.dictConfig({
|
logging.config.dictConfig({
|
||||||
'version': 1,
|
'version': 1,
|
||||||
'disable_existing_loggers': False,
|
'disable_existing_loggers': False,
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
"""Commands for dice rolling type behavior."""
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from discord.ext import commands
|
||||||
|
|
||||||
|
from hitomi import bot
|
||||||
|
from hitomi.backends import dr_botzo
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class Dice(commands.Cog):
|
||||||
|
"""Commands for rolling dice and whatnot."""
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
async def roll(self, ctx, dice):
|
||||||
|
"""Roll a provided dice string.
|
||||||
|
|
||||||
|
Format: T#K/NdS+M; T = times, K = keep, N = number, S = sides, M = modifier
|
||||||
|
"""
|
||||||
|
logger.info("rolling dice: %s", dice)
|
||||||
|
result = dr_botzo.post('/dice/rpc/roll/', json={'dice': dice})
|
||||||
|
logger.debug(result)
|
||||||
|
await ctx.send(result.json())
|
||||||
|
|
||||||
|
|
||||||
|
bot.add_cog(Dice(bot))
|
Loading…
Reference in New Issue