Make logged_in and has_full_access async functions instead of properties

This commit is contained in:
Tulir Asokan
2018-06-22 12:45:19 +03:00
parent 42056b91c5
commit d466060c44
10 changed files with 50 additions and 50 deletions
+4 -6
View File
@@ -25,9 +25,7 @@ from ..util import format_duration
@command_handler(needs_auth=False)
async def ping(evt):
if not evt.sender.logged_in:
return await evt.reply("You're not logged in.")
me = await evt.sender.client.get_me()
me = await evt.sender.client.get_me() if await evt.sender.is_logged_in() else None
if me:
return await evt.reply(f"You're logged in as @{me.username}")
else:
@@ -53,7 +51,7 @@ def register(evt):
@command_handler(needs_auth=False, management_only=True)
async def register(evt):
if evt.sender.logged_in:
if await evt.sender.is_logged_in():
return await evt.reply("You are already logged in.")
elif len(evt.args) < 1:
return await evt.reply("**Usage:** `$cmdprefix+sp register <phone> <full name>`")
@@ -99,7 +97,7 @@ async def enter_code_register(evt):
@command_handler(needs_auth=False, management_only=True)
async def login(evt):
if evt.sender.logged_in:
if await evt.sender.is_logged_in():
return await evt.reply("You are already logged in.")
allow_matrix_login = evt.config.get("bridge.allow_matrix_login", True)
@@ -225,7 +223,7 @@ async def enter_password(evt):
@command_handler(needs_auth=False)
async def logout(evt):
if not evt.sender.logged_in:
if not await evt.sender.is_logged_in():
return await evt.reply("You're not logged in.")
if await evt.sender.log_out():
return await evt.reply("Logged out successfully.")
+7 -7
View File
@@ -26,15 +26,15 @@ command_handlers = {}
def command_handler(needs_auth=True, management_only=False, needs_admin=False, name=None):
def decorator(func):
def wrapper(evt):
async def wrapper(evt):
if management_only and not evt.is_management:
return evt.reply(f"`{evt.command}` is a restricted command:"
"you may only run it in management rooms.")
elif needs_auth and not evt.sender.logged_in:
return evt.reply("This command requires you to be logged in.")
return await evt.reply(f"`{evt.command}` is a restricted command:"
"you may only run it in management rooms.")
elif needs_auth and not await evt.sender.is_logged_in():
return await evt.reply("This command requires you to be logged in.")
elif needs_admin and not evt.sender.is_admin:
return evt.reply("This is command requires administrator privileges.")
return func(evt)
return await evt.reply("This is command requires administrator privileges.")
return await func(evt)
command_handlers[name or func.__name__.replace("_", "-")] = wrapper
return wrapper
+4 -3
View File
@@ -252,19 +252,20 @@ async def confirm_bridge(evt: CommandEvent):
return await evt.reply("Please use `$cmdprefix+sp continue` to confirm the bridging or "
"`$cmdprefix+sp cancel` to cancel.")
user = evt.sender if evt.sender.logged_in else evt.tgbot
is_logged_in = await evt.sender.is_logged_in()
user = evt.sender if is_logged_in else evt.tgbot
try:
entity = await user.client.get_entity(portal.peer)
except Exception:
evt.log.exception("Failed to get_entity(%s) for manual bridging.", portal.peer)
if evt.sender.logged_in:
if is_logged_in:
return await evt.reply("Failed to get info of telegram chat. "
"You are logged in, are you in that chat?")
else:
return await evt.reply("Failed to get info of telegram chat. "
"You're not logged in, is the relay bot in the chat?")
if isinstance(entity, (ChatForbidden, ChannelForbidden)):
if evt.sender.logged_in:
if is_logged_in:
return await evt.reply("You don't seem to be in that chat.")
else:
return await evt.reply("The bot doesn't seem to be in that chat.")