def message_sendlater(token, channel_id, message, time_sent): channelDatabase = Load('Channel_database.pkl') userDatabase = Load('User_database.pkl') messageDatabase = Load('Message_database.pkl') timesent = int(time_sent) helper.check_message_length(message) if helper.check_exist(channelDatabase, int(channel_id), 'channelId') == False: error_raise.invalid_channelid() #check if time is in the past elif helper.get_time() < int(timesent): error_raise.time_is_in_past() else: u_id = helper.find_id_from_token(token) for j in range(len(channelDatabase)): if channelDatabase[j]['channelId'] == int(channel_id): if helper.check_exist(channelDatabase[j]['all_members'], u_id, 'u_id') == False: error_raise.unable_to_operate() helper.timerStart(timesent) while helper.timerGoing(): print("still going") time.sleep(2) return message_send(token, channel_id, message)
def channel_detail(token,channel_id): #Channel ID is not a valid channel #Authorised user is not a member of channel with channel_id #pickle start channelDatabase = Load('Channel_database.pkl') userDatabase = Load('User_database.pkl') #pickle done flag = 0 for i in range(len(channelDatabase)): if channelDatabase[i]['channelId'] == int(channel_id): flag = 1 k = i for j in range(len(userDatabase)): if userDatabase[j]['token'] == token: if not any(d['u_id'] == userDatabase[j]['u_id'] for d in channelDatabase[i]['all_members']): error_raise.invalid_member() if flag == 0: error_raise.invalid_channelid() else: return { 'name': channelDatabase[k]['channelName'], 'owner_members':channelDatabase[k]['owner_members'], 'all_members':channelDatabase[k]['all_members'] }
def check_channel_id(channel_id): channelDatabase = auth.Load('Channel_database.pkl') flag = 0 for i in range(len(channelDatabase)): if int(channel_id) == channelDatabase[i]['channelId']: flag = 1 if flag == 0: error_raise.invalid_channelid()
def channel_message(token,channel_id,start): #Channel ID is not a valid channel #start is greater than the total number of messages in the channel #Authorised user is not a member of channel with channel_id #pickle start channelDatabase = Load('Channel_database.pkl') userDatabase = Load('User_database.pkl') messageDatabase = Load('Message_database.pkl') #pickle done messagelist = [] count = 0 flag = 0 #for i in range(len(channelDatabase)): if any(d['channelId'] == int(channel_id) for d in channelDatabase): flag = 1 index_channel= next((index for (index, d) in enumerate(channelDatabase) if d["channelId"] == int(channel_id)), None) print(index_channel) for j in range(len(userDatabase)): if userDatabase[j]['token'] == token: if not any(d['u_id'] == userDatabase[j]['u_id'] for d in channelDatabase[index_channel]['all_members']): error_raise.invalid_authorized() if flag == 0: error_raise.invalid_channelid() if int(start) > len(messagelist): error_raise.invalid_start for index in range(len(channelDatabase[index_channel]['messagelist'])): if index >= int(start) and count <= 50: for count in range(len(messageDatabase)): print(count) print ("\n") if messageDatabase[count]['message_id'] == channelDatabase[index_channel]['messagelist'][index]: messagelist.append({ 'message_id': messageDatabase[count]['message_id'], 'u_id': messageDatabase[count]['u_id'], 'message': messageDatabase[count]['message'], 'time_created': messageDatabase[count]['time'], 'reacts': messageDatabase[count]['react_id'], 'is_pinned':messageDatabase[count]['is_pinned'] }) continue end = int(start) + count return { 'messages': messagelist, 'start':start, 'end': end }
def message_remove(token, message_id): channelDatabase = Load('Channel_database.pkl') userDatabase = Load('User_database.pkl') messageDatabase = Load('Message_database.pkl') #Find user_id and permission_id u_id = helper.find_id_from_token(token) permission_id = helper.find_user_permission(token) #check if message exists in database if helper.check_exist(messageDatabase, int(message_id), 'message_id') == False: error_raise.invalid_messageID() #check raise error when non authorised user or the authorised user is not a admin or owner message_index = helper.get_index(messageDatabase, int(message_id), 'message_id') channel_id = messageDatabase[message_index]['channel_id'] if helper.check_exist(channelDatabase, int(channel_id), 'channelId') == False: error_raise.invalid_channelid() channel_index = helper.get_index(channelDatabase, int(channel_id), 'channelId') print(u_id) print(type(u_id)) print(permission_id) print(type(permission_id)) print(channel_index) print(type(channel_index)) helper.check_if_authorised_toedit( u_id, permission_id, messageDatabase[message_index]['u_id'], channelDatabase[channel_index]['owner_members']) channelDatabase[channel_index]['messagelist'].remove(int(message_id)) a = {} a = messageDatabase.pop(message_index) pickle_channels(channelDatabase) pickle_message(messageDatabase) return {}