parse arguments
This commit is contained in:
parent
89812f4890
commit
6df721951f
@ -1,16 +1,42 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
import argparse
|
||||||
import requests
|
import requests
|
||||||
import sys
|
import sys
|
||||||
from pprint import pformat
|
from pprint import pformat
|
||||||
from time import sleep, time
|
from time import sleep, time
|
||||||
|
|
||||||
|
|
||||||
# configure your session here
|
# configure anti-throtle
|
||||||
homeserver = "matrix.domain.tld"
|
|
||||||
access_token = "syt_M4dpAzM_iQdfTcDDoiGhlOTDnz1r_5HfPcV"
|
|
||||||
|
|
||||||
room_id = sys.argv[1]
|
|
||||||
sleep_for_seconds = 3
|
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):
|
def whoami(acces_token):
|
||||||
@ -29,13 +55,18 @@ def get_all_encrypted_messages(homeserver, room_id, access_token):
|
|||||||
print("Reading messages...")
|
print("Reading messages...")
|
||||||
# don't get throttled
|
# don't get throttled
|
||||||
sleep(sleep_for_seconds)
|
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 = {
|
params = {
|
||||||
"dir": "b",
|
"dir": "b",
|
||||||
"limit": 50,
|
"limit": pagination_limit,
|
||||||
"filter": '{"senders":["' + my_username + '"]}'
|
"filter": '{' + filter_param + '}'
|
||||||
}
|
}
|
||||||
if next_batch:
|
if next_batch:
|
||||||
params["from"] = next_batch
|
params["from"] = next_batch
|
||||||
|
# make request
|
||||||
url = f"https://{homeserver}/_matrix/client/v3/rooms/{room_id}/messages"
|
url = f"https://{homeserver}/_matrix/client/v3/rooms/{room_id}/messages"
|
||||||
headers = { "Authorization": f"Bearer {access_token}" }
|
headers = { "Authorization": f"Bearer {access_token}" }
|
||||||
response = requests.get(url, params=params, headers=headers)
|
response = requests.get(url, params=params, headers=headers)
|
||||||
@ -66,10 +97,11 @@ def redact_message(message):
|
|||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
|
|
||||||
|
|
||||||
all_messages = get_all_encrypted_messages(homeserver, room_id, access_token)
|
for room_id in room_ids:
|
||||||
message_count = 0
|
all_messages = get_all_encrypted_messages(homeserver, room_id, access_token)
|
||||||
for message in all_messages:
|
message_count = 0
|
||||||
if message['content']:
|
for message in all_messages:
|
||||||
redact_message(message)
|
if message['content']:
|
||||||
message_count += 1
|
redact_message(message)
|
||||||
print("Redacted messages:", message_count)
|
message_count += 1
|
||||||
|
print("Redacted messages:", message_count)
|
||||||
|
Loading…
Reference in New Issue
Block a user