Initial commit

This commit is contained in:
Aidan Haas 2023-01-26 13:34:43 -05:00 committed by GitHub
parent 681874b58a
commit 0fac08aebf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 73 additions and 0 deletions

Binary file not shown.

Binary file not shown.

5
classes.py Normal file
View File

@ -0,0 +1,5 @@
class User:
def __init__ (self, user_id, username):
self.user_id = user_id
self.username = username
self.number_messages = 1 # Start with one, as user only added if spoken in channel

5
constants.py Normal file
View File

@ -0,0 +1,5 @@
USER_ID = 0
USERNAME = 1
DATE = 2
MESSAGE = 3
REACTIONS = 5

63
main.py Normal file
View File

@ -0,0 +1,63 @@
import csv
import constants as v
import classes as c
# Date MM-dd-yyyy HH:mm:ss
# Reads from specified CSV file (specified in settings file)
# Outputs analysis to output file
def parse_file():
temp_user = c.User('0','0')
user_array = []
print('Loading from CSV channel.csv')
file = open('channel2.csv', encoding="utf8")
with file as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
line_count += 1
else:
parse_user(row, user_array)
line_count +=1
print(f'Done. {line_count} messages read')
print(f'Users found: {len(user_array)}')
for user in user_array:
percentage = user.number_messages / line_count
print(f'Username: {user.username} Messages: {user.number_messages} Contribution: {percentage * 100}%')
# Parses current line stats and updates user_array accordingly
def parse_user(current_row, user_array):
user_id = current_row[v.USER_ID]
user_index = 0
user_found = 0
for user in user_array:
if user.user_id == user_id:
user_found = 1
break
user_index += 1
if user_found:
# Update user stats
user_array[user_index].number_messages += 1
else:
# If user not found, add them to array
user_array.append(c.User(user_id, current_row[v.USERNAME]))
# Loads settings file.
# Configures what information should be calculated and printed to output file
def load_settings():
print('settings placeholder')
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
parse_file()