def message_edit(token, message_id, message): '''Edit a message''' if not Token.isValid(token): raise AccessError("Not a valid token!") data = db.load_DB() message_id = int(message_id) if message_id not in db.get_all_messages(data): raise ValueError('Message doesnt exist') u_id = db.get_from_token('u_id', token, data) cur_message = [msg for msg in data['messages'] if msg['message_id'] == message_id][0] channel = [channel for channel in data['channels'] if channel['channel_id'] ==\ cur_message['in_channel']][0] if u_id != cur_message['u_id'] and db.get_from_token('permission_id', token, data) == 3 and\ u_id not in channel['owner_members']: raise AccessError('The authorised user is an admin or owner of this channel or the slackr') if message == "": data['messages'].remove(cur_message) else: cur_message['message'] = message data['messages'].remove(cur_message) data['messages'].append(cur_message) db.save_DB(data) return dumps({})
def message_pin(token, message_id): '''Pin existing message in a channel''' if not Token.isValid(token): raise AccessError("Not a valid token!") message_id = int(message_id) database = db.load_DB() permission_id = db.get_from_token('permission_id', token, database) #true or false #loop through database for message ID if message_id not in db.get_all_messages(database): raise ValueError('message_id is not a valid message') #check admin of user if permission_id not in [1, 2]: raise ValueError('The authorised user is not an admin') #check if message_id is pinned for message in database['messages']: if message['message_id'] == message_id: if message['is_pinned']: raise ValueError('Message is already pinned') message['is_pinned'] = True db.save_DB(database) return dumps({})
def message_unreact(token, message_id, react_id): '''Remove react from message''' if not Token.isValid(token): raise AccessError("Not a valid token!") if not message_id: raise ValueError('Invalid message_id') if react_id != '1': raise ValueError('Invalid react id') message_id = int(message_id) react_id = int(react_id) data = db.load_DB() u_id = db.get_from_token('u_id', token, data) if message_id not in db.get_all_messages(data): raise ValueError('Invalid message_id') reactusers = db.get_react_users(data, u_id, message_id, react_id, False) if u_id not in reactusers: raise AccessError('Message with ID message_id does not contain\ an active React with ID react_id') cur_message = [ msg for msg in data['messages'] if msg['message_id'] == message_id ][0] for react in cur_message['reacts']: if react['react_id'] == react_id: react['u_ids'].remove(u_id) db.save_DB(data) return dumps({})
def message_react(token, message_id, react_id): '''Join existing user to a new channel''' if not Token.isValid(token): raise AccessError("Not a valid token!") if not message_id: raise ValueError('Invalid message_id') if react_id != "1": raise ValueError('Invalid react id') message_id = int(message_id) react_id = int(react_id) data = db.load_DB() u_id = db.get_from_token('u_id', token, data) if message_id not in db.get_all_messages(data): raise ValueError('Invalid message_id') if u_id in db.get_react_users(data, u_id, message_id, react_id, False): raise AccessError('Message with ID message_id already\ contains an active React with ID react_id') cur_message = [ msg for msg in data['messages'] if msg['message_id'] == message_id ][0] channel = [channel for channel in data['channels'] if channel['channel_id'] ==\ cur_message['in_channel']][0] valid = False for react in cur_message['reacts']: if 'react_id' in react.keys(): if react['react_id'] == react_id: react['u_ids'].append(u_id) valid = True if not valid: cur_message['reacts'].append({'react_id': react_id, 'u_ids': \ db.get_react_users(data, u_id, message_id, react_id)}) db.save_DB(data) return dumps({})
def message_remove(token, message_id): '''Remove message from channel''' if not Token.isValid(token): raise AccessError("Not a valid token!") message_id = int(message_id) data = db.load_DB() u_id = db.get_from_token('u_id', token, data) if message_id not in db.get_all_messages(data): raise ValueError('Message (based on ID) no longer exists') message = [msg for msg in data['messages'] if msg['message_id'] == message_id][0] channel = [channel for channel in data['channels'] if channel['channel_id'] ==\ message['in_channel']][0] if u_id != message['u_id'] and db.get_from_token('permission_id', token, data) == 3\ and u_id not in channel['owner_members']: raise AccessError('The authorised user is an admin or owner of this channel or the slackr') data['messages'].remove(message) db.save_DB(data) return dumps({})
async def about(ctx, *, channel): messages = db.get_all_messages(all_messages_collection, ctx.guild.id, channel) summary = tfidf_summarizer.run_summarization(messages) Embed = discord.Embed( title=("Newsletter from the " + channel + " channel in the " + ctx.guild.name + " server"), description= "*The summary is sent in multiple paragraphs due to size constrictions when sending it all in one paragraph*" ) if len(summary) < 1024: Embed.add_field(name='Summary', value=summary, inline=False) else: list_summary = summary_split(summary, []) for i in range(len(list_summary)): para_number = i + 1 Embed.add_field(name="Paragraph {}".format(para_number), value=list_summary[i], inline=False) await ctx.author.send(embed=Embed)