示例#1
0
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)
示例#2
0
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']
   }
示例#3
0
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()
示例#4
0
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
  }
示例#5
0
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 {}