Ejemplo n.º 1
0
def find_user_conversations(conversations):
    participated = []

    for index, conversation in enumerate(conversations):
        for msg in conversation:
            msg_data = parse_message(msg)
            sender = msg_data['sender']
            if sender == username:
                participated += [index]
                break
    return participated
Ejemplo n.º 2
0
def match_members(conversations):
    matches = {}
    participated = find_user_conversations(conversations)
    for index in participated:
        matches[index] = []
        for msg in conversations[index]:
            msg_data = parse_message(msg)
            sender = msg_data['sender']
            if sender not in matches[index]:
                matches[index] += [sender]

    return matches
Ejemplo n.º 3
0
def analyze_chat_file():
    with open(filename, 'r', encoding='utf8') as chatfile:
        messages = chatfile.readlines()
        conversations = []
        base_msg = messages[0]
        conversation = [base_msg]
        for msg in messages[1:]:
            msg_data1 = parse_message(base_msg)
            msg_data2 = parse_message(msg)
            if msg_data2 is not None:
                msg_d1 = datetime(year=msg_data1['year'], month=msg_data1['month'], day=msg_data1['day'],
                                  hour=msg_data1['hour'], minute=msg_data1['minutes'])
                msg_d2 = datetime(year=msg_data2['year'], month=msg_data2['month'], day=msg_data2['day'],
                                  hour=msg_data2['hour'], minute=msg_data2['minutes'])
                if msg_d2 - msg_d1 < cooldown_period:
                    conversation += [msg]
                    base_msg = msg
                else:
                    conversations += [conversation]
                    base_msg = msg
                    conversation = [base_msg]

        log(conversations)
        return conversations
Ejemplo n.º 4
0
def find_top_members1(messages):
    members = {}
    for msg in messages:
        msg_data = parse_message(msg)
        if msg_data is not None:
            sender = msg_data['sender']
            if sender in members:
                members[sender] += 1
            else:
                members[sender] = 1
    members = sorted(members.items(), key=itemgetter(1), reverse=True)
    if len(members) <= num_top_members:
        return members
    else:
        return members
Ejemplo n.º 5
0
def find_top_members(conversations):
    members = {}
    for index, conversation in enumerate(conversations):
        for msg in conversation:
            msg_data = parse_message(msg)
            sender = msg_data['sender']
            if sender in members:
                if 'conversation{}'.format(index) not in members[sender]:
                    members[sender] += ['conversation{}'.format(index)]
            else:
                members[sender] = ['conversation{}'.format(index)]
    members = sorted(members.items(), key=lambda x: len(x[1]), reverse=True)
    if len(members) <= num_top_members:
        return members
    else:
        return members