mautrix-signal/mautrix_signal/util/normalize_number.py
Sumner Evans cb2a8b964d
provisioning api: add start new PM endpoint
This endpoint allows you to create PMs with a Signal-registered phone
number.

Example usage:

  curl -X POST \
    -H 'Authorization: Bearer PROVISIONING_TOKEN_HERE' \
    'http://your.matrix.server.url/_matrix/provision/v2/pm/+11234567890?user_id=@test:localhost'
2022-04-05 16:01:36 -06:00

24 lines
1 KiB
Python

# mautrix-signal - A Matrix-Signal puppeting bridge
# Copyright (C) 2022 Tulir Asokan, Sumner Evans
#
# 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/>.
remove_extra_chars = str.maketrans("", "", " .,-()")
def normalize_number(number: str) -> str:
phone = number.translate(remove_extra_chars)
if not number.startswith("+") or not phone[1:].isdecimal():
raise Exception("Phone number must be entered in international format")
return phone