Skip to main content

A Python wrapper for Matrix Synapse admin API

Project description

Synapse-admin-api-python

Pypi License MIT Python Synapse Tests

A Python wrapper for Matrix Synapse admin API.

Versioning

This library now supports up to Synapse 1.60.0, any Admin API introduced after 1.60.0 may not be included in this version. However, newer changes to Admin API are planned to be included in this library. For planned update, see TODO.md. In the future, the version numbering convention will follow the version this library up to, for example, if this library supports up to 1.60.0, then the version number of this library will be 1.60.0. And the minor number will be reserved for bug fixes in this repo.

Releases older than 0.1.5 only work with HTTP/2

Get Started

Install from PyPi

pip install matrix-synapse-admin

Provide the connection information and access token in the first time of execution. You can either enter the information interactively or as arguments:

Interactively

>>> from synapse_admin import User
>>> user = User()
# The config creator is smart enough to determine the protocol and port by providing either one.
Enter the homeserver URL with port(e.g. https://example.com:443): https://example.com # Only need to be entered in the first time
Enter the access token (leave blank to get the access token by logging in): <access token or leave blank> # Only need to be entered in the first time
# If access token is left blank
Enter a username: admin
Enter a password:
Token retrieved successfully
Save to a config file? (Y/n)
>>> details_of_users = user.lists()
>>> print(details_of_users)
[{'name': '@admin:example.com', 'user_type': None, 'is_guest': 0, 'admin': 1, 'deactivated': 0, 'shadow_banned': False, 'displayname': 'Admin', 'avatar_url': 'mxc://example.com/ABCDEFG'}]
>>> print(details_of_users.total)
1

As arguments

>>> from synapse_admin import User
>>> user = User("example.com", 443, "<access token>", "https://")
>>> details_of_users = user.lists()
>>> print(details_of_users)
[{'name': '@admin:example.com', 'user_type': None, 'is_guest': 0, 'admin': 1, 'deactivated': 0, 'shadow_banned': False, 'displayname': 'Admin', 'avatar_url': 'mxc://example.com/ABCDEFG'}]
>>> print(details_of_users.total)
1

Unit Testing

Simply run the testing script

chmod +x testing_env.sh
./testing_env.sh

Documentation

Docstrings are present now in most methods and classes. If you see /equivalent to ".*"/, it's mean that you may want to refer back to the Synapse Admin API documentation.

More documentation are coming...

Additional features

In addition to the wrapper that wraps the official admin APIs, this wrapper also provides serval unofficial helper methods or admin APIs, they include:

  • Reactivate an deactivated account (User.reactivate)
  • Create a room (Room.create)
  • Send an announcement to everyone (Management.announce_all)
  • Delete media by id or by condition (Media.delete_media)

Contribution

If you want to help me to improve the quality of this project, you can submit an issue.

If you want to collaborate with us, feel free to Fork this project and open a pull request.

What can you do?

  • For Issue

    • Report any Error.
    • Request new features based on the Synapse Admin API
    • Ask questions if you do not understand something.
    • More.
  • For Pull request

    • Add comments to source code.
    • Add new features based on the Synapse Admin API
    • Correct any Error.
    • More.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matrix-synapse-admin-0.7.0.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matrix_synapse_admin-0.7.0-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

File details

Details for the file matrix-synapse-admin-0.7.0.tar.gz.

File metadata

  • Download URL: matrix-synapse-admin-0.7.0.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for matrix-synapse-admin-0.7.0.tar.gz
Algorithm Hash digest
SHA256 ba65f87976ff6e25d7de0166fb1370f63db62647afbd555c0e9ad6de988bacd8
MD5 bbf2d5debdc4d7223e5c3e760fe9c38a
BLAKE2b-256 8f2ec310302ebb3c480123904ab3ec15194214087f05595cbecfbeecd7b77ef3

See more details on using hashes here.

File details

Details for the file matrix_synapse_admin-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for matrix_synapse_admin-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3e72ac06b55b730acfaac6156cff72e864f516bde454c2979c1cc36b6ec1080
MD5 7034bec17ec414ea56213485abf6cf0e
BLAKE2b-256 cdec5973d30c978f43fd02cc4f32d173b7f5c8353c7c4ff369d94272ee78da36

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page