chg: [chats] get user message ids by chat

This commit is contained in:
terrtia 2024-01-02 17:15:45 +01:00
parent 70bb6757f8
commit c05f4d7833
No known key found for this signature in database
GPG key ID: 1E1B1F50D84613D0
4 changed files with 21 additions and 6 deletions

View file

@ -318,7 +318,7 @@ class AbstractChatFeeder(DefaultFeeder, ABC):
message.create('') message.create('')
objs.add(message) objs.add(message)
if message.exists(): if message.exists(): # TODO Correlation user-account image/filename ????
obj = Images.create(self.get_message_content()) obj = Images.create(self.get_message_content())
obj.add(date, message) obj.add(date, message)
obj.set_parent(obj_global_id=message.get_global_id()) obj.set_parent(obj_global_id=message.get_global_id())
@ -336,6 +336,8 @@ class AbstractChatFeeder(DefaultFeeder, ABC):
# TODO get created subchannel + thread # TODO get created subchannel + thread
# => create correlation user-account with object # => create correlation user-account with object
print(obj.id)
# CHAT # CHAT
chat_objs = self.process_chat(new_objs, obj, date, timestamp, reply_id=reply_id) chat_objs = self.process_chat(new_objs, obj, date, timestamp, reply_id=reply_id)

View file

@ -123,6 +123,9 @@ def is_obj_correlated(obj_type, subtype, obj_id, obj2_type, subtype2, obj2_id):
except: except:
return False return False
def get_obj_inter_correlation(obj_type1, subtype1, obj_id1, obj_type2, subtype2, obj_id2, correl_type):
return r_metadata.sinter(f'correlation:obj:{obj_type1}:{subtype1}:{correl_type}:{obj_id1}', f'correlation:obj:{obj_type2}:{subtype2}:{correl_type}:{obj_id2}')
def add_obj_correlation(obj1_type, subtype1, obj1_id, obj2_type, subtype2, obj2_id): def add_obj_correlation(obj1_type, subtype1, obj1_id, obj2_type, subtype2, obj2_id):
if subtype1 is None: if subtype1 is None:
subtype1 = '' subtype1 = ''

View file

@ -119,6 +119,9 @@ class UserAccount(AbstractSubtypeObject):
def update_username_timeline(self, username_global_id, timestamp): def update_username_timeline(self, username_global_id, timestamp):
self._get_timeline_username().add_timestamp(timestamp, username_global_id) self._get_timeline_username().add_timestamp(timestamp, username_global_id)
def get_messages_by_chat_obj(self, chat_obj):
return self.get_correlation_iter_obj(chat_obj, 'message')
def get_meta(self, options=set()): # TODO Username timeline def get_meta(self, options=set()): # TODO Username timeline
meta = self._get_meta(options=options) meta = self._get_meta(options=options)
meta['id'] = self.id meta['id'] = self.id
@ -191,7 +194,8 @@ def get_all_by_subtype(subtype):
return get_all_id('user-account', subtype) return get_all_id('user-account', subtype)
# if __name__ == '__main__': if __name__ == '__main__':
# name_to_search = 'co' from lib.objects import Chats
# subtype = 'telegram' chat = Chats.Chat('', '00098785-7e70-5d12-a120-c5cdc1252b2b')
# print(search_usernames_by_name(name_to_search, subtype)) account = UserAccount('', '00098785-7e70-5d12-a120-c5cdc1252b2b')
print(account.get_messages_by_chat_obj(chat))

View file

@ -22,7 +22,7 @@ from lib import ail_logger
from lib import Tag from lib import Tag
from lib.ConfigLoader import ConfigLoader from lib.ConfigLoader import ConfigLoader
from lib import Duplicate from lib import Duplicate
from lib.correlations_engine import get_nb_correlations, get_correlations, add_obj_correlation, delete_obj_correlation, delete_obj_correlations, exists_obj_correlation, is_obj_correlated, get_nb_correlation_by_correl_type from lib.correlations_engine import get_nb_correlations, get_correlations, add_obj_correlation, delete_obj_correlation, delete_obj_correlations, exists_obj_correlation, is_obj_correlated, get_nb_correlation_by_correl_type, get_obj_inter_correlation
from lib.Investigations import is_object_investigated, get_obj_investigations, delete_obj_investigations from lib.Investigations import is_object_investigated, get_obj_investigations, delete_obj_investigations
from lib.Tracker import is_obj_tracked, get_obj_trackers, delete_obj_trackers from lib.Tracker import is_obj_tracked, get_obj_trackers, delete_obj_trackers
@ -270,6 +270,12 @@ class AbstractObject(ABC):
return is_obj_correlated(self.type, self.subtype, self.id, return is_obj_correlated(self.type, self.subtype, self.id,
object2.get_type(), object2.get_subtype(r_str=True), object2.get_id()) object2.get_type(), object2.get_subtype(r_str=True), object2.get_id())
def get_correlation_iter(self, obj_type2, subtype2, obj_id2, correl_type):
return get_obj_inter_correlation(self.type, self.get_subtype(r_str=True), self.id, obj_type2, subtype2, obj_id2, correl_type)
def get_correlation_iter_obj(self, object2, correl_type):
return self.get_correlation_iter(object2.get_type(), object2.get_subtype(r_str=True), object2.get_id(), correl_type)
def delete_correlation(self, type2, subtype2, id2): def delete_correlation(self, type2, subtype2, id2):
""" """
Get object correlations Get object correlations