def deleteChannelAdmin(message): channelID = int(message['channelID']) channelQuery = Channel.Channel.query.filter_by(id=channelID).first() if channelQuery is not None: if current_user.has_role( 'Admin') or channelQuery.owningUser == current_user.id: for vid in channelQuery.recordedVideo: for upvote in vid.upvotes: db.session.delete(upvote) vidComments = vid.comments for comment in vidComments: db.session.delete(comment) vidViews = views.views.query.filter_by(viewType=1, itemID=vid.id) for view in vidViews: db.session.delete(view) for clip in vid.clips: db.session.delete(clip) db.session.delete(vid) for upvote in channelQuery.upvotes: db.session.delete(upvote) for inviteCode in channelQuery.inviteCodes: db.session.delete(inviteCode) for viewer in channelQuery.invitedViewers: db.session.delete(viewer) for sub in channelQuery.subscriptions: db.session.delete(sub) for hook in channelQuery.webhooks: db.session.delete(hook) for sticker in channelQuery.chatStickers: db.session.delete(sticker) stickerFolder = '/var/www/images/stickers/' + channelQuery.channelLoc + '/' shutil.rmtree(stickerFolder, ignore_errors=True) filePath = globalvars.videoRoot + channelQuery.channelLoc if filePath != globalvars.videoRoot: shutil.rmtree(filePath, ignore_errors=True) from app import ejabberd sysSettings = settings.settings.query.first() ejabberd.destroy_room(channelQuery.channelLoc, 'conference.' + sysSettings.siteAddress) system.newLog( 1, "User " + current_user.username + " deleted Channel " + str(channelQuery.id)) db.session.delete(channelQuery) db.session.commit() db.session.close() return 'OK'
def cleanInvalidRooms(): sysSettings = settings.query.first() xmppChannels = ejabberd.muc_online_rooms('global') roomList = [] count = 0 if 'rooms' in xmppChannels: for room in xmppChannels['rooms']: roomName = room['room'].replace( '@conference.' + sysSettings.siteAddress, "") existingChannels = Channel.Channel.query.filter_by( channelLoc=roomName).first() if existingChannels is None: ejabberd.destroy_room(roomName, 'conference.' + sysSettings.siteAddress) count = count + 1 print('Invalid Rooms Pruned: ' + str(count))