parse arguments
This commit is contained in:
parent
89812f4890
commit
6df721951f
@ -1,16 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import requests
|
||||
import sys
|
||||
from pprint import pformat
|
||||
from time import sleep, time
|
||||
|
||||
|
||||
# configure your session here
|
||||
homeserver = "matrix.domain.tld"
|
||||
access_token = "syt_M4dpAzM_iQdfTcDDoiGhlOTDnz1r_5HfPcV"
|
||||
|
||||
room_id = sys.argv[1]
|
||||
# configure anti-throtle
|
||||
sleep_for_seconds = 3
|
||||
pagination_limit = 150
|
||||
|
||||
|
||||
# parse arguments
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
"room_ids",
|
||||
help="room ID's",
|
||||
nargs='*')
|
||||
parser.add_argument(
|
||||
"-n",
|
||||
"--nuke",
|
||||
help="try and delete all messages in the room, not only mine",
|
||||
action='store_true')
|
||||
req_args = parser.add_argument_group('required')
|
||||
req_args.add_argument(
|
||||
"-s",
|
||||
"--homeserver",
|
||||
help="homeserver's domain name",
|
||||
required=True)
|
||||
req_args.add_argument(
|
||||
"-t",
|
||||
"--access-token",
|
||||
help="Matrix access token",
|
||||
required=True)
|
||||
args = parser.parse_args()
|
||||
homeserver = args.homeserver
|
||||
access_token = args.access_token
|
||||
room_ids = args.room_ids
|
||||
|
||||
|
||||
def whoami(acces_token):
|
||||
@ -29,13 +55,18 @@ def get_all_encrypted_messages(homeserver, room_id, access_token):
|
||||
print("Reading messages...")
|
||||
# don't get throttled
|
||||
sleep(sleep_for_seconds)
|
||||
# define request parameters
|
||||
filter_param = '"types":["m.room.encrypted", "m.room.message"]'
|
||||
if not args.nuke:
|
||||
filter_param = '"senders":["' + my_username + '"],' + filter_param
|
||||
params = {
|
||||
"dir": "b",
|
||||
"limit": 50,
|
||||
"filter": '{"senders":["' + my_username + '"]}'
|
||||
"limit": pagination_limit,
|
||||
"filter": '{' + filter_param + '}'
|
||||
}
|
||||
if next_batch:
|
||||
params["from"] = next_batch
|
||||
# make request
|
||||
url = f"https://{homeserver}/_matrix/client/v3/rooms/{room_id}/messages"
|
||||
headers = { "Authorization": f"Bearer {access_token}" }
|
||||
response = requests.get(url, params=params, headers=headers)
|
||||
@ -66,6 +97,7 @@ def redact_message(message):
|
||||
response.raise_for_status()
|
||||
|
||||
|
||||
for room_id in room_ids:
|
||||
all_messages = get_all_encrypted_messages(homeserver, room_id, access_token)
|
||||
message_count = 0
|
||||
for message in all_messages:
|
||||
|
Loading…
Reference in New Issue
Block a user