Skip to content

Instantly share code, notes, and snippets.

@jae1911
Last active May 2, 2022 18:29
Show Gist options
  • Save jae1911/2d9f104c08cfa9b17d58238fb1f0ee6e to your computer and use it in GitHub Desktop.
Save jae1911/2d9f104c08cfa9b17d58238fb1f0ee6e to your computer and use it in GitHub Desktop.
Python kick matcher
from json import loads
from logging import getLogger
from time import wait
from requests import get, post
_HOMESERVER_URI = ""
_USER_TOKEN = ""
_ROOMID = ""
_TOMATCH = ""
_LOG = getLogger("fi.jae.matrixglobkicker")
def cleaner():
_LOG.debug("Doing the request")
user_list_api_endpoint = f"{_HOMESERVER_URI}/_matrix/client/v3/rooms/{_ROOMID}/joined_members?access_token={_USER_TOKEN}"
user_list_request = get(user_list_api_endpoint)
if user_list_request.status_code == 200:
json_user_list = loads(user_list_request.text)
parsed_user_list = json_user_list.get("joined")
for user in parsed_user_list:
if _TOMATCH in user:
print(user)
# Kick user
body = {"reason": "Your server is ACLed", "user_id": user}
user_kick_api_endpoint = f"{_HOMESERVER_URI}/_matrix/client/v3/rooms/{_ROOMID}/kick?access_token={_USER_TOKEN}"
kick_result = post(
user_kick_api_endpoint,
json={"reason": "Server ACL", "user_id": user},
)
wait(2)
else:
_LOG.warn(
f"An error happened, request ended with {user_list_request.status_code}: {user_list_request.text}"
)
if __name__ == "__main__":
if not _HOMESERVER_URI or not _USER_TOKEN or not _ROOMID:
exit(1)
cleaner()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment