Add mass_unban.py
This commit is contained in:
parent
fd543007fc
commit
e15aef6b6b
52
mass_unban.py
Normal file
52
mass_unban.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
|
||||||
|
# define room, server domain, and authorization token
|
||||||
|
ROOM_ID = "!string@domain.tld"
|
||||||
|
DOMAIN = "matrix.domain.tld"
|
||||||
|
AUTH_TOKEN = 'syt_tokentokentoken'
|
||||||
|
|
||||||
|
|
||||||
|
# unban query url
|
||||||
|
URL = f"https://{DOMAIN}/_matrix/client/r0/rooms/{ROOM_ID}/members?membership=ban"
|
||||||
|
|
||||||
|
def mass_unban(matching_keys):
|
||||||
|
for i in matching_keys:
|
||||||
|
print("Unbanning id " + i + " ...")
|
||||||
|
headers = { "Authorization": f"Bearer {AUTH_TOKEN}" }
|
||||||
|
# unban the given id
|
||||||
|
response_unban = requests.get(URL, headers=headers)
|
||||||
|
# check if the request was successful
|
||||||
|
if response.status_code == 200:
|
||||||
|
print("Id unbanned successfully.\n")
|
||||||
|
else:
|
||||||
|
print(f"Error: {response.status_code} - {response.text}")
|
||||||
|
|
||||||
|
# prompt the user for a keyword and make the query
|
||||||
|
keyword = input("Please enter keyword for search (for example the domain): ")
|
||||||
|
print("")
|
||||||
|
headers = { "Authorization": f"Bearer {AUTH_TOKEN}" }
|
||||||
|
response = requests.get(URL, headers=headers)
|
||||||
|
|
||||||
|
# check if the request was successful
|
||||||
|
if response.status_code == 200:
|
||||||
|
# parse the JSON response
|
||||||
|
data = response.json()
|
||||||
|
# extract and filter the state keys based on the keyword
|
||||||
|
matching_keys = [member['state_key'] for member in data.get('chunk', []) if keyword in member['state_key']]
|
||||||
|
# print the matching state keys
|
||||||
|
for key in matching_keys:
|
||||||
|
print(key)
|
||||||
|
# confirm action with the user
|
||||||
|
print("\nThe users above are about to be unbanned...")
|
||||||
|
answer = input("Continue? ")
|
||||||
|
if answer.lower() in ["y","yes"]:
|
||||||
|
# trigger mass unban on the filtered list
|
||||||
|
mass_unban(matching_keys)
|
||||||
|
elif answer.lower() in ["n","no"]:
|
||||||
|
print("Thank you.")
|
||||||
|
quit()
|
||||||
|
else:
|
||||||
|
print(f"Error: {response.status_code} - {response.text}")
|
||||||
|
quit(1)
|
Loading…
Reference in New Issue
Block a user