def reg_invite_set_login(value): sess = env.user.session() if not sess.data(): env.user.session(reg_invite_set_login, key=value) return 'Please enter your nickname' if not sess['key']: env.user.session_destroy() return 'Fail' env.user.session_destroy() if value.startswith('@'): value = value[1:] if not validate_nickname(value): return xmpp_template('reg_invalid') try: users.register(login=value, accounts=[('xmpp', env.jid)]) redis = RedisPool(settings.storage_socket) redis.delete('invite:%s' % sess['key']) return xmpp_template('reg_ok', login=value) except UserExists: return 'User @%s already exists.' % value except UserError, e: log.error('%s: %s' % (e.__class__.__name__, e.message)) return e.message
def reg_invite_set_login(value): sess = env.user.session() if not sess.data(): env.user.session(reg_invite_set_login, key=value) return 'Please enter your nickname' if not sess['key']: env.user.session_destroy() return 'Fail' env.user.session_destroy() if value.startswith('@'): value = value[1:] if not validate_nickname(value): return xmpp_template('reg_invalid') try: users.register(login=value, accounts=[('xmpp', env.jid)]) redis = RedisPool(settings.storage_socket) redis.delete('invite:%s' % sess['key']) return xmpp_template('reg_ok', login=value) except UserExists: return 'User @%s already exists.' % value except UserError, e: log.error('%s: %s' % (e.__class__.__name__, e.message)) return e.message
def reset_password(code, password): redis = RedisPool(settings.storage_socket) key = 'reset-password:%s' % code print key id = redis.get(key) if not id: raise UserNotFound try: user = User(int(id)) except ValueError: raise UserNotFound user.set_password(password) user.save() redis.delete(key) return user
def login_key(key): if env.user.id: env.user.logout() redis = RedisPool(settings.storage_socket) try: user_id = int(redis.get("login:%s" % key)) except (TypeError, ValueError): raise NotFound redis.delete("login:%s" % key) env.user = WebUser(user_id) env.user.authenticate() return Response(redirect="%s://%s/" % (env.request.protocol, settings.domain))
def reset_password(code, password): redis = RedisPool(settings.storage_socket) key = 'reset-password:%s' % code print key id = redis.get(key) if not id: raise UserNotFound try: user = User(int(id)) except ValueError: raise UserNotFound user.set_password(password) user.save() redis.delete(key) return user
def login_key(key): if env.user.id: env.user.logout() redis = RedisPool(settings.storage_socket) try: user_id = int(redis.get('login:%s' % key)) except (TypeError, ValueError): raise NotFound redis.delete('login:%s' % key) env.user = WebUser(user_id) env.user.authenticate() return Response(redirect='%s://%s/' % \ (env.request.protocol, settings.domain))
def delete(self): files = [] for ff in db.fetchall("SELECT files FROM posts.comments " "WHERE post_id=%s;", [unb26(self.id)]): if ff and ff['files']: files.extend(ff['files']) for ff in db.fetchone("DELETE FROM posts.posts WHERE id=%s " "RETURNING files;", [unb26(self.id)]): if ff: files.extend(ff) redis = RedisPool(settings.storage_socket) redis.delete('cmnt_cnt.%s' % unb26(self.id)) for f in files: remove_attach(f)
def delete(self): files = [] for ff in db.fetchall("SELECT files FROM posts.comments " "WHERE post_id=%s;", [unb26(self.id)]): if ff and ff["files"]: files.extend(ff["files"]) for ff in db.fetchone("DELETE FROM posts.posts WHERE id=%s " "RETURNING files;", [unb26(self.id)]): if ff: files.extend(ff) redis = RedisPool(settings.storage_socket) redis.delete("cmnt_cnt.%s" % unb26(self.id)) for f in files: remove_attach(f) es = elasticsearch.Elasticsearch() try: es.delete(index="point-posts", doc_type="post", id=self.id) except elasticsearch.exceptions.NotFoundError: pass
def delete(self): files = [] for ff in db.fetchall("SELECT files FROM posts.comments " "WHERE post_id=%s;", [unb26(self.id)]): if ff and ff['files']: files.extend(ff['files']) for ff in db.fetchone("DELETE FROM posts.posts WHERE id=%s " "RETURNING files;", [unb26(self.id)]): if ff: files.extend(ff) redis = RedisPool(settings.storage_socket) redis.delete('cmnt_cnt.%s' % unb26(self.id)) for f in files: remove_attach(f) es = elasticsearch.Elasticsearch() try: es.delete(index='point-posts', doc_type='post', id=self.id) except elasticsearch.exceptions.NotFoundError: pass
def update_feed(self, id): try: feed = Feed(id) except FeedNotFound: log.error('Feed #%s does not exist. Skipped.' % id) return redis = RedisPool(settings.storage_socket) try: feed.fetch() redis.delete('feed:retries:%s' % feed.id) for p in feed.posts(): if not p.id: if p.tags: p.tags.insert(0, 'news') else: p.tags = ['news'] add_post(p) log.info('Feed #%s: %s new entries saved' % \ (feed.id, len(feed.posts()))) feed.update_task() except FeedFetchError: retries = redis.incr('feed:retries:%s' % feed.id) log.error('Feed #%s: %s retries failed' % (feed.id, retries)) if retries > settings.feed_retries: redis.delete('feed:retries:%s' % feed.id) return timeout = settings.feed_retry_timeout * retries feed.update_at(datetime.now() + timedelta(seconds=timeout)) except InvalidFeedType: redis.delete('feed:retries:%s' % feed.id) feed.update_at(datetime.now() + \ timedelta(seconds=settings.feed_max_update_timeout))
def cache_del(key): log.debug('cache_del %s' % key) redis = RedisPool(settings.cache_socket) redis.delete(key)
def cache_del(key): log.debug("cache_del %s" % key) redis = RedisPool(settings.cache_socket) redis.delete(key)