Last active
May 2, 2022 18:29
-
-
Save jae1911/2d9f104c08cfa9b17d58238fb1f0ee6e to your computer and use it in GitHub Desktop.
Python kick matcher
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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