mirror of
https://github.com/wah-su/stickerbridge.git
synced 2025-04-09 01:34:41 +00:00
add support for access_token login
This commit is contained in:
parent
48458fa71d
commit
de52ec22f2
4 changed files with 38 additions and 8 deletions
|
@ -8,8 +8,22 @@ telegram_bot_token: "1234567890:aaaaaaaaaaaaaaaaaaaaaa--aaaaaaaaaaa"
|
|||
# Please use dedicated, freshly created one
|
||||
matrix_homeserver: "https://matrix.org"
|
||||
matrix_username: "@username:matrix.org"
|
||||
|
||||
# Choose a login type for a bot, "password" or "access_token"
|
||||
matrix_login_type: "access_token"
|
||||
|
||||
# If using "password", use this
|
||||
matrix_password: "password"
|
||||
|
||||
# If using "access_token", use this
|
||||
# How to get Device ID:
|
||||
# 1. Click the "Sessions" tab (left side of the dialog).
|
||||
# 2. Click on the current session.
|
||||
# 3. Copy "Session ID" string
|
||||
matrix_deviceid: "DeviceID"
|
||||
# How to get access_token: https://t2bot.io/docs/access_tokens/
|
||||
matrix_token: "syn/mct_XXXXXXXXXXXXXXXXXX"
|
||||
|
||||
command_prefix: "!sb"
|
||||
matrix_bot_name: "Telegram stickers bot"
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ class Command:
|
|||
self.room = room
|
||||
self.command = command.lower()
|
||||
self.tg_exporter = tg_exporter
|
||||
self.args = self.command.split()[1:]
|
||||
self.args = command.split()[1:]
|
||||
|
||||
async def process(self):
|
||||
if self.command.startswith("help"):
|
||||
|
|
|
@ -82,12 +82,16 @@ async def upload_image(client: AsyncClient, image: str):
|
|||
mime_type = magic.from_file(image, mime=True)
|
||||
file_stat = await aiofiles.os.stat(image)
|
||||
async with aiofiles.open(image, "r+b") as f:
|
||||
resp, maybe_keys = await client.upload(
|
||||
f,
|
||||
content_type=mime_type,
|
||||
filename=os.path.basename(image),
|
||||
filesize=file_stat.st_size,
|
||||
)
|
||||
try:
|
||||
resp, maybe_keys = await client.upload(
|
||||
f,
|
||||
content_type=mime_type,
|
||||
filename=os.path.basename(image),
|
||||
filesize=file_stat.st_size,
|
||||
)
|
||||
except:
|
||||
logging.error(f"Failed to upload image ({image})")
|
||||
return ""
|
||||
if isinstance(resp, UploadResponse):
|
||||
logging.debug(f"Image {image} was uploaded successfully to server.")
|
||||
return resp.content_uri
|
||||
|
|
|
@ -36,7 +36,19 @@ async def main():
|
|||
client.add_event_callback(callbacks.message, RoomMessageText)
|
||||
client.add_event_callback(callbacks.autojoin_room, InviteMemberEvent)
|
||||
|
||||
login_response = await client.login(config['matrix_password'])
|
||||
if config['matrix_login_type'] == 'password':
|
||||
if not config['matrix_password']:
|
||||
logging.warning('Please fill in config.yaml file, then restart the bot')
|
||||
raise ValueError(f'No Password')
|
||||
login_response = await client.login(config['matrix_password'])
|
||||
elif config['matrix_login_type'] == 'access_token':
|
||||
if not config['matrix_token'] or not config['matrix_deviceid']:
|
||||
logging.warning('Please fill in config.yaml file, then restart the bot')
|
||||
raise ValueError(f'No access_token or Device ID')
|
||||
login_response = client.restore_login(config['matrix_username'], config['matrix_deviceid'], config['matrix_token'])
|
||||
else:
|
||||
raise ValueError(f'Unknown login type: "{config["matrix_login_type"]}" only "password" and "access_token" are supported')
|
||||
|
||||
logging.info(login_response)
|
||||
|
||||
if os.path.exists('data/next_batch'):
|
||||
|
|
Loading…
Add table
Reference in a new issue