fix: do not count sticker messages

This commit is contained in:
Krzysztof Rudnicki 2024-10-05 10:57:31 +02:00
parent bc8bc307ef
commit d35aa59a25

20
main.py
View File

@ -15,6 +15,7 @@ PHONE_NUMBER = os.getenv('PHONE_NUMBER', '1234567890') # Default to '1234567890
RECEIVE_URL = f"http://localhost:9922/v1/receive/{PHONE_NUMBER}"
REMOVE_ATTACHMENT_URL = f"http://localhost:9922/v1/attachments/"
SEND_URL = 'http://localhost:9922/v2/send'
LIST_SIGNAL_GROUPS = f"http://localhost:9922/v1/groups/${PHONE_NUMBER}"
GROUP_ID = os.getenv('GROUP_ID', '')
GROUP_ID_SEND = os.getenv('GROUP_ID_SEND', '')
CAT_API = os.getenv('CAT_API', '')
@ -137,7 +138,6 @@ USER_MESSAGE_COUNT = {}
async def count_messages(message_content, counter):
if message_content and should_count(message_content):
print("counting message: ", message_content)
uuid = extract_source_uuid(message_content)
source_name = extract_source_name(message_content)
await counter.update_string_map(uuid, source_name)
@ -215,12 +215,16 @@ def is_message_reaction(message):
return False
def should_count(message_content):
if message_content.get('destinationNumber', {}) != PHONE_NUMBER:
print("not counting because destinationNumber != PHONE_NUMBER")
return False
if message_content.get('sticker') != None:
print("not counting because message has a sticker")
print("should_count triggered")
#if message_content.get('destinationNumber', {}) != PHONE_NUMBER:
# print("not counting because destinationNumber != PHONE_NUMBER")
# return False
sticker = message_content.get("dataMessage", {}).get("sticker", {})
print("sticker ", sticker)
if sticker != {}:
print("not counting because message has a sticker ", message_content)
return False
print("counting message: ", message_content)
return True
async def listen_to_server(counter):
@ -233,10 +237,6 @@ async def listen_to_server(counter):
print("message: ", message)
message_content = extract_message_content(message)
await send_to_group(message_content, counter, message)
print("message_content.get('sticker') == None: ", message_content.get('sticker') == None, message_content.get('sticker'))
if should_count(message_content):
await count_messages(json.loads(message).get('envelope', {}), counter)
await trigger_command(message_content, PHONE_NUMBER)
except websockets.ConnectionClosed as e:
print(f"Connection closed: {e}")