mirror of
https://github.com/mautrix/telegram.git
synced 2026-05-16 23:15:45 +03:00
85 lines
4.0 KiB
Python
85 lines
4.0 KiB
Python
# -*- coding: future_fstrings -*-
|
|
# mautrix-telegram - A Matrix-Telegram puppeting bridge
|
|
# Copyright (C) 2018 Tulir Asokan
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
from . import command_handler
|
|
|
|
|
|
@command_handler(needs_auth=False)
|
|
def cancel(evt):
|
|
if evt.sender.command_status:
|
|
action = evt.sender.command_status["action"]
|
|
evt.sender.command_status = None
|
|
return evt.reply(f"{action} cancelled.")
|
|
else:
|
|
return evt.reply("No ongoing command.")
|
|
|
|
|
|
@command_handler(needs_auth=False)
|
|
def unknown_command(evt):
|
|
return evt.reply("Unknown command. Try `$cmdprefix+sp help` for help.")
|
|
|
|
|
|
@command_handler(needs_auth=False)
|
|
def help(evt):
|
|
if evt.is_management:
|
|
management_status = ("This is a management room: prefixing commands "
|
|
"with `$cmdprefix` is not required.\n")
|
|
elif evt.is_portal:
|
|
management_status = ("**This is a portal room**: you must always "
|
|
"prefix commands with `$cmdprefix`.\n"
|
|
"Management commands will not be sent to Telegram.")
|
|
else:
|
|
management_status = ("**This is not a management room**: you must "
|
|
"prefix commands with `$cmdprefix`.\n")
|
|
help = """\n
|
|
#### Generic bridge commands
|
|
**help** - Show this help message.
|
|
**cancel** - Cancel an ongoing action (such as login).
|
|
|
|
#### Authentication
|
|
**login** - Request an authentication code.
|
|
**logout** - Log out from Telegram.
|
|
**ping** - Check if you're logged into Telegram.
|
|
|
|
#### Miscellaneous things
|
|
**search** [_-r|--remote_] <_query_> - Search your contacts or the Telegram servers for users.
|
|
**sync** [`chats`|`contacts`|`me`] - Synchronize your chat portals, contacts and/or own info.
|
|
**ping-bot** - Get info of the message relay Telegram bot.
|
|
**set-pl** <_level_> [_mxid_] - Set a temporary power level without affecting Telegram.
|
|
|
|
#### Initiating chats
|
|
**pm** <_identifier_> - Open a private chat with the given Telegram user. The identifier is either
|
|
the internal user ID, the username or the phone number.
|
|
**join** <_link_> - Join a chat with an invite link.
|
|
**create** [_type_] - Create a Telegram chat of the given type for the current Matrix room. The
|
|
type is either `group`, `supergroup` or `channel` (defaults to `group`).
|
|
|
|
#### Portal management
|
|
**upgrade** - Upgrade a normal Telegram group to a supergroup.
|
|
**invite-link** - Get a Telegram invite link to the current chat.
|
|
**delete-portal** - Remove all users from the current portal room and forget the portal.
|
|
Only works for group chats; to delete a private chat portal, simply
|
|
leave the room.
|
|
**unbridge** - Remove puppets from the current portal room and forget the portal.
|
|
**bridge** [_id_] - Bridge the current Matrix room to the Telegram chat with the given
|
|
ID. The ID must be the prefixed version that you get with the `/id`
|
|
command of the Telegram-side bot.
|
|
**group-name** <_name_|`-`> - Change the username of a supergroup/channel. To disable, use a dash
|
|
(`-`) as the name.
|
|
**clean-rooms** - Clean up unused portal/management rooms.
|
|
"""
|
|
return evt.reply(management_status + help)
|