def _get_user(self): userid = util.verify_token(self.request.headers.get("Authorization")) if not userid: raise errors.BadRequestError("Unknown client ID") self._user = UserSettings.get_by_key_name(userid) if not self._user: raise errors.NotFoundError("Unknown user")
def _get_user(self): userid = util.verify_token(self.request.headers.get('Authorization')) if not userid: raise errors.BadRequestError('Unknown client ID') self._user = UserSettings.get_by_key_name(userid) if not self._user: raise errors.NotFoundError('Unknown user')
def entities_to_process(self): """Yield entities that should be processed.""" now = datetime.datetime.utcnow() quarter_mark = (now.minute / 15) * 15 now_minute = now.hour * 60 + quarter_mark query = UserSettings.all() if quarter_mark == 30: query.filter('frequency IN', [15, 30]) elif quarter_mark == 15 or quarter_mark == 45: query.filter('frequency =', 15) for user_settings in query: if user_settings.night_mode: yield user_settings else: shifted_now = (now_minute - user_settings.timezone_offset) % 1440 # Verify that this is day time in the user's timezone. if shifted_now >= DAY_TIME_START and shifted_now < DAY_TIME_STOP: yield user_settings
def fetchPermissions(self, userIds): cachedPermissions = memcache.get_multi(userIds, key_prefix="settings:") idsMissingFromCache = list(set(userIds) - set(cachedPermissions.keys())) fetchedPermissions = {x.fs_id : json.loads(x.permissions) for x in UserSettings.fetch_by_fs_ids(idsMissingFromCache)} # If no permissions are set, the default is to allow all defaultedPermissions = {id : {'allowAll': True, 'authorizedFriends': []} for id in idsMissingFromCache if fetchedPermissions.get(id) is None } fetchedPermissions.update(defaultedPermissions) if idsMissingFromCache: # Add all missing ones that we just fetched to the cache failedKeys = memcache.set_multi(fetchedPermissions, key_prefix="settings:", time=86400) if failedKeys: logging.error('Memcache set failed on settings for %s' % ', '.join(failedKeys)) cachedPermissions.update(fetchedPermissions) return cachedPermissions
def changeUserSettings(self): userId = self.request.get('userId') token = self.request.get('access_token') access_token = self.verifiedAccessToken(userId, token) if (access_token): allowAllParam = self.request.get('allowAll') selectedParam = self.request.get('authorizedFriends') logging.debug('changeUserSettings for user %s. allowAll=%s authorizedFriends=%s' % (userId, allowAllParam, selectedParam)) allowAll = allowAllParam in ['True', 'true', '1'] if (selectedParam is None or selectedParam.strip() == ""): selectedIds = [] else: selectedIds = selectedParam.split('-') existingSettingsObj = UserSettings.get_by_fs_id(userId) if existingSettingsObj: settingsObj = existingSettingsObj else: settingsObj = UserSettings() if (allowAll): permissions = {'allowAll': True, 'authorizedFriends': []} else: permissions = {'allowAll': False, 'authorizedFriends': selectedIds} settingsObj.fs_id = userId settingsObj.permissions = json.dumps(permissions) settingsObj.put() if not memcache.set('settings:%s' % userId, permissions, 86400): logging.error('Memcache set failed on settings for %s' % userId) memcache.delete('settings:%s' % userId) logging.info('%s changed settings to: %s' % (settingsObj.fs_id, settingsObj.permissions)) self.response.out.write(json.dumps({'status': 'ok'})) else: self.error(404)
def getUserSettingFromDatabase(bot, update): return UserSettings.getUserSettings(chat_id=getUserID(update))
def updateUserDatbase(bot, update, setting): UserSettings.updateUserSettings(chat_id=getUserID(update), filter_settings=setting)
def addUserToDatabase(bot, update): UserSettings.addUser(chat_id=getUserID(update), filter_settings='N')