Add basic HTTP API

This commit is contained in:
Ske
2018-08-02 00:36:50 +02:00
parent e831ef5921
commit 944f0093a9
13 changed files with 238 additions and 51 deletions

View File

@@ -6,6 +6,7 @@ from typing import List
from discord.utils import oauth_url
import pluralkit.utils
from pluralkit.bot import utils
from pluralkit.bot.commands import *
@@ -52,7 +53,7 @@ async def invite_link(ctx: CommandContext, args: List[str]):
async def export(ctx: CommandContext, args: List[str]):
members = await db.get_all_members(ctx.conn, ctx.system.id)
accounts = await db.get_linked_accounts(ctx.conn, ctx.system.id)
switches = await utils.get_front_history(ctx.conn, ctx.system.id, 999999)
switches = await pluralkit.utils.get_front_history(ctx.conn, ctx.system.id, 999999)
system = ctx.system
data = {

View File

@@ -5,6 +5,7 @@ from typing import List
import dateparser
import humanize
import pluralkit.utils
from pluralkit import Member
from pluralkit.bot import utils
from pluralkit.bot.commands import *
@@ -27,7 +28,7 @@ async def switch_member(ctx: MemberCommandContext, args: List[str]):
# Compare requested switch IDs and existing fronter IDs to check for existing switches
# Lists, because order matters, it makes sense to just swap fronters
member_ids = [member.id for member in members]
fronter_ids = (await utils.get_fronter_ids(ctx.conn, ctx.system.id))[0]
fronter_ids = (await pluralkit.utils.get_fronter_ids(ctx.conn, ctx.system.id))[0]
if member_ids == fronter_ids:
if len(members) == 1:
raise CommandError("{} is already fronting.".format(members[0].name))
@@ -51,7 +52,7 @@ async def switch_member(ctx: MemberCommandContext, args: List[str]):
@command(cmd="switch out", description="Registers a switch with no one in front.", category="Switching commands")
async def switch_out(ctx: MemberCommandContext, args: List[str]):
# Get current fronters
fronters, _ = await utils.get_fronter_ids(ctx.conn, system_id=ctx.system.id)
fronters, _ = await pluralkit.utils.get_fronter_ids(ctx.conn, system_id=ctx.system.id)
if not fronters:
raise CommandError("There's already no one in front.")
@@ -79,7 +80,7 @@ async def switch_move(ctx: MemberCommandContext, args: List[str]):
# Make sure it all runs in a big transaction for atomicity
async with ctx.conn.transaction():
# Get the last two switches to make sure the switch to move isn't before the second-last switch
last_two_switches = await utils.get_front_history(ctx.conn, ctx.system.id, count=2)
last_two_switches = await pluralkit.utils.get_front_history(ctx.conn, ctx.system.id, count=2)
if len(last_two_switches) == 0:
raise CommandError("There are no registered switches for this system.")

View File

@@ -4,6 +4,7 @@ from urllib.parse import urlparse
import humanize
import pluralkit.utils
from pluralkit.bot import utils
from pluralkit.bot.commands import *
@@ -153,7 +154,7 @@ async def system_fronter(ctx: CommandContext, args: List[str]):
if system is None:
raise CommandError("Can't find system \"{}\".".format(args[0]))
fronters, timestamp = await utils.get_fronters(ctx.conn, system_id=system.id)
fronters, timestamp = await pluralkit.utils.get_fronters(ctx.conn, system_id=system.id)
fronter_names = [member.name for member in fronters]
embed = utils.make_default_embed(None)
@@ -182,7 +183,7 @@ async def system_fronthistory(ctx: CommandContext, args: List[str]):
raise CommandError("Can't find system \"{}\".".format(args[0]))
lines = []
front_history = await utils.get_front_history(ctx.conn, system.id, count=10)
front_history = await pluralkit.utils.get_front_history(ctx.conn, system.id, count=10)
for i, (timestamp, members) in enumerate(front_history):
# Special case when no one's fronting
if len(members) == 0: