Compare commits

...

2 Commits

Author SHA1 Message Date
luna 6a617cf376 Merge branch 'addbot-manage' into 'master'
Add 'addbot' manage.py command

See merge request litecord/litecord!84
2022-01-27 14:40:26 +00:00
Bluenix 2fe50c4ac3 Add 'addbot' manage.py command 2022-01-27 14:40:26 +00:00
3 changed files with 30 additions and 4 deletions

View File

@ -16,4 +16,3 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """

View File

@ -94,6 +94,23 @@ async def adduser(ctx, args):
print(f'\tdiscrim: {user["discriminator"]}') print(f'\tdiscrim: {user["discriminator"]}')
async def addbot(ctx, args):
uid, _ = await create_user(args.username, args.email, args.password)
await ctx.db.execute(
"""
UPDATE users
SET bot=True
WHERE id = $1
""",
uid,
)
args.user_id = uid
return await generate_bot_token(ctx, args)
async def set_flag(ctx, args): async def set_flag(ctx, args):
"""Setting a 'staff' flag gives the user access to the Admin API. """Setting a 'staff' flag gives the user access to the Admin API.
Beware of that. Beware of that.
@ -138,7 +155,8 @@ async def generate_bot_token(ctx, args):
) )
if not password_hash: if not password_hash:
return print("cannot find a bot with specified id") print("cannot find a bot with specified id")
return 1
print(make_token(args.user_id, password_hash)) print(make_token(args.user_id, password_hash))
@ -198,6 +216,14 @@ def setup(subparser):
setup_test_parser.set_defaults(func=adduser) setup_test_parser.set_defaults(func=adduser)
addbot_parser = subparser.add_parser("addbot", help="create a bot")
addbot_parser.add_argument("username", help="username of the bot")
addbot_parser.add_argument("email", help="email of the bot")
addbot_parser.add_argument("password", help="password of the bot")
addbot_parser.set_defaults(func=addbot)
setflag_parser = subparser.add_parser( setflag_parser = subparser.add_parser(
"setflag", help="set a flag for a user", description=set_flag.__doc__ "setflag", help="set a flag for a user", description=set_flag.__doc__
) )

View File

@ -93,7 +93,7 @@ def main(config):
async def _ctx_wrapper(fake_app, args): async def _ctx_wrapper(fake_app, args):
app = fake_app.make_app() app = fake_app.make_app()
async with app.app_context(): async with app.app_context():
await args.func(fake_app, args) return await args.func(fake_app, args)
try: try:
if len(argv) < 2: if len(argv) < 2:
@ -107,8 +107,9 @@ def main(config):
init_app_managers(app, init_voice=False) init_app_managers(app, init_voice=False)
args = parser.parse_args() args = parser.parse_args()
loop.run_until_complete(_ctx_wrapper(app, args)) return loop.run_until_complete(_ctx_wrapper(app, args))
except Exception: except Exception:
log.exception("error while running command") log.exception("error while running command")
return 1
finally: finally:
loop.run_until_complete(app.db.close()) loop.run_until_complete(app.db.close())