diff --git a/SimpleX/main.py b/SimpleX/main.py index e8caff1..56a87cf 100644 --- a/SimpleX/main.py +++ b/SimpleX/main.py @@ -1,6 +1,19 @@ from websockets.sync.client import connect import json import random +import sys + +sxclink='https://simplex.chat/contact#/?v=2-7&smp=smp%3A%2F%2FBD4qkVq8lJUgjHt0kUaxeQBYsKaxDejeecxm6-2vOwI%3D%40b6geeakpwskovltbesvy3b6ah3ewxfmnhnshojndmpp7wcv2df7bnead.onion%2F4woLIDlpkvXRvZmaAiWA802OwiyxekdJ%23%2F%3Fv%3D1-3%26dh%3DMCowBQYDK2VuAyEAzIAoE-OWDqFJXMqgunIWHPpE_u7e52Wtu8TioPc1QwI%253D&data=%7B%22groupLinkId%22%3A%22Srr1_MNob7WfPTQIY-ug5Q%3D%3D%22%7D' +# print(response['resp']['groups'][0][0]['groupProfile']['displayName']) # Name of the group +# response['resp']['groups'][0][0]['groupProfile']['description'] group description +# response['resp']['groups'][0][0]['chatTs'] time stamp + + +arguments = sys.argv +simplex_link = sys.argv[1] +socket = "ws://localhost:3030" + + @@ -8,7 +21,7 @@ def is_simplex_link_valid(simplex_link: str) -> bool: """ Connects to the group using the `simplex_link`. If the response contains error False will be returned else True. """ - with connect("ws://localhost:3030") as websocket: + with connect(socket) as websocket: query = f"/c incognito {simplex_link}" command = { 'corrId': f"id{random.randint(0,999999)}", @@ -18,15 +31,47 @@ def is_simplex_link_valid(simplex_link: str) -> bool: message = websocket.recv() response = json.loads(message) response_type = response['resp']['type'] - # print(response) if 'error' in response_type.lower(): + print(f"Connection to this group {simplex_link} failed. Try again.") return False elif 'deleted' in response_type.lower(): + print(f"Connection to this group {simplex_link} failed. Try again.") return False - print('[+] Success!',response_type) return True -if __name__ == '__main__': - sxclink='https://simplex.chat/contact#/?v=2-7&smp=smp%3A%2F%2FBD4qkVq8lJUgjHt0kUaxeQBYsKaxDejeecxm6-2vOwI%3D%40b6geeakpwskovltbesvy3b6ah3ewxfmnhnshojndmpp7wcv2df7bnead.onion%2F4woLIDlpkvXRvZmaAiWA802OwiyxekdJ%23%2F%3Fv%3D1-3%26dh%3DMCowBQYDK2VuAyEAzIAoE-OWDqFJXMqgunIWHPpE_u7e52Wtu8TioPc1QwI%253D&data=%7B%22groupLinkId%22%3A%22Srr1_MNob7WfPTQIY-ug5Q%3D%3D%22%7D' - is_simplex_link_valid(sxclink) +def check_groups_validity(): + """ + Lists all the group the bot is in. + """ + with connect(socket) as websocket: + query = f"/groups" + command = { + 'corrId': f"id{random.randint(0,999999)}", + 'cmd': query + } + websocket.send(json.dumps(command)) + message = websocket.recv() + response = json.loads(message) + for i in range(0,len(response['resp']['groups'])): + group_name = response['resp']['groups'][i][0]['groupProfile']['displayName'] + # Description key sometimes are not supplied with .get() KeyError will occur + group_descr = response['resp']['groups'][i][0]['groupProfile'].get('description', "No description") + last_message_sent = response['resp']['groups'][i][0]['chatTs'] + # Do something with this data + print(f"{group_name}") + print(group_descr) + print(f"{last_message_sent}\n") + # Only date + print(last_message_sent.split('T')[0]) + + + +if len(arguments) == 1: + check_groups_validity() +elif len(arguments) == 2: + if is_simplex_link_valid(simplex_link): + check_groups_validity() +else: + # Later will be changed to usage/hint text + raise Exception("Use me properly") \ No newline at end of file