All Projects → cyphar → matrix-utils

cyphar / matrix-utils

Licence: GPL-3.0 license
Random matrix-related scripts.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to matrix-utils

twitter
A Matrix-Twitter DM puppeting bridge
Stars: ✭ 48 (+108.7%)
Mutual labels:  matrix-org
signaller
The lightweight (but full-featured) Matrix server, written in Go language
Stars: ✭ 44 (+91.3%)
Mutual labels:  matrix-org
chooj
Matrix chat app for KaiOS supporting voice calls
Stars: ✭ 44 (+91.3%)
Mutual labels:  matrix-org
telegram
A Matrix-Telegram hybrid puppeting/relaybot bridge
Stars: ✭ 914 (+3873.91%)
Mutual labels:  matrix-org
matrix-php
PHP library for Matrix (https://matrix.org/) API.
Stars: ✭ 17 (-26.09%)
Mutual labels:  matrix-org
python
A Python 3 asyncio Matrix framework.
Stars: ✭ 115 (+400%)
Mutual labels:  matrix-org
Dendrite
Dendrite is a second-generation Matrix homeserver written in Go!
Stars: ✭ 2,758 (+11891.3%)
Mutual labels:  matrix-org
Matrix Docker Ansible Deploy
Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
Stars: ✭ 2,541 (+10947.83%)
Mutual labels:  matrix-org
Synapse
Synapse: Matrix homeserver written in Python 3/Twisted.
Stars: ✭ 8,733 (+37869.57%)
Mutual labels:  matrix-org
matrix-corporal
Matrix Corporal: reconciliator and gateway for a managed Matrix server
Stars: ✭ 100 (+334.78%)
Mutual labels:  matrix-org
rust-synapse-compress-state
A tool to compress some state in a Synapse instance's database
Stars: ✭ 69 (+200%)
Mutual labels:  matrix-org
go
A Golang Matrix framework.
Stars: ✭ 192 (+734.78%)
Mutual labels:  matrix-org
AgentSmith
🕴 An IRC server that is actually a Matrix client. Use your favourite IRC client to communicate with the Matrix.
Stars: ✭ 35 (+52.17%)
Mutual labels:  matrix-org
matrix-registration
a token based matrix registration api
Stars: ✭ 182 (+691.3%)
Mutual labels:  matrix-org
instagram
A Matrix-Instagram DM puppeting bridge
Stars: ✭ 69 (+200%)
Mutual labels:  matrix-org
transform
No description or website provided.
Stars: ✭ 13 (-43.48%)
Mutual labels:  matrix-org
matrix-pstn-bridge
☎️ A Matrix Puppet bridge for the public telephone network that supports a number of VoIP providers (Twillo, Vonage, etc.). Sends and receives voice and SMS.
Stars: ✭ 25 (+8.7%)
Mutual labels:  matrix-org

matrix-utils

Random matrix utilities.

megolm_backup.py

This script can be used to modify your offline megolm key backups from a shell. The main use of this is to filter what keys you'd like to share with another user (let's say you have a 1:1 chat, and the other user lost all their keys and you need to give them access without giving access to all of your rooms). There is currently no Riot-based tooling for this, so this script can help in the meantime.

I've tested the output and input format with my own room keys and it has worked so far.

usage: megolm_backup.py [-h] [-o OUTPUT] (--into | --from) [file]

Operate on megolm session backups.

positional arguments:
  file                  Input text file (- for stdin).

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        Output text file (- for stdout).
  --into                Encrypt and represent file as a megolm session backup.
  --from                Decrypt the given megolm session and output the
                        contents.

Using the above example, let's say we want to only get session keys of the room !foo:matrix.org. You can do this fairly easily with jq:

% megolm_backup.py --from riot-keys.py |
	jq 'map(select(.room_id == "!foo:matrix.org"))' |
	megolm_backup.py --into > new-riot-keys.txt

You need to have PyCryptodome installed in order for this script to work.

License

matrix-utils is licensed under the GNU General Public License version 3 or later.

Copyright (C) 2019 Aleksa Sarai <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU 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 General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].