def add_global_admin(user_id): from rowboat.redis import rdb from rowboat.models.user import User init_db(ENV) rdb.sadd('global_admins', user_id) User.update(admin=True).where(User.user_id == user_id).execute() print 'Ok, added {} as a global admin'.format(user_id)
def rmv_global_admin(user_id): from rowboat.redis import rdb from rowboat.models.user import User init_db(ENV) rdb.srem('global_admins', user_id) User.update(admin=False).where(User.user_id == user_id).execute() print 'Ok, removed {} as a global admin'.format(user_id)
def on_presence_update(self, event): updates = {} if event.user.avatar != UNSET: updates['avatar'] = event.user.avatar if event.user.username != UNSET: updates['username'] = event.user.username if event.user.discriminator != UNSET: updates['discriminator'] = int(event.user.discriminator) if not updates: return User.update(**updates).where((User.user_id == event.user.id)).execute()
def on_presence_update(self, event): updates = {} if event.user.avatar is not None: updates['avatar'] = event.user.avatar if event.user.username is not None: updates['username'] = event.user.username if event.user.discriminator is not None: updates['discriminator'] = event.user.discriminator if event.user.bot: return if not updates: return User.update(**updates).where((User.user_id == event.user.id)).execute()
def update_users(self): already_updated = set() while True: # Only update so many at a time if len(already_updated) > 10000: return try: user_id, data = self.user_updates.get_nowait() except Empty: return if user_id in already_updated: continue already_updated.add(user_id) try: User.update(**data).where(User.user_id == user_id).execute() except: self.log.exception('Failed to update user %s: ', user_id)